Cualquier otra respuesta en este hilo parece centrarse en los lenguajes de programación que debe aprender, o la plataforma que resulte ser el problema actual.
Esas respuestas son todas incorrectas.
Los lenguajes de programación van y vienen. Así lo hacen las plataformas. Lo mismo ocurre con las tendencias tecnológicas. El ingenioso nuevo lenguaje de programación de hoy es generalmente una curiosidad en una o dos décadas. Es útil aprender un idioma moderno o cinco hasta el punto de fluidez, pero los lenguajes informáticos nunca son el objetivo en sí mismos.
- ¿Qué tan difícil es una especialización en ciencias de los materiales en Stanford?
- Estoy a punto de sacarme la primera noche de la noche mientras hago muchas pruebas y exámenes para los que estaba ausente, ¿debería hacerlo?
- ¿Es normal que las personas que son buenas en las preguntas de HW de matemáticas basadas en la prueba luchen con las preguntas de HW basadas en cálculo / cálculo?
- No lo he hecho bien en mi graduación. ¿Sería capaz de entrar en un buen programa de MBA?
- Fallé durante mi primer año en IIIT-Delhi, por lo que debo repetirlo. ¿Debería irme?
El 20% en el que necesita enfocarse es aprender cómo los grandes programadores resuelven problemas.
Primero: elegir una tecnología de interés. Aparentemente desea aprender JavaScript y quizás tecnologías relacionadas con C # y HTML; eso está bien, pero mi proceso funciona con cualquier lenguaje de programación o tecnología.
A continuación: encuentre un gran programador (o programadores) que escriba en los lenguajes o tecnologías que desea aprender. Este es, con mucho, el paso más difícil. Hay una gran cantidad de programadores mediocres por ahí que se consideran genios. Los profesores universitarios pueden ser excelentes matemáticos, pero no necesariamente excelentes programadores. Las matemáticas viven a dos puertas de la programación; están relacionados pero definitivamente no son lo mismo. [1] Siempre recuerda que la mitad de todos los programadores son peores que el promedio. Consejo: si no sabe a quién elegir como su gran programador, elija a alguien que haya inventado una tecnología utilizada por miles o millones de personas, que también haya hecho que su código fuente esté disponible abiertamente.
Entonces: lee su código . Aprende cómo piensa tu programador. Entra en sus comentarios. Sigue su lógica. Instalar y compilar su código y verlo correr. ¿Tiene sentido para usted? ¿Por qué hicieron lo que hicieron? ¿Por qué no tiene sentido? Usa tu cerebro aquí. Tienes que entender no solo lo que hicieron, sino también por qué lo hicieron .
Finalmente: solo ahora debes escribir tu propio código . Puedes comenzar por cambiar algún aspecto del código de tu gran programador; tal vez usted puede agregar una característica o corregir un error. O puedes ser valiente y desarrollar tu propio software desde cero. Has estudiado el mejor trabajo que hay; Tienes una idea de cómo lo hacen los mejores. Ve tú y haz lo mismo.
Las habilidades que aprendes a través de este proceso son transferibles . Puede llevarlos consigo a lenguajes, sistemas operativos o nuevas metodologías de desarrollo aún por inventar que aún no existen.
Lo más importante es que, a diferencia de todas las respuestas de “aprenda el lenguaje FooFoo”, este proceso le enseñará cómo colaborar con otros programadores , una habilidad comercial absolutamente vital que nunca pasa de moda.
Ahí está tu 20%. Literalmente reducirá años (y quizás décadas) del tiempo que le toma convertirse en un programador competente .
Buena suerte.
[1] Supongo que ya tienes una base universitaria básica en estructuras de datos, teoría formal de la computación y algoritmos. Si aún no tienes eso, consíguelo. Elija a sus instructores con el mismo proceso extremadamente selectivo que describo anteriormente. Un programa de CS de cuatro años de una universidad conocida siempre es una buena opción, si tienes tiempo. Ignora todos los modernos MOOC de propiedad privada. Especialmente, no pierda tiempo con Coursera o Udacity o edX o cualquiera de las clases populares de “Programación y la Web para principiantes”. Ignora a Harvard también; mi alma mater todavía no ha descubierto cómo hacer MOOC. Doy clases ocasionalmente en la USC. Si debe ir a la ruta MOOC para aprender los fundamentos, use el sistema OpenCourseWare de MIT . No acepte sustitutos. Las clases en línea de MIT son el estándar de oro para el aprendizaje a distancia y la educación continua en ciencias de la computación, y son incondicionales . Comience con MIT 6.01SC y vaya hacia arriba desde allí.