La programación se trata de las siguientes cosas:
- Resolviendo problemas
- Soluciones de personalización
- Soluciones automatizadas
- Haciendo accesibles las soluciones.
Estos lenguajes son solo herramientas para alcanzar tus metas. Apréndalos para usarlos en lugar de como elementos de tareas en una lista. Cada nuevo aprendizaje mejorará su capacidad de aprendizaje. También hará que sea más difícil aceptar diferencias entre idiomas. Así que mantén una mente abierta.
También recuerda que eres humano y no un superhombre para aprender todo en un instante: la respuesta de Quora a ¿Cómo puedo aprender todo sobre las computadoras?
Cada idioma tiene puntos fuertes y diferentes vistas de la computadora.
- Quiero aprender Unity 3D. ¿Cuál es el mejor instituto en la India?
- Tengo 3-4 horas de inactividad al día en las que no hago nada en el trabajo, y mi trabajo ahora es tan rutinario que no hay ningún estímulo intelectual en absoluto. ¿Qué habilidad útil debería dedicarme al aprendizaje que podría ser estimulante y posiblemente lucrativo en el futuro?
- Tengo 21 años. Estoy terminando mi graduación en mayo. No tendré trabajo para el próximo año. ¿Cómo puedo sacar lo mejor de ese año? ¿Qué habilidades puedo desarrollar?
- He oído grandes cosas sobre la meditación trascendental. ¿Tengo que tomar uno de esos seminarios de $ 1,000, o es posible aprender por mi cuenta?
- Soy la persona más indecisa de todas. Y está afectando a todas las áreas de mi vida ahora. ¿Cómo puedo superar esto y ser más decisivo?
Dado que especifica las bases para aprender cualquier idioma , estoy enumerando más elementos internos básicos en lugar de aprendizaje a nivel de superficie.
Comience con C y Python en paralelo:
C toma tiempo para comer, digerir, asimilar y entender. Python es fácil de aprender y usar para que el programa funcione. Si te limitas a Python solo, te resultará difícil adaptarse a los idiomas más crípticos más adelante.
De manera similar, use Windows y Linux simultáneamente; de lo contrario, las ventanas por sí solas reducirán su crecimiento a más áreas centrales de programación (sin una GUI).
A continuación, agregue el ensamblaje (encontré la guía de Peter Norton para la programación x86 una magnífica pieza de enseñanza de manera incremental. El lenguaje de ensamblaje de Peter Norton para PC de IBM: Peter Norton, John Socha: 9780136619017: Amazon.com: Libros)
A continuación, cualquier otro idioma que desee. Tenga en cuenta que esto llevará mucho tiempo (años), así que tómelo con calma, ya que todos los demás idiomas son opcionales.
Daré mi experiencia limitada en lugar de sugerirte una lista para que aprendas:
- Lenguaje ensamblador (para comprender cómo se ejecuta realmente el código en el hardware y en el nivel del sistema operativo, debajo de todas las capas de azúcar sintáctica en lenguajes de alto nivel),
- Lex y Yacc (herramientas de diseño del compilador para entender cómo el compilador se ve en el código del programador),
- Lenguaje C (especialmente utilizando ensamblaje en línea en código C y programación estructurada y estructuras de datos)
- SQL (especialmente la implementación de almacenamiento y acceso de nivel inferior para el uso eficiente de la base de datos),
- Python (para crear prototipos de sus ideas, para un fácil acceso a bibliotecas excelentes, para automatizar tareas, para marcos web),
- C ++ (para crear librerías y OOPs eficientes y programación genérica),
- Java o C # (para comprender los marcos y cómo las máquinas virtuales cubren el nivel de hardware)
- HTML, CSS, JavaScript y uno de los marcos web para aprender cómo conectar a las personas con los servicios.
- Android para conectar dispositivos a servicios.
Hay otros lenguajes que no tienen ninguna relación con C, etc. Lisp, Prolog (y sus lenguajes descendientes), programación paralela / funcional. Aprender esto le dará un gusto por la diversidad de enfoques disponibles.
Ver también: Learning Programming Answer Cache por Gurudutt Mallapur en techtalkies