Recientemente me interesé por la programación y no estoy en la universidad. ¿Donde debería empezar?

Bueno, te recomiendo que te unas a una escuela de programación y obtengas un título en informática para ser un programador eficiente. Pero asegúrese de que si elige la programación solo por ganar dinero, pronto se sentirá frustrado y abandonará el campo. En el caso de una gran ambición, comience leyendo libros como “piense como un programador” o “enséñese ciencias de la computación”, recuerde que codificar ¼ de la parte es programar mientras 3 / 4th evalúa el problema y la solución para resolverlo. Por lo tanto, la programación juega un papel importante en la resolución de problemas y el aprendizaje del concepto. Primero, familiarícese con la codificación de HTML y CSS, son mucho más fáciles y luego aprenda los algoritmos fundamentales y la estructura de datos. Una vez que aprenda el concepto básico del algoritmo y la estructura de datos, puede saltar a los idiomas. Mire tutoriales en línea y practique a un lado y analice su desempeño. Usted sabe que la programación de aprendizaje no es solo leer libros y memorizar los conceptos y la estructura, es un arte aprender herramientas para codificar su programa de una manera que la computadora pueda ejecutar. La escuela Holberton es una buena opción para comenzar. El proceso de convertirse en un programador eficiente requiere mucho esfuerzo y tiempo. Una cantidad de habilidades que necesita para aprender a ser un programador competente son innumerables.

El proceso para desarrollar software implica lo siguiente:

  1. Comprender la naturaleza del problema u oportunidad, así como los deseos y necesidades de los usuarios,
  2. Diseña una solución,
  3. Implemente esa solución,
  4. Probar y depurar esa solución,
  5. Entregue la solución probada a los usuarios,
  6. Mantener la solución, y
  7. Mejore la solución agregando características o capacidades (esto equivale a volver a la etapa 1 y repetir el proceso).

Tenga en cuenta que a menudo tendrá que (o desea) volver a una etapa anterior del proceso. Puede descubrir que le faltaba su comprensión. Puede encontrar que el diseño es defectuoso o carece de detalles. Sus pruebas pueden mostrar que la implementación no funcionará como se desea (tal vez simplemente no funciona correctamente, o tal vez demore demasiado) y necesita implementarla de una manera diferente. No se desanime por esto, es normal.

Entonces, ¿cómo comienzas a aprender a hacer esto? La mejor manera que sé es simplemente hacerlo. Cree un programa que le gustaría crear y comience a descubrir cómo construirlo. Hay muchos tutoriales y ejemplos a los que puede referirse si necesita aprender a hacer algo (como comenzar un nuevo proyecto en cualquier entorno de lenguaje y desarrollo que desee utilizar). Espere cometer muchos errores; verlos como oportunidades para aprender a hacerlo bien. Intente hacer todo el proceso (incluida la adición de mejoras), pero si pierde interés, no lo fuerce, intente comenzar un nuevo proyecto.

Más que nada, el proceso de convertirse en un buen desarrollador lleva tiempo. Necesita escribir muchos programas, preferiblemente en varios idiomas y estilos. También necesita aprender muchas habilidades diferentes, las necesarias para hacer todas las diversas partes del proceso.

No puedes aprender a programar de los libros. Solo puedes aprender haciendo .

Así que comienza a practicar con el idioma. Úselo para escribir software. Comience con ejercicios simples y avance hasta completar las aplicaciones. El objetivo es desarrollar sus habilidades para resolver problemas . Hay una miríada de problemas para resolver entre usted y su solicitud final.

Y no, lo siento, no puedes aprender esto de los libros.

Recomiendo “pensar como un programador” de Anton V. Spraul. Es un buen libro que es bueno leer en los primeros días, que comienza por presentarle conceptos y resolución de problemas.

Mientras lee esto, enséñese HTML y CSS. Sams tiene un libro decente que lo llevará a donde necesita ir en este llamado “Sams te enseña HTML y CSS en 24 horas”.

Una vez que se sienta cómodo, puede elegir el libro “Javascript: las partes buenas” y hacer que sus páginas web sean más dinámicas. Quizás incluso aprenda JQuery.

Debería poder cubrir todo lo anterior en unos pocos meses. Ahora comienza la diversión …

Luego, enfóquese en 2 áreas fundamentales clave; algoritmos y estructuras de datos. Encuentre algunos buenos libros para cada uno y utilice tutoriales en línea. Aprender algunas matemáticas discretas en esta etapa puede ayudarlo a largo plazo, ya que muchos libros utilizan descripciones matemáticas.

Ahora está listo para pasar a un lenguaje compilado y aprenderlo bien. Puede pasar a esta etapa desde el principio, pero le resultará un poco más difícil. Recomendaría al menos aprender algoritmos y estructuras de datos junto con Swift si es la dirección elegida. Si te gusta Apple, aprender Swift es una buena opción. El objetivo C puede o no estar disponible para cuando esté listo para el desarrollo móvil, es difícil de decir, por lo que no me sentiría seguro de recomendarlo.

Nuevamente, para su idioma elegido, investigue cuáles son los mejores libros y léalos. Utilice tutoriales en línea cuando necesite explicaciones simplificadas o incluso diferentes cuando encuentre un concepto que le resulte difícil.

Recomiendo el sitio web de Ray Wenderlich para los tutoriales de Swift. Elija también un libro de la biblioteca de desarrolladores sobre el lenguaje Swift, y quizás otro sobre el desarrollo de iOS con Swift para que aprendan juntos el idioma y los detalles de iOS. Idealmente, querrá aprender a utilizar tantos marcos de iOS como sea posible en varias aplicaciones mientras demuestra buenos principios orientados a objetos en varios proyectos favoritos. Aprenda los conceptos básicos de JSON y SQL en el camino si es posible. Entonces deberías estar listo para un papel junior.

La mejor de las suertes.

Gracias por A2A!

Por dónde empezar … ¡Depende de en qué te estés metiendo exactamente!

Usas diferentes herramientas para diferentes cosas.

Si está buscando entrar en el desarrollo web, por ejemplo, le recomiendo echar un vistazo a Ruby on Rails, CFML, Elixir, React, Angular.

Si está buscando crear aplicaciones de escritorio, eche un vistazo a FPC / Lazarus, Java, C ++

Si no está seguro, pruébelos todos y elija el que más le guste.

Hay toneladas de tutoriales disponibles para comenzar con las cosas prácticas.

¡Que te diviertas!

Comience aprendiendo programación (que es análisis situacional, no codificación). Vea Teach Yourself Computer Science. (La codificación es quizás el 5% de la programación. El otro 95% está analizando el problema y llegando a una solución, en inglés. Si no puede hacer eso, no tiene nada que codificar).

Aprender un lenguaje de programación no es aprender programación , es aprender una herramienta para codificar su programa (su solución al problema) en algo que una computadora puede ejecutar.

No entraré en detalles técnicos porque arruinaría su mentalidad sobre la programación como principiante.

Te sugeriría algunas cosas al principio, seguramente las disfrutarás si estás interesado en construir algo que te enorgullezca y te anime a trabajar más en esta era. La lista de cosas que necesitas para ser un desarrollador de software es un poco larga, vamos a acortarla.

  1. Comience a aprender HTML, no necesita aprender todas las etiquetas porque no son obligatorias y aprender algunas porque son obligatorias como la etiqueta div
  2. Después de mover HTML a HTML 5, lea y comprenda la diferencia entre HTML 5 y sus versiones anteriores. aprender esas diferencias, cosas nuevas en HTML 5
  3. Después de aprender HTML 5, intente construir algo en HTML 5, como algunas aplicaciones móviles, de escritorio y de juegos

Después de hacer todo esto, muévase a CSS, JS y aprenda algo de programación del lado del servidor como Java, C #, Python, PHP. Estas cosas te harán un desarrollador de software.

A2A

Si va a hacerlo fuera de cualquier estudio formal, vaya a Somos lo que hacemos | Meetup y encontrar algunos amigos de codificación.

Si quieres buscar más estructura:

La guía definitiva para seleccionar un campamento de arranque de codificación legítimo