En primer lugar, los programadores autodidactas generalmente tienden a carecer de la ventaja que tienen otros programadores que están inscritos en un curso de Informática. Pero, de nuevo, eso es solo porque conocen mejores algoritmos y algunos sutiles matices del lenguaje que se les está enseñando.
Casi todos los lenguajes de programación tienen junto con ellos una forma particular de pensar asociada, si puedes comprender eso, eres mejor que muchos otros. Esto es algo que no se puede enseñar, pero se aprende solo con una práctica constante, como dijo Mark. Muy importante en la programación. Si pierde contacto con su tiempo de codificación, puede volver al punto de partida. Entonces, sea cual sea el idioma que desee aprender, asegúrese de practicar escribir su propio código constantemente. NO considere leer códigos de código abierto como práctica, no cuentan.
Ahora que era una pauta general sobre cómo aprender programación, llegando a su problema específico, sus intereses y antecedentes parecen apuntar hacia ciertos dominios específicos de la Ingeniería Mecánica, que es la Mecánica Computacional, CFD, etc. Lo que le sugeriría es que aprenda las bibliotecas y los paquetes que otros ingenieros usan para estos dominios. Una vez más, los paquetes de MATLAB no cuentan, simplemente alimentan con cuchara todo, en su lugar buscan paquetes personalizados e intentan reconstruir su paquete.
- Me ofrecieron el puesto de 'Senior Manager' de la banda 8 en el grupo de análisis avanzado IBM GBS. ¿Qué puedo esperar sobre mis roles y responsabilidad?
- ¿Qué GTX 960 es bueno en general?
- Solicité muchos trabajos sin obtener una sola entrevista. ¿Qué estoy haciendo mal?
- Como estudiante internacional, me preocupa encontrar un trabajo en los Estados Unidos después de la graduación. Seguiré mi maestría en ingeniería geotécnica en Stanford, pero soy pesimista sobre mi futuro. ¿Qué tengo que hacer?
- Soy un estudiante de último año de CSE. Apenas sé cómo codificar, pero lo único que me fascina es la tecnología. ¿Qué debo hacer?
Posibles lanzamientos: C / C ++ / Python / MATLAB
Busque software / bibliotecas / paquetes en estos idiomas, vea el código, escriba el suyo, haga simulaciones de problemas interesantes. Todos ellos pertenecen a su campo actual y también parecen estar relacionados con el campo en el que desea hacer una maestría.
Contribuya al código abierto: obtenga una cuenta git, busque usuarios que codifiquen en cualquiera de los idiomas anteriores y bifurquen sus repositorios, contribuyan a sus errores de corrección de código. Esto cumplirá con las tres cosas: aprender conceptos de programación al leer, escribir código que corrija errores y aprender el concepto matemático detrás de los códigos.
Aparte de eso, sugiero que tome libros (busque si O Reilly tiene algo en este dominio, sus libros están escritos de manera asombrosa). Le habría sugerido los libros estándar de CS, pero serían una exageración para su situación.
¡Todo lo mejor!