Como programador autodidacta, supongo que estoy seguro de que sabe cómo resolver muchos problemas, pero no siempre por qué esas soluciones funcionan. Este es un buen momento para leer sobre la teoría.
La teoría ayuda a abstraer la aplicación. Si conoce la estructura genérica de un algoritmo, puede aprender a implementarlo en múltiples idiomas y en múltiples plataformas. Así es como te conviertes en un ingeniero de software.
Un buen plan de estudios cubre programación imperativa (C, Fortran) y declarativa , y sus derivadas, Orientación a objetos (C ++, Java, C #) / Secuencias de comandos (Python, Ruby, JS) y Funcional (Haskell / Lisp) / Lógica (SQL) respectivamente . Juega con estos idiomas, especialmente Lisp y Haskell, para tener una idea de estas diferentes maneras de pensar. Swing by Automata and Algorithms mientras estás en ello. Ser competente con estas herramientas lleva aproximadamente un año. Debería sentirse cómodo escribiendo cualquier algoritmo que encuentre en cualquiera de estos idiomas.
Una vez que haya reducido los paradigmas básicos, le recomendaría varios temas avanzados de estudio, como Aprendizaje automático, Diseño de compiladores e Inteligencia artificial. Esto ayuda a consolidar su comprensión de cómo las abstracciones diferentes lo ayudan a resolver problemas. Recoge algunas matemáticas útiles mientras estás en ello; Te ayudará a abordar temas avanzados. Espera otros dos años en esto.
- Si usted es un instructor de Udemy, ¿ha experimentado beneficios significativos en mercados competitivos?
- ¿Qué curso sobre edX, Coursera o cualquier otro MOOC es bueno para prepararse para el GRE o TOEFL?
- ¿Alguien ha tomado clases en Codify Academy?
- ¿Cuáles son los mejores cursos de desarrollo web profesional (en línea o en Bangalore), para las personas que saben cómo crear sitios web pero quieren llevarlo al siguiente nivel?
- De las personas que lo han usado, ¿cuáles son sus opiniones sobre Khan Academy Mathematics?
Finalmente, sal y construye algo. Como ya tienes experiencia, probablemente lo sepas, pero la verdadera habilidad requiere práctica. Cada parte de la teoría te hace un mejor practicante, y aunque parece que nunca te pondrás al día, tienes que darte tiempo para aprender.
Ah, y no dejes que nadie te diga que no puedes hacerlo. El mayor malentendido acerca de la informática es que debes aprenderlo en una universidad. Lo segundo es que no tienes que aprenderlo en absoluto. Ninguno es correcto; cuando se sienta cómodo con la codificación en una pizarra (obtenga uno de estos) pero sepa cómo hacer que funcione con el código de ejecución real, puede llamarse ingeniero de software.