¿Qué consejos puede ofrecer a alguien que quiere aprender codificación?

Comience simple y comience despacio. No espere realizar aplicaciones de alta calidad dentro de aproximadamente un año, ya que eso no sucederá. Y empieza a aprender lo básico.

Históricamente, había tres lenguajes de programación que a las personas les gustaba usar cuando comenzaban a programar. En primer lugar, las computadoras personales desde los años 70 hasta los 90 generalmente tenían un intérprete BASIC integrado, por lo que escribiría aplicaciones en BASIC. Pero aquellos con acceso a UNIX en mainframes o con computadoras Apple generalmente pueden elegir entre Estándar C o Pascal. Estos tres lenguajes son solo lenguajes estructurales y son una excelente manera de aprender los conceptos básicos de programación. Sin embargo, BASIC y Pascal parecen haber desaparecido al ser reemplazados por Visual Basic y por ObjectPascal. No desea comenzar con ellos, por lo que el lenguaje Standard C es la mejor manera de aprender sobre el arte de la programación. Y el libro El lenguaje de programación C es bueno para leer primero.

¿Por qué no Python, PHP, Rust, Go, Pascal, COBOL o cualquier otro idioma? De nuevo, debes comenzar con poco y, si bien C es un lenguaje extremadamente útil y poderoso, también es uno de los idiomas más fáciles de aprender, ya que solo proporciona los mínimos necesarios que necesitas como programador. Sin objetos y clases, sin acceso a la base de datos, sin gráficos, solo instrucciones básicas que están muy cerca del código de la máquina. Sin embargo, C se usa para sistemas operativos, para sistemas de bases de datos completos y es el idioma principal de la biblioteca de gráficos OpenGL.

Sin embargo, no es necesario ser un experto en C primero. El lenguaje C es solo una guía para que se acostumbre a los simples desafíos de programación. Familiarícese con escribir código, compilarlo, ejecutarlo e incluso depurarlo. Solo dedique dos meses a aprender C y escriba algunas aplicaciones simples en C antes de centrarse en otros idiomas. Aprender C es importante, ya que le enseña sobre la administración de la memoria, los tipos de datos y las estructuras de datos y el uso de varias bibliotecas en su código. Y el último estándar C11 también le enseñará acerca de las aplicaciones de subprocesos múltiples y Unicode y algunas características más interesantes.

Aprende sobre programación primero y estructuras después. Las estructuras son básicamente los objetos, las interfaces y las clases en los muchos lenguajes orientados a objetos y otras estructuras de datos complejas que solo lo confundirán, ya que debe concentrarse primero en la programación y luego en las estructuras. Esta es la razón por la que comenzar con cualquier otro idioma suele ser una mala idea, ya que obliga a aprender más al principio y difumina las líneas entre el código y la estructura.

La mejor manera es comenzar con un buen lenguaje de enseñanza . Tal lenguaje es muy simple y fácil de aprender. No tiene rarezas ni peculiaridades que puedan distraer al principiante de su objetivo más importante: aprender los conceptos básicos de programación. Esto descarta lenguajes industriales como Java, Python, JavaScript y C, todos los cuales llevan una gran cantidad de equipaje.

Solo conozco algunos buenos idiomas de enseñanza: Logo, Pascal, Scheme y Smalltalk. De estos, recomiendo altamente Smalltalk. Vea la respuesta de Richard Kenneth Eng a ¿Qué lenguaje de programación se considera el más fácil para los principiantes?

Smalltalk fue diseñado para enseñar programación a niños. Esto debería convencerlo de que es muy, muy fácil en comparación con todos los demás idiomas. (Al mismo tiempo, Smalltalk es uno de los idiomas más poderosos del mundo.)

Más tarde, puede seleccionar fácilmente Java o Python, dos de los idiomas más populares. Ambos son buenos para el desarrollo web y la programación general, lo que más te interese.

  1. La codificación no está escribiendo. Los desarrolladores pasan la mayor parte de su tiempo pensando y diseñando (esto es lo que hace que el desarrollo de software sea divertido, ya que toma ideas muy abstractas y hace algo muy real a partir de estos conceptos).
  2. Encuentra un mentor. Esto no significa que deba ser alguien que conoces en persona. Mire los tutoriales, blogs, etc. de Youtube para ver tutoriales y mejores prácticas.
  3. Sepa que la tecnología de la información es un paisaje que cambia rápidamente. El iPhone de hoy puede convertirse fácilmente en el Blackberry del mañana. Este hecho es a la vez frustrante y emocionante. Es un reto mantenerse al día con cada nuevo idioma, patrón de diseño y mejores prácticas. Por otro lado, esto es lo que mantiene a la TI fresca y emocionante.
  4. No te obsesiones demasiado con el idioma que debes aprender primero. Todos los idiomas tienen partes comunes que puede aprovechar y transferir conocimientos, y todos los idiomas tienen fortalezas y debilidades. El único lenguaje que sugiero que evites por adelantado es este, ya que este lenguaje es tan malo que la mayoría de los marcos (Angular, Ember, React, etc.) usan transpilers para entender qué tan malo es este idioma.
  5. No se desanime cuando su código no hace lo que usted quiere que haga. El código siempre hará lo que le dijiste que hiciera. He estado desarrollando software durante más de 25 años y no hace mucho tiempo estuve atascado durante horas en lo que parecía ser una simple declaración de ‘si’ que se estaba portando mal. Finalmente tuve un compañero de trabajo (que usaba un idioma diferente al que yo tenía) miró mi código. “Ryan”, dijo amablemente, “¿por qué tienes un punto y coma al final de tu declaración if?” ¡Son las horas correctas porque tengo un $ # @ y punto y coma en el lugar equivocado!
  6. Por último, pero no menos importante, saber que la codificación es tanto una forma de arte como una ciencia. ¡Disfrutar!

Aprendes mucho más de fallar que de tener éxito. Así que abrázala cuando fallas y vuelve a intentarlo con doble esfuerzo. El desarrollo de software no se trata del desarrollo de software. Es una herramienta para lograr algo en otros campos, asegúrese de entender el campo en el que trabaja y de la programación. El primer lenguaje de programación dará forma a su forma de pensar acerca de los programas (¡en serio!), Y cuando aprenda su segundo idioma tendrá que volver a visitarlo. No te preocupes por la parte “es difícil” y “es frustrante”. Todo es duro y frustrante hasta que lo consigues. Esa es solo la realidad del aprendizaje. Si no fuera difícil, no estarías aprendiendo nada. Si te quedas atascado, prueba un divertido proyecto paralelo por unos días. Esto reconstruirá la confianza y le dará tiempo a su subconsciente para reflexionar sobre su problema inicial. A menudo, su problema inicial aparentemente se resolverá después. Además, la mayoría de los novatos intentan la autoaprendizaje, lo que reduce las posibilidades de éxito. No estoy diciendo que debas dejar de enseñar por ti mismo, pero es un hecho que no puedes enseñarte a ti mismo la forma en que un maestro experimentado enseñará. Si tiene un comando básico en programación, entonces puede aprender por su cuenta, pero si es nuevo, le sugeriré que asista a una universidad de programación para que pueda asegurar su futuro brillante. Holberton School es uno de los institutos de programación populares.

Si lo he dicho una vez, lo he dicho un millón de veces:

CODIGA SUS FRENOS DE FRIGGIN

La codificación es como cualquier habilidad aprendida: no hay forma de que puedas leer un libro o seguir un tutorial sin hacer el trabajo y aplicarlo.

Ejemplo: Acabas de comenzar un tutorial de idioma para Python (el primero que me vino a la mente). El tutorial lo guía a través de la realización de su primer programa “Hello World”, y usted regurgitó el código en su IDE.

imprimir (“¡Hola mundo!”)

¡Increíble!

Ahora hazlo un montón más de veces hasta que la sintaxis se mantenga, luego hazlo diez veces más. Tu consola mostrará una tendencia de pasar de ‘Hey, esto es genial’ a ‘Esto es una estupidez. ¿Por qué escuché a ese tipo?

¡Felicidades, acaba de obtener una valiosa información sobre el conflicto interno constante de cada programador sobre su elección de carrera!

Pero aquí está la trampa: sientes no tan secretamente que quieres aprender algo más.

“¿Cómo puedo cumplir mis sueños de convertirme en un diseñador de software para combinaciones de lavadora / secadora al dominar un comando de impresión?”, Puede preguntar.

Bueno amigo, déjame decirte: enjuaga y repite.

Así es, repita este proceso para cada uno. soltero. cosa. tú. aprender.

Parecerá increíblemente estúpido hasta que llegues a las funciones, pero confía en mí. A medida que pase el tiempo y comience a hacer programas más grandes, se agradecerá por tomarse el tiempo adicional para dominar las cosas simples. Tendrá que confiar menos en la documentación antes que las personas que simplemente aprenden el concepto y continúan. Las mejores prácticas serán más fáciles para usted, ya que podrá ver en qué se diferencian de lo que aprendió originalmente (y por qué a veces tendrá que romper las reglas).

La repetición es la clave del dominio. Siempre parece tonto mientras aprendes, pero una vez que alcanzas ese momento de “AHA !!!” en el que todo hace clic, es la mejor sensación del mundo.

Ahora, puede seguir mi consejo e ignorarlo por completo porque es algo que cualquiera puede hacer y usted no aprende por completo a través de la repetición, pero es su pérdida. Tómelo de alguien que recibió este consejo cuando apenas estaba comenzando, pasó tres meses lejos de una computadora y tuvo que volver a aprender conceptos básicos porque no se tomó el tiempo de consolidarlos por completo.

Volver a aprender es un asco importante porque te descompone y te hace sentir estúpido por olvidar cómo funcionan las funciones. Se necesita mucha fuerza de voluntad para no rendirse en el acto y decir ‘joder’, así que no seas como yo y arriesgalo.

Mucho amor y feliz codificación <3

Elige tus lenguajes de programación, aprende en la escuela o en un curso en línea. Tome un curso separado sobre Programación Orientada a Objetos, use este conocimiento sobre OOP para perfeccionar sus habilidades de programación y para aprender otros lenguajes OOP.