¿Cuál es la forma más inteligente de desarrollar habilidades de codificación en varios idiomas?

Gran pregunta, y gracias por el A2A.

Hay varios enfoques que se me ocurren de manera espontánea … pero el hilo común entre todos ellos es la retroalimentación .

  • Haz pequeños ejercicios en varios idiomas diferentes. Nuevamente, hay algunas formas diferentes. Puede iniciar un blog (si aún no tiene uno), ver varias fuentes de Code Katas como CodeKata o codekatas.org, probar las mismas en todos los idiomas que desea aprender o practicar e invitar comentarios. Mejor en mi humilde opinión sería hacer los ejercicios en exercism.io (que obliga a un orden en usted, que es diferente para diferentes idiomas). Estos serán “alimentados” a otros que hayan completado ese ejercicio, para que comenten.
  • Elija una “aplicación estándar”, es decir, una aplicación que intentará implementar en varios idiomas diferentes. Hazlos todos de código abierto (preferiblemente en algún lugar común como Github), ya que los estás haciendo para que la gente pueda comentar sobre la última etapa y ver tu progreso. Nuevamente, invita comentarios. Para algo más grande como este, es posible que desee completar al menos un conjunto importante de características en un idioma antes de pasar a otro. Además, por supuesto, no todos los idiomas (y sus marcos) serán adecuados para cada problema.
  • O, como se ha sugerido, tómelos uno a la vez. Es probable que cada uno tenga (al menos) un tutorial muy popular que lo haga construir una aplicación no trivial, ya sea un blog (¡NO haga de este su blog “real”), un recordatorio de todo, un clon de Twitter o lo que sea. Trabaja hasta el final de cada una antes de pasar a la siguiente. Nuevamente, abra su código de código abierto mientras lo hace e invite a sus comentarios .

Ahora, ¿cómo puedes invitar a los comentarios, cuando no tienes algo como el ejercicio que se lo da a la gente? Las tres categorías principales de formas son remotas, en persona y automatizadas .

Para control remoto, únase a foros en línea y listas de correo electrónico. En persona, estás en un área excelente para una amplia variedad de lenguajes de programación comunes. (Lo sé porque estoy justo en el camino en Fairfax, y solía vivir en Vienna VA.) Únase a los Meetups locales (u otros grupos similares) para cualquier idioma que le interese. Hay al menos cinco para Ruby en el área metropolitana de DC, así que supongo que hay al menos uno para cada idioma común que buscan. Muchos de ellos también tienen listas de correo activas. De cualquier manera, haga preguntas cuando esté atrapado, pídales (de vez en cuando) que miren lo que ha hecho y, a medida que desarrolle su propio conocimiento, compártalos también. Es mucho más probable que las personas ayuden a las personas que también ayudan, en lugar de “ayudar a los vampiros”. Esto también ayudará a cimentar su reputación cuando quiera ser contratado.

Para comentarios automatizados, algunos idiomas tienen una amplia variedad de herramientas, desde verificadores de estilo hasta analizadores de seguridad, mientras que otros no tienen prácticamente nada. Para cada uno, descubra lo que puede obtener y úselos con frecuencia. Con algunos idiomas, hay servicios gratuitos mediante los cuales puede hacer que un montón de ellos se ejecuten automáticamente cada vez que realice una solicitud de extracción u otra actualización en su repositorio de Github. Examine el concepto de “integración continua” si aún no está familiarizado con él; esa es la categoría en la que se encuentran la mayoría de estas herramientas.

¡Buena suerte y cuéntanos cómo va tu aventura!

Te recomiendo que comiences de forma simple, más tarde puedes acelerar. Así que enumeraré los recursos en consecuencia.

Este libro es bueno como punto de partida.
Programación para el principiante absoluto: Jerry Lee Ford Jr

Esta es una introducción a algunos Java, C ++, muy buena para hacer ejercicio.
Programación: Programación de computadoras para principiantes:

Hay sitios web en línea de los que puede obtener ayuda
Programación de computadoras
MIT
Aprende a codificar
Comienza a aprender gratis
codeavengers.com
Aprende a codificar haciendo – Code School
learnstreet.com
Programas de nanogrado
Aprende a codificar en la escuela o en casa

-Si cree que es hora de acelerar, puede tener este libro, que cubre muchos de sus intereses
Programación para principiantes: Aprenda HTML, HTML5 y CSS3, Java, PHP y MySQL, C # con las mejores guías para principiantes: T. J Wilson: 9781515046530: Amazon.com: Libros


Si necesitas un suplemento

Aprendizaje de PHP, MySQL y JavaScript: con jQuery, CSS y HTML5 (Learning Php, Mysql, Javascript, Css y Html5): Robin Nixon: 9781491918661: Amazon.com: Libros

Gracias por el A2A!

Los idiomas específicos que enumeró se utilizan principalmente en una pila de desarrollo web; es muy probable que si se esfuerza por desarrollar una aplicación web aprenda los conceptos básicos de cada uno de esos idiomas de forma habitual.

Un buen punto de partida es aprender a construir algo similar a una aplicación de tareas: esto puede enseñarle todo lo que necesita saber y habrá adquirido un poco de experiencia en todos esos idiomas. Las aplicaciones de Todo son formas muy comunes de exponerse a la mayoría de los idiomas que se usan como parte de una pila de desarrollo web (aunque pueden volverse aburridos después de unos pocos, jaja).

Una vez que haya construido algo, su objetivo a partir de ahora es continuar creando aplicaciones más nuevas y ricas que aprovechen los idiomas sobre los que desea obtener más información. Si desea impulsar sus habilidades de diseño (HTML, CSS, JavaScript), diseñe aplicaciones que sean lógicamente simples pero que puedan beneficiarse de cierta magia visual (como un blog). ¿Desea obtener más información sobre el manejo de la lógica (lenguaje de fondo elegido, lenguaje de servidor elegido)? Cree aplicaciones más exigentes lógicamente, como una aplicación de procesamiento de datos que proporcione resultados a su IU.

A medida que continúe desarrollando nuevas aplicaciones, continuará desarrollándose como desarrollador.

Yo diría que los tomes uno a la vez. Solía ​​tomar proyectos en cualquier idioma para aprender más. Después de completar proyectos en Perl, VB6, .Net, Python, C, C ++, Java, etc. Me instalé en PHP y me especialicé en ese lenguaje. Nadie puede “dominar” todos los idiomas que menciona. Alguien puede ser bueno e incluso genial en todos ellos. Pero es demasiado para dominarlos a todos. Entonces, tome uno a la vez, estudíelo, apréndalo, por dentro y por fuera. Luego aborde el siguiente, etc.

Elijo PHP no porque sea “el mejor” o porque sea el más fácil, sino porque hay mucha demanda de trabajo PHP en el nicho que seleccioné, y no muchos desarrolladores PHP realmente BUENOS. No puedo decir cuántos proyectos hemos asumido después de que otros desarrolladores fallaron. Las personas que se especializan cobran más. A veces, podemos facturar hasta $ 150 / h porque somos muy, muy, muy buenos en PHP. Y resuelve problemas que otros rascan allí. No porque seamos mucho más inteligentes, solo porque hemos dedicado más tiempo y esfuerzo a dominar una cosa extremadamente bien en lugar de simplemente romper la superficie de una docena de tecnologías diferentes.

El mejor “recurso” para mejorar la codificación (suponiendo que conozca la programación, que no tiene nada que ver con la codificación, es desarrollar algoritmos, estructuras de datos y objetos), es … la codificación. La experiencia vale más de 100 libros y sitios.

Comience a escribir sitios para hacer el tipo de cosas que tendrá que hacer en clase, una a la vez. Aprende HTML. Escribe algunos sitios estáticos. Aprende CSS. Tome uno de sus sitios HTML y haga que se vea totalmente diferente sin cambiar ningún HTML . (Vea La belleza del diseño CSS para ver docenas de sitios “diferentes” que usan exactamente los mismos archivos HTML). Luego aprenda Javascript y aprenda cómo aplicarlo.

Puede instalar XAMPP en su computadora para ejecutar los sitios que desarrolla. (Se ubicarán en localhost (esa es toda la URL que necesita a menos que su computadora no esté configurada correctamente, luego use 127.0.0.1 como dirección).

Experiencia . Debe poder trabajar en diferentes problemas mejor resueltos con diferentes idiomas. Por ejemplo, usted mejora con SQL trabajando en bases de datos. Mejoras con HTML / CSS y JavaScript trabajando en sitios web dinámicos. Mejoras con C trabajando en controladores de Kernel.

Comience con un problema real que le interese haber resuelto.

Una base de datos de recetas, por ejemplo.

Luego escribe una solución en cada uno de los idiomas que estás aprendiendo, desde cero.

No solo mejorarán sus habilidades lingüísticas en los idiomas que usa, sino que las diferentes formas de pensar sobre la solución del problema en cada idioma lo harán un mejor programador en todos ellos.

Y, si realmente quieres derretir tu mente, crea uno de los idiomas Lisp en cada iteración.

Envíe productos viables usando esos idiomas. Toma pequeños pasos. Haga que una característica funcione a la vez.

Google y una conexión a Internet estable son las únicas otras cosas que necesita.