Como compañero ingeniero que recorrió el mismo camino, me gustaría arrojar algo de luz sobre este tema.
Según la pregunta, asumes eso.
1. Necesitamos obtener experiencia en un idioma / un marco
2. Debería ser Maestro en la única cosa poderosa.
Entonces solo lograremos el éxito.
Estás equivocado hermano. Absolutamente equivocado
- Si quiero crear un sitio web de comercio electrónico utilizando datos de terceros, ¿qué lenguajes de programación web debo aprender?
- Cómo hacer un mapa y usarlo en mi archivo HTML
- Desarrollé un marco de JavaScript que creo que es mejor en todos los sentidos, forma y forma que cualquier otro marco existente. ¿Debo cobrar por la licencia?
- Cómo configurar los archivos PHP en AngularJS para una aplicación de Android
- Me gustaría crear un servicio web usando Java que tenga usuarios y publicaciones. ¿Qué marco es mejor, Play o Grails?
Es solo que nuestra mente / ego está jugando (follando) con nosotros. Es nuestro ser interno está haciendo la suposición anterior. Si encontramos la fuente de esta suposición, encontramos que ha sido forzada por PERDEDORES que nunca lograron nada (gerentes de recursos humanos, vendedores, vendedores, banqueros, maestros, padres, gerentes desorientados, personas mayores, compañeros Lazy Morons (que obtiene el primer rango y ser seleccionado en Indian Service Company) etc.). Todo el mundo dice estas cositas hoy en día.
Aquellos que lograron algo (Programación, Matemáticas, Música, etc.) fueron todos talentosos. (Leonardo da Vinci conoce pintura, ingeniería, anatomía, botánica, etc. (Currículum de Leonard da Vinci)). Son verdaderos ingenieros. Python Creator creó el lenguaje y lo codificó en C. Los creadores de Javascript son maestros en C ++, el creador de Node.js es bueno en C y C ++. etc. Scala Creators lo creó en Java.
La programación es un tipo de actividad donde jugamos con abstracciones. Necesitamos aprender muchas abstracciones para lograr el dominio. Cambiar de idioma es la forma más fácil de entender múltiples abstracciones con un mínimo esfuerzo.
En javascript puedes aprender las siguientes abstracciones con facilidad.
Cierres,
Herencia basada en prototipos,
Devolución de llamadas, Programación dirigida por eventos, Streams, (Node.js)
IO sin bloqueo
expresión de función invocada inmediatamente, etc.
En python puedes aprender.
Comprensiones de listas / diccionarios, iteradores, generadores, métodos mágicos, decoradores, metaprogramación. etc …
Así que entiéndelo bien y hasta el final. No te golpees por hacerlo. La comprensión es la clave.
Cambiar es algo bueno. Además también necesitas aprender
C -> Punteros, asignaciones de memoria, servicios del sistema operativo (subproceso, proceso, etc.)
C ++ / Java -> Patrones de diseño.
Lisp -> (Macros, Código como datos)
Haskell -> Programación puramente funcional, mónadas, teoría de la catogenia. etc.
Erlang -> (Multiprocesamiento, tolerancia a fallas, etc.)
OCaml -> Coincidencia de patrones.
aprender estas abstracciones te hace productivo en cualquier idioma que elijas. Una vez que comprenda estas abstracciones, puede aplicarlo fácilmente a otro lenguaje de programación y resolver los problemas con facilidad.
Y cosa importante. Hay reglas para cambiar.
Regla 1: Siempre comprende las abstracciones (la comprensión es la clave). Escriba un par de programas para comprender lo suficiente de las abstracciones. Es lo fundamental. Por ejemplo, una vez que comprenda Eventos, Streams y Módulos, Node.js ya no será una magia.
Regla 2: Escriba aplicaciones de muestra donde su lenguaje de programación de elección sea excelente.
Por ejemplo:
1. Servidor de aplicaciones web en tiempo real (Node.js / Express)
2. Aplicación científica (Python / Flask / Numpy / Scikit Learn / NLTK / AI (Cómo escribir un corrector ortográfico))
3. Proceso de daemon en segundo plano para material pesado (Linux / C (clasificación de 1 TB de datos, etc.))
4. Compiladores de muestra (OCaml)
5. Pequeños juegos (JavaScript / Canvas, C ++ / OpenGL / Qt)
etc.
Escribe pequeños proyectos con el idioma que elijas. Es fácil y muy efectivo para mejorar tus habilidades. Una vez que complete un proyecto, puede pasar a otro idioma / marco sin sentirse culpable.
Regla 3: nunca dudes en cambiar. Nunca se preocupe por cambiar, no importa lo que diga la gente. Pequeñas gotas hacen el océano. Comprender algoritmos, estructuras de datos, patrones de diseño, abstracciones como (flujos, eventos / devolución de llamada, funcional, mapa / reducción / filtro / curry, etc.)
Regla 4: Con respecto a los marcos (Django, Express, Flask, Angular.js, etc.) Siempre lea el código fuente del marco. No confunda con A vs B vs C, etc. Simplemente elija lo que le gusta y lea el código fuente. Casi tiene todas las buenas prácticas. Y puedes aprender mucho sobre el lenguaje mientras lees el código del framework. Definitivamente mejorará tus habilidades de codificación 1000 adelante.
Regla 5: No te demores demasiado en Frameworks. Si eres bueno en el idioma, el marco de aprendizaje será muy fácil, con 20 horas de trabajo puedes ser competente (
) Para la mayor parte del trabajo, el dominio es suficiente. Solo haz un par de programas y aléjate. Si realmente te gusta el marco, aprende en profundidad. Porque el marco tiene hábitos desagradables de salir del mercado cada 2 años. No pongas demasiado esfuerzo en dominarlo. En su lugar, lea el código fuente e intente comprender cómo lo logran.
Eso es todo amigos.
Aprendí este camino muy duro y perdí muchos años en ello. Por favor no desperdicies el tuyo.
Solo pruébalo Mira si funciona.
Espero eso ayude.