Para cualquier idioma dado (sugerencias a continuación), seleccione lo básico (control de flujo, bucles / recursión, variables, funciones, etc.) en uno de estos sitios [1] [2] [3] o similar. Luego elija un problema relativamente fácil de resolver (intente comenzar con algo en el Proyecto Euler [4]) y resuélvalo, buscando cualquier aprendizaje adicional que necesite en el idioma. Sube la dificultad un poco. Un poco más. Ahora continúe con las tareas simples del mundo real, como simular la colisión de partículas y la gravedad, realizando algunas modificaciones en un archivo, escribiendo un servidor web simple, etc. Ahora es una tarea más difícil, como un servidor web en el que la gente puede hacer algo, o desarrollo de la biblioteca subyacente desde cero solo con bibliotecas de sockets. Y así.
Sugerencias de idioma:
- Si prefieres el desarrollo de solo front-end web (solo lo visual), aprende JavaScript (y aumenta tu HTML con CSS). JavaScript es el único lenguaje para el desarrollo de front-end web en los próximos años.
- Si desea hacer una combinación de front-end y back-end web , puede aprender JavaScript (front-end) más uno de los siguientes:
- Solo JavaScript: no es necesariamente el mejor lenguaje para proyectos grandes, pero los conceptos básicos son bastante simples y funcionan bastante bien (creo que Netflix se ejecuta principalmente en JavaScript).
- Python o Ruby: ambos son lenguajes bastante fáciles, algo orientados a los principiantes, rápidos para escribir código pero no especialmente ejecutantes. Tendrán problemas de rendimiento con cargas grandes, pero no es nada que sea probable que vean como un principiante, y nadie se queda solo con su primer idioma. Ambos tienen marcos poderosos y maduros (Django y Rails, respectivamente) para la web.
- Si desea centrarse en los back-ends web , pruebe uno de estos (tenga en cuenta que esta lista está lejos de ser exhaustiva, hay opciones prácticamente infinitas):
- Java es el estándar de la industria para la confiabilidad. Puede ser algo verboso y molesto y escucho que hay muchas trampas en las que caer, pero cuando se ejecuta, no deja de correr.
- Golang es una opción relativamente nueva, dirigida a servidores web y similares. Es un lenguaje feo con algunas opciones de diseño bastante malas, pero es muy bueno para un buen desempeño en ese tipo de tareas y hace la vida bastante fácil con una buena selección de bibliotecas.
- Dlang no se usa mucho, pero tiene un rendimiento excelente y un marco web muy agradable. La sintaxis es sencilla y bastante normal; El único problema que debe enfrentar es la falta de uso amplio.
- Los lenguajes de programación funcionales están en alza en la web por su tendencia hacia el código correcto y la fácil paralelización. Ambos de los que figuran a continuación tienen un excelente rendimiento para la web.
- Erlang es muy común allí, y escucho cosas buenas sobre su VM, pero no sé lo suficiente como para comentar mucho.
- Haskell es un lenguaje muy agradable, que dibuja distinciones claras entre código funcional puro e impuro (impuro = con efectos secundarios) y con un diseño matemático muy elegante. Yo uso Haskell para mi código de servidor de producción.
- Si desea centrarse en aplicaciones nativas , prácticamente no hay límite para los idiomas que puede usar. C ++, C #, Java, Python, JavaScript, Haskell, lo que sea. Sin embargo, las opciones más comunes incluyen:
- Multiplataforma: Java tiende a ser estándar aquí, y una serie de programadores en Quora tienen mucha más experiencia que la que yo brindo críticas entusiastas de JavaFX.
- Windows: C # es el estándar habitual.
- OS X / iOS: Swift es el nuevo idioma de elección.
- Android: Java es prácticamente el único camino a seguir.
- Si desea centrarse en el desarrollo a nivel de sistemas (es decir, cosas de nivel inferior: sistemas operativos, bases de datos, etc.), sus opciones son más limitadas:
- C es la antigua y probada batalla del desarrollo de sistemas. Terminará el trabajo, pero no esperes que sea fácil.
- C ++ es a menudo un toque más abstracto, pero aún funciona para casi todas estas tareas. Facilita un poco la vida con OOP y similares, pero eso agrega una gran complejidad al lenguaje.
- Dlang se puede usar para el desarrollo de sistemas desactivando la recolección de basura, pero no es una opción ideal, ya que gran parte de la biblioteca estándar utiliza GC.
- El óxido es uno más nuevo que apunta al nicho de C. Tiene un rendimiento similar, pero un compilador potente apunta a abstracciones de costo cero (más fácil sin correr más lento) y refuerza la seguridad de la memoria (con C, aprendes los horrores de las fallas de segmentación; con Rust, el compilador no te deja escribir código inseguro a menos que lo marques explícitamente como tal).
Notas al pie
[1] Página en Ninguna
- ¿Cuál es la mejor manera para que los adultos que no tenían tanto tiempo libre como adolescentes aprendan programación / desarrollo web y obtengan un trabajo lo más rápido posible?
- ¿Cuál es la forma más rápida de copiar archivos grandes (1-2GB) desde Mac a Linux usando una LAN?
- ¿Cómo se puede definir o ejemplificar mejor el “pensamiento abstracto”?
- ¿Qué tan difícil es aprender el chelo? ¿Cuáles son algunas ventajas y desventajas al respecto? ¿Recomiendas la autoaprendizaje?
- ¿Cuánto tiempo me llevará poder tocar el vuelo del abejorro si empecé a tocar el piano dentro de 30 minutos cada día a partir de ahora?
[2] Aprende a codificar y ayudar a organizaciones sin fines de lucro.
[3] Tutoriales para SAP ABAP, SAS, Crystal Report, Pruebas de base de datos, MVVM, Web2Py, ReactJS, MS Project, Silverlight, Foundation, Django, Apache Storm, ETL Testing, Pure.CSS, Entity Framework, Cordova, Materialize, Windows 10 , Less, Statistics, Embedded Systems, Penetration Testing, Jenkins, WebRTC, SASS, Codeigniter, QlikView, SAP HANA, WxPython, Social Intelligence, Zookeeper, Ionic, Discrete Mathematics, Grav, RSpec, PyQt, Brand Design, Work Civility, WPF, WebGL, Comportamiento individual y grupal, Diversidad en el lugar de trabajo, Comportamiento del consumidor, Ética empresarial, Equilibrio en la vida laboral, Estructura de datos y algoritmos, Visión empresarial, Etiqueta comercial, Entrevistas de craqueo, Drupal, Spark, Spark SQL, R, Flujo de apache, WordPress, Gestión del conocimiento XAML
[4] Acerca de – Proyecto Euler