¿Qué temas debo aprender para ser programador?

Una buena parte de ellos depende de tus objetivos reales (si quieres convertirte en un codificador científico, saber mucho sobre los modelos MVC podría no ser el primer y principal requisito …), pero diría que al menos:

  • conceptos básicos básicos (variable, bucles, condicionales, recursividad vs. iteración, etc.);
  • abstracción , lo que significa que puedes razonar en términos abstractos para descomponer y resolver un problema (cuando era más verde, solía pensar en Python; aprender más idiomas ayuda mucho);
  • algoritmos y estructuras de datos más populares / comunes, incluso mejor si se especializa en un subcampo no tan popular / común;
  • al menos 2/3 paradigma de programación diferente (OOP, funcional, etc.);
  • análisis asintótico , es decir, poder estimar (aproximadamente) los rendimientos de ejecución de diferentes soluciones sin ejecutarlas;
  • cómo construir, ejecutar y mantener un buen conjunto de pruebas automatizadas ;
  • herramientas de versiones (git, subversión, etc.: una es suficiente, más es mejor);
  • creación de prototipos , no estrictamente necesaria, pero a menudo bastante útil;
  • construcción de código legible y mantenible (nombres de variables significativos, comentarios donde sea necesario, etc.);
  • habilidades de comunicación (ser capaz de comprender los requisitos y presentar su trabajo, ¡ah, tanto y tan a menudo ignorado!)

Doy por sentado, por supuesto, que aprendiste a dominar al menos la sintaxis de un idioma . Haga 3 idiomas diferentes para decir que puede moverse con bastante facilidad en diferentes tareas, además será una buena práctica.

Y creo que esto debería cubrir la mayoría de las bases mínimas.

Espero que esto ayude, feliz codificación 🙂

Puede echar un vistazo a los enlaces a continuación para ver los temas cubiertos en la carrera de Informática. Estos son buenos Moocs y puedes escuchar las conferencias de tu interés.

Pero, creo que para empezar, puedes:

  • Elija un idioma de su interés. Java o Python son populares con muchos recursos disponibles en línea. Scala, Go, Haskell y Clojure son algunos otros que están ganando popularidad. Todos estos son lenguajes de fondo. Sin embargo, si está interesado en el front-end, quizás busque HTML5, Javascript, jQuery, Node.js, etc.
    Aprende la sintaxis y el núcleo del lenguaje. Una vez que haya terminado con lo básico, comience con las manos en los ejercicios de codificación.
  • Algoritmos y estructuras de datos : estos son los componentes básicos de la programación. Estos conceptos mejorarán su comprensión y también mejorarán sus habilidades de codificación.
  • Sistemas operativos : no está directamente vinculado a la codificación, pero el tema le dará una buena idea de cómo funcionan las cosas en segundo plano. Aprenderá temas como concurrencia, gestión de recursos, rendimiento, diseño de sistemas, etc.

Estos son algunos temas que lo ayudarán a comenzar. Una vez que haya terminado con estos conceptos básicos, tal vez pueda optar por:

  • Patrones de diseño,
  • Base de datos (SQL / No SQL),
  • Marcos populares,
  • Herramientas de versión y herramientas de compilación

Espero que ayude,

Feliz aprendizaje.

Depende de qué tipo de programación va a hacer. Por ejemplo, el conocimiento requerido de un programador de sistemas integrados es diferente del conocimiento requerido por un programador web. Dicho esto, todavía hay algunos temas que la mayoría de los programadores deben comprender:

  • Conceptos generales de programación: alcance, tipos de datos básicos (cadenas, enteros, etc.), condicionales, bucles, etc.
  • Estructuras de datos básicas: matrices, árboles, gráficos, tablas hash, diccionarios, etc.
  • Algoritmos básicos: clasificación, recorrido de gráficos, algoritmos de ruta más corta, etc.
  • Herramientas de programación / desarrollo: IDE como Eclipse o Visual Studio, editor como Sublime Text, compilador / intérprete, control de versiones como Git (¡compartir código por correo electrónico no es control de versiones!).
  • Algunas matemáticas: esto varía según su campo, pero la geometría y el álgebra deberían ser suficientes para la mayoría de las tareas de programación. Las estadísticas también son útiles.

Lo más importante para mí es crear software mantenible. El código escrito por usted debe tener una buena arquitectura y clases y módulos bien diseñados con responsabilidad única , interfaces claras y debe probarse (pruebas automatizadas, no manuales. Si refactoriza cosas, desea saber si todo funciona como se esperaba inicialmente .)

Las pruebas son aquí un núcleo desde mi perspectiva y hay patrones realmente buenos, como el desarrollo basado en pruebas, que también te obliga a pensar en el código que vas a escribir. Mantenga las cosas lo más simple posible y comience a optimizar solo cuando sea necesario. El código rápido que nadie puede entender no es mantenible y necesita ser reescrito por cualquier pequeño cambio que sea realmente malo.

Aparte de eso, necesita conocer su herramienta (que incluye el lenguaje de programación). Sepa cómo configurar buenas estructuras de datos y aprenda sobre el lenguaje oculto o las características del marco. Y conoce las debilidades de tu idioma. Y aprende sobre el control de versiones como git. El control de versiones es una herramienta muy importante cuando se trabaja junto con otros desarrolladores.