¿Cuáles son los conceptos erróneos comunes que tienen los aspirantes a programadores?

  1. Aprender a programar significa aprender la sintaxis de programación . ¡No, no es! Aprenda cómo resolver su problema dividiéndolo en subproblemas y luego resolviéndolo con código.
  2. Goto es malvado . No, no es. Solo sé cuándo usarlo.
  3. Las funciones de la biblioteca siempre tendrán éxito . No. Pueden fallar. Siempre verifique el valor de retorno de las funciones.
  4. Usar números mágicos es la norma . Déjame decirte que no se puede mantener en absoluto. Los errores son más fáciles de producir y es posible que no se detecten fácilmente.
  5. Confiando en el usuario . ¡Nunca confíes en el usuario! Siempre valide la entrada del usuario. Dar mensajes de error adecuados.
  6. Falla de segmentación significa leer el código . Había visto esto con muchos novatos. Si no obtiene un archivo de volcado o usa depuradores, no hay forma de depurarlo. ¡Así que aprende a usar un depurador!
  7. Las variables globales son malas . No, ellos no son. Aprenda cuándo usarlos y cuándo no.
  8. Nunca liberar recursos después de su uso . Ya sea una secuencia de archivos, conexión de red o conexión de base de datos. Usalos, usalos a ellos. Libérelos / destrúyalos después de usarlos.
  9. Las pruebas son para QA / QE . Por favor, no omita escribir pruebas de unidad. Puede sentir que su código es correcto. Puede que no sea. Pruébalo más a fondo. Intenta romperlo.

Los aspirantes a programadores están tan intrigados por el concepto de programación competitiva que piensan que pueden hacer una carrera resolviendo tales problemas.

No resuelve esos problemas por el simple hecho de que ya están resueltos. Los problemas se basan en algoritmos bien definidos y debe aprovecharlos. No estás creando un nuevo algoritmo.

Y durante la mayor parte de su carrera como desarrollador, es posible que ni siquiera esté utilizando algoritmos complejos. Escribirás construcciones de programación básicas como bucles, clases, funciones.

Un estudiante universitario apenas encuentra oportunidades para investigar. La investigación de Google exige al menos una graduación posterior. Por lo tanto, no esperes trabajos de investigación como desarrollador de software.

El desarrollador de software tiene que seguir el modelo SDLC cuánto le disgusta. No esperes solo escribir código todo el día. Pasará tiempo en diseño, reuniones, revisiones de códigos y redacción de documentación.

Pasamos mucho tiempo aprendiendo cosas nuevas. No solo relacionado con la programación, sino también con otras áreas de interés.

¿Estás creando un sitio web o un blog? Configuraré tu tema de WordPress y lo personalizaré”. Contáctame

La programación realmente me enseñó mucho sobre el proceso de aprendizaje y cómo aprender rápidamente. Sin embargo, todavía creo que a menudo podemos caer en la trampa de no aprovechar todo nuestro potencial de aprendizaje. No por pereza u otros hábitos negativos, sino por ideas erróneas sobre la programación de aprendizaje.

Con la esperanza de ayudarme a mí mismo en el futuro, y a aquellos que aparecen en este artículo, he reunido una lista de 4 ideas erróneas comunes sobre la programación de aprendizaje. Arme esta lista con la esperanza de ayudar a todos los programadores y aspirantes a programadores, independientemente de dónde se encuentre una persona en su viaje.

Los mejores programadores pueden hacer conceptos erróneos. Lo que hace que los conceptos erróneos sean esquivos es el hecho de que no podemos determinar por nosotros mismos si es un concepto erróneo o no. Necesita ser señalado por alguien más. Algunas ideas falsas son francamente peligrosas, porque crean malos hábitos que continuarán persiguiéndonos y generarán un efecto negativo de bola de nieve si se deja que se desenfrene en la vida de un programador.

Sin más preámbulos, sumerjámonos directamente en estos conceptos erróneos. Tenga en cuenta que el pedido no tiene nada que ver con el grado de importancia.

Basado en Quora, y con suerte no solo repitiendo lo que otros han escrito:

  1. Que los lenguajes y marcos más comentados y / o más recientes son los más utilizados y / o más relevantes comercialmente / profesionalmente.
  2. Esa programación es competitiva y un deporte. Es sobre todo una profesión. Sí, podría competir con las habilidades de programación, pero en un trabajo necesita ser creativo y confiable y, por supuesto, competente en los idiomas y las herramientas que se utilizan.
  3. Que es fácil cambiar los lenguajes establecidos: “¿Por qué C ++ cuando Go existe?”, “¿Por qué Facebook no elimina el uso de PHP?”, Etc.
  4. Ese puede sentarse en una esquina y simplemente codificar todo el día. Bueno, supongo que algunos lo hacen, pero la programación se realiza por una razón: para hacer un producto / solución. No se hace en el vacío.
  • buen programador == saber tantos idiomas como sea posible / dominar un idioma en particular:

    Ser un buen programador tiene poco que ver con cuánto sabes sobre un idioma / s en particular. Es como pensar en ser un buen novelista == escribir en tantos idiomas como sea posible / memorizar el diccionario de inglés.

    La programación es realmente más como resolver acertijos; Ante un problema, escriba una serie de pasos tan explícitos que incluso una computadora pueda entenderlo para producir una solución.

    Y aquí es donde mi consejo puede diferir de los demás; Algunas personas aquí dicen que “los algoritmos no son realmente importantes”. Sí lo son. Son, posiblemente, la parte MÁS importante. Aprender cualquier idioma en particular es bastante fácil. Poder RESOLVER PROBLEMAS en ese idioma puede ser difícil.

    Ahora no digo “Memorizar algoritmos es la parte más importante de ser un programador”. Es importante poder elaborar su PROPIO algoritmo para el problema en cuestión. De hecho, probablemente haga esto cada vez que escriba un programa sin siquiera darse cuenta. Un “programa”, después de todo, es solo un algoritmo implementado en un lenguaje particular.

  • “Ser un buen programador solo es suficiente para conseguirme un trabajo en Google o Facebook”: Eso es solo una cosa que miran. Al igual que cualquier trabajo, también debe poder trabajar bien en un equipo, explicar su trabajo a otros (posiblemente incluso a personas no técnicas / no codificadas) y producir un trabajo consistente dentro de un horario definido. No1 querrá trabajar con un fanático del control antisocial que exige escribir todo el código la noche anterior a su vencimiento; incluso si son un genio.
  • “La programación tiene una gran demanda, por lo que será fácil encontrar un trabajo”: esto es solo parcialmente cierto. Las grandes empresas tecnológicas definitivamente necesitan programadores. Sin embargo, no todos pueden funcionar para las grandes compañías tecnológicas, ya que sus estándares son (no sorprendentemente) muy altos.

    La alfabetización informática, en general, tiene una gran demanda en todas las industrias, pero eso incluye más que solo programación (por ejemplo, conocimiento de bases de datos, redes, otro software popular (por ejemplo, Excel), etc.). Dependiendo del país en el que viva, puede ser difícil encontrar un trabajo donde SOLO programe todo el día (particularmente porque no es difícil para las empresas externalizar el trabajo de programación a otros países).

OK, siéntate, ponte cómodo, hazte un café, quizás un bocadillo, vas a estar aquí un rato …

El conocimiento es valioso

No, no es.

Veo todo el tiempo en Quora, ‘¿Cuánto Java / C / React / Node necesito saber para trabajar en X?’

No importa, tu conocimiento no vale nada . Puedo buscar conocimiento en Google por mucho más barato que tu salario.

Lo que es valioso es poder aplicar el conocimiento a un problema . Es posible que conozca toda la documentación de Java de memoria, no tiene valor si no puede construir nada.

Los lenguajes de programación son difíciles.

No, no lo son, están diseñados específicamente para ser fáciles . La programación es difícil , los idiomas son fáciles. Si estás luchando con la programación, no es el lenguaje, es la programación .

Todos los lenguajes de programación son iguales.

No, muchos de ellos son una mierda . Java es bueno, Swift es genial, Python está bien, Perl deja un mal sabor de boca …

El rendimiento es importante.

Claro, a veces , pero en tu pequeño proyecto? No, no es. Tienes problemas más grandes con los que lidiar.

El rendimiento solo importa cuando importa .

Necesitas una computadora especial / potente

No estoy seguro de dónde vino este, pero tú no, solo necesitas algo correcto. No necesita 13 pantallas y 10 terabytes de estado sólido, si puede ejecutar su IDE y compilador, es lo suficientemente bueno.

Claro, es bueno tenerlo, y cuando es tu trabajo diario, puede eliminar algo de frustración tener una máquina decente, pero no lo necesitas.

El último marco es el mejor marco.

No, es solo la última. A nadie en la industria le importa una mierda.

La programación se trata de algoritmos

Bueno, eso es cierto , quiero decir, por definición del diccionario, de eso se trata, pero si crees que conocer el algoritmo de Dijkstra de memoria te servirá bien en el lugar de trabajo, olvídalo.

La programación se trata de crear soluciones, eso es todo.

Matemáticas

No necesitas ser bueno en matemáticas, repite después de mí, ‘No necesito ser bueno en matemáticas’ …

El mito más antiguo en la industria, ¡recuerdo que la gente me lo dijo hace 25 años! Era una mierda entonces y ahora es una mierda.

y finalmente, los programadores son especiales

No eres una princesa especial, somos como cualquier otra profesión experta, aprendemos nuestro oficio y seguimos adelante. Ser programador no tiene nada de especial, es un oficio experto, eso es todo.

No necesitas un coeficiente intelectual alto, solo necesitas trabajar duro.

Que puedes aprender o dominar un lenguaje de programación en una semana o un mes.

Que saber lenguajes de programación equivale a conocimiento en programación. Tener conocimiento de un idioma de una milla de ancho y una pulgada de profundidad solo significa que realmente no sabes nada.

Que los únicos programadores exitosos trabajan para Google, Amazon, Facebook o Microsoft y si no trabajas para ellos, eres un fracaso.

Que tener un título en Ciencias de la Computación o equivalente te convierta automáticamente en una persona calificada y de élite y el éxito profesional seguirá. Conozco a muchos programadores con un título que realmente no pueden programar.

Que los algoritmos, algoritmos, algoritmos son la clave para la contratación y el éxito laboral. Un algoritmo es simplemente los pasos necesarios para resolver un problema particular. Toda solución de programación es un algoritmo.

Que hay algún curso mágico, libro y / o tutorial por ahí que, si solo lo sigue, lo llevará al éxito del desarrollo de software.

Que un principiante de 24 años superará a un desarrollador de 35 o 45 años con años de experiencia en su haber.

Que si no estás fundando una startup, no estás haciendo nada significativo.

Ese “significativo” tiene alguna relación con la calidad del código que escribes.

Que “¿Por qué no podemos escribir todo en ‘insertar lenguaje de programación aquí’?” Es una especie de conocimiento profundo en el campo del desarrollo de software que el resto de nosotros no puede ver.

Ese software de escritura y reescritura que usa los marcos de Flavor of the Month es de alguna manera algo deseable y correcto.

Que están desconcertados sobre por qué no pueden obtener entrevistas u ofertas por salarios de seis cifras fuera de Silicon Valley o Nueva York con todas sus habilidades.

¿Que hacen esa pregunta cuando les preguntan a todos los demás qué proyectos deberían escribir ahora que han aprendido a programar? ¿Qué has estado aprendiendo exactamente si no sabes qué hacer a continuación?

Que alguien les dará una lista mágica de “cosas para construir” que los llevará a trabajos, éxito y fortuna.

Que piensan que este trabajo es fácil. Los buenos programadores ganan cada centavo que hacen y luego algunos por la basura que tienen que soportar de personas técnicas y no técnicas por igual.

Que, por último, cualquier programador aspirante aceptará todo esto como verdad y lo descartará como personas viejas y fuera de contacto que deberían haberse retirado hace mucho tiempo del desarrollo porque “simplemente no lo entienden”.

Hace mucho tiempo leí sobre alguien haciendo la pregunta: “¿Pueden pensar las computadoras?”.

Antes de saber algo sobre programación, pensé “qué pregunta más tonta, por supuesto que no”.

Luego tomé algunos cursos de CS y aprendí a codificar. Como ahora era un “programador hot sh * t ™”, pensé: “Sí, podría escribir el código para que la computadora piense”.

Ahora, después de 40 años de programación, aprendí que esta pregunta es mucho, mucho más profunda de lo que pensaba en ese momento. Ahora pienso “es complicado”. 🙂

Honestamente, estas son algunas de mis preguntas favoritas sobre Quora 🙂

  • Si voy al programador boot-camp, puedo escribir un programa como Call of Duty, solo que mejor.
  • Si aprendo a programar, me volveré rico más allá de los sueños de avaricia.
  • Si puedo programar, puedo conseguir un trabajo en google.
  • Si puedo escribir 10 líneas de código sin errores, puedo escribir 10,000 líneas de código sin errores. (Incluso la primera cláusula hace una suposición ingenua).
  • Un programa que calcula un resultado correcto con las entradas correctas, es un programa útil. (Eso es solo la mitad de la batalla).
  • Un programa que a veces no produce un resultado correcto, dadas las entradas correctas, es un programa inútil.
  • El inglés (o cualquier idioma natural) sería el mejor lenguaje de programación.
  • La programación paga bien, por lo que sería una buena carrera para mí, independientemente de mis habilidades o aptitudes.
  • Lo que importa no es qué tan bien puede programar, sino tener suerte en el inicio correcto en una etapa temprana para que pueda ganar muchísimos dólares.

Ambicioso

  • Uso una computadora todo el día, también seré bueno programando

No hay garantía de eso. Por supuesto, conocer la terminología básica y cómo usar el mouse y el teclado ayuda.

  • Soy bueno / malo en matemáticas, así que seré bueno / malo en programación

Jaja ¿Hablas en serio? Si bien las matemáticas ayudan, la mayoría de las matemáticas son a + by a> b.

Lo que sí ayuda es la paciencia y la dedicación. La programación se basa colaborando de hecho en el principio de tener la computadora para hacer matemáticas, no la humana.

Ser bueno para explicar las matemáticas ayuda.

  • No creo que mi computadora sea lo suficientemente rápida para programar

La programación es menos exigente en la CPU que la navegación web. Y harás mucha navegación web.

La mejor inversión podría ser un SSD de tamaño razonable, que acelere la lectura y escritura de archivos.

Que es un trabajo de oficina, una vez que tenga su título, puede dejar de aprender. ¡INCORRECTO! El desarrollo de software tiene los requisitos de trabajo que cambian más rápido que nunca. Eso significa que no puedes dejar de aprender a seguir con tu trabajo. Es la resolución de problemas todo el tiempo. ¡Esto significa que tienes que poder pensar de manera efectiva por ti mismo! Cuando tengamos nuevos empleados, podemos decir quién lo logrará y quién desaparecerá en unos pocos meses. Los que lo logran, hacen las preguntas correctas para ponerse en marcha y llevarse bien con todos los demás. Los que no duran, se ven desconcertados y buscan personas que les digan cómo hacer su trabajo. La orientación dura un tiempo limitado, después del cual se espera que se mantenga.

Lo siento, no estoy respondiendo tu pregunta, pero puedo decir que nunca he sido aspirante a programador. Por el contrario, hasta ~ 2004 pensé que la programación es una forma aproximada de ganarse la vida, así que estaba tratando de convertirme en administrador del sistema. Sin embargo, en algún momento tuve que tomar una decisión sobre la educación. Debido a que en Polonia las Ciencias de la Computación y la Ingeniería del Software no se enseñan realmente en forma separada en las universidades y no había una especialización en Administración y / o TI, comencé el camino de la Ingeniería del Software. En relación con mi tracción en dispositivos electrónicos, comencé la carrera de ingeniero de software incorporado y continúo hasta el día de hoy.

No es que no estuviera programando como administrador, lo estaba, pero no ha sido mi enfoque principal. Tuve que resolver problemas y asegurarme de que los servidores estén funcionando. Además, la demanda creció por turnos múltiples, por lo tanto, me gusta dormir ese trabajo ya no era para mí. Hay días en que me arrepiento, pero en general me encanta la creación, por lo que la programación cumple de alguna manera mi parte artística creativa del alma.

La principal ventaja de tener fluidez con los sistemas Unix en esos días es que hoy no tengo miedo de la línea de comandos (en realidad lo prefiero) y hacer el trabajo en Linux de mi manera favorita. Si hiciera aplicaciones web en lugar de un sistema embebido, podría aspirar a DevOps o incluso a Full Stack Developer, ya que realmente conozco y entiendo los diferentes niveles de sistemas, incluidas las redes. Pero de alguna manera prefiero adaptar los programas de C ++ a 320 kB de RAM en lugar de crear HTML y JavaScript.

  1. La programación se trata de escribir código.
  2. La programación se trata de crear sitios web o aplicaciones geniales.
  3. Aprender un lenguaje de programación es suficiente para convertirse en un buen programador.
  4. Sería fácil comenzar tu propio inicio después de que seas un experto en programación
  5. Los programadores que escriben mucho código son inteligentes.

Los más grandes con diferencia: creen que el desarrollo de software es escribir programas, por lo que quieren ser un “programador”. El desarrollo de software es principalmente comunicación y aprendizaje. La programación viene después de esos dos.

Que Popular == Bueno.

De hecho, la regla es casi la inversa .

ADA, Lisp, Tcl, Erlang, Haskell, Smalltalk, Rebol.

Hay una lista de idiomas verdaderamente geniales . Cada uno el dueño de su nicho particular.

Y todos son impopulares.

Sería divertido si no fuera tan trágico.

El plan de carrera ingenuo:

  • Ir a la universidad, de alguna manera obtener buenas calificaciones a pesar de que una buena cantidad de personas ni siquiera terminan.
  • Estudie solo los cursos y estará listo para la fuerza laboral.
  • Empleadores de spam para pasantías, eche un vistazo que aprenderá mucho, como si esto fuera algo que les preocupa.
  • Termine con buenas calificaciones, vuelva a enviar spam a la industria, pero termina con una oferta de alto pago de Google porque podría revertir una lista vinculada en una pizarra.
  • Quédate en Google por unos años, porque no es como si alguna vez despidieran a personas. : /
  • Únase / encuentre una startup: puede escribir “Google” en su currículum, ¡así se garantiza la financiación!

Wow … ¡Una pregunta que me dio cuenta!

He estado escribiendo programas de computadora casi sin parar durante más de 40 años. He estado diseñando software durante casi ese tiempo (tenga en cuenta la distinción).

¡Nunca se me ocurrió que la gente “aspiraría” a la programación!

No tengo idea de qué nociones tienen los programadores “aspirantes” … Es extraño para mí que alguien aspire a una profesión que tenía una población tan pequeña de practicantes cuando comencé. Durante muchos años, cuando se me hizo la perenne pregunta estadounidense “¿qué haces?” Y respondí “Soy un programador de computadoras”, obtendría miradas burlonas… ¡Nadie sabía lo que era!

Si tienes tales aspiraciones, ¿cuáles son?

Lo siento, no puedo proporcionar una respuesta y, en cambio, plantear una pregunta en respuesta. … espero que sea Quora-Kosher …

Gran parte del trabajo es difícil de describir. Le dicen, lea algunos datos, haga algo y escríbalo. Usted pregunta, en qué formato está la entrada. Nadie lo sabe. Mire un montón y vea si puede descubrir algunas reglas que siempre se aplican. Peor aún, te dan un documento que te dice el formato. Escribe código que acepte ese formato. Vas a probar y descubres que el documento está mal. Lo mismo para el formato en el que se supone que está la salida. Tal vez busque el código que crea su entrada e intente averiguar el formato a partir de eso. ¿Qué hago con una entrada mal formateada? ¿Cómo debo informar el error? Dios no permita que el programa simplemente muera cuando recibe una entrada incorrecta. Se gasta mucho tiempo tratando de averiguar qué se supone que debes hacer, en lugar de hacerlo.

En realidad, mi mayor error se produjo al completar mi licenciatura. Realmente pensé que iba a tener mucho más conocimiento. Estaba terriblemente decepcionado porque no sabía más. No parece mucho, pero sin duda fue un gran problema para mí en ese momento.

P) ¿Cuáles son los conceptos erróneos comunes que tienen los aspirantes a programadores?

El error más grande es que se trata de la tecnología.

More Interesting

Para 2023, ¿será la ingeniería de software una buena carrera para ganar dinero?

¿Qué tipo de negocio pueden hacer los ingenieros en el campo del software?

¿A quién irías para un puesto de ingeniería de software, alguien de Accenture o Google?

¿Por qué todos quieren unirse a Google o Facebook en lugar de pensar en construir su propia startup?

¿Cómo puedo convertirme en un SDET en compañías como Microsoft, Amazon, Google y Facebook?

¿Hay algún punto para continuar estudiando algoritmos avanzados y estructuras de datos?

¿Los ingenieros de software escuchan música mientras trabajan?

¿Google o Facebook tienen ingenieros de software que tienen un doctorado?

Cómo aprender rápidamente a convertirse en un ingeniero de software senior con experiencia limitada

Sé algo de codificación, pero no matemática, física, ¿puedo hacerlo a través de la ingeniería?

¿Cómo se ve un buen sitio web junior de cartera de desarrolladores backend?

¿Puede un estudiante no matemático ser un ingeniero de software con PCB y C ++ como asignaturas?

Los ingenieros de software no son inteligentes e innovadores; solo conocen patrones. ¿Es esto cierto?

Trabajar con el desarrollo de software es muy agotador hoy en día. Todos los días, se crea un nuevo idioma, biblioteca o marco. ¿Cómo podemos 'sobrevivir' en este contexto?

Como nuevo ingeniero de software de Pakistán, ¿qué pasos debo seguir para conseguir un trabajo en una empresa como Google en los próximos 3 a 4 años?