Soy ingeniero mecánico por título universitario, pero cambié a una carrera en programación después de graduarme de la universidad y pasé 25 años en desarrollo de software (tanto autoempleados como haciendo 5 startups consecutivas). Entonces, ciertamente puedes enseñarte a ti mismo cómo escribir software.
Como divulgación completa, tomé dos clases de programación básica en la escuela (una en Fortran con tarjetas perforadas, sí, fue hace mucho tiempo y otra en Algol W, una de las precursoras de Pascal). Esas dos clases me dieron los conceptos básicos de la programación, aunque nunca escribí otro programa en ninguno de esos idiomas.
Entonces, lo que quieres comenzar es lo básico de la programación. El lenguaje exacto no es crítico, aunque si es un lenguaje que puede usar más adelante (como Javascript, Java, Python, C #), entonces eso es bueno. Entonces, el primer paso es averiguar cómo aprenderá los conceptos básicos de la programación en uno de estos tipos de lenguajes. Puede encontrar algunos recursos en línea (muchos de los cuales son gratuitos) y hacerlo de esa manera o, si desea más estructura para comenzar, puede consultar el plan de estudios de su escuela secundaria local y encontrar un buen curso de introducción allí (muchos de los cuales Puede tomar por la noche si tiene un trabajo de día).
- ¿Cuáles son las ventajas y desventajas de confiar en las notas de clase en lugar de leer y trabajar con el libro de texto? ¿Es posible dominar el contenido si no usas el libro de texto?
- ¿Qué debo hacer si quiero ser ingeniero pero mis matemáticas son débiles?
- Quiero asegurarme de que voy a una escuela adecuada. ¿Qué cosas debo buscar en buenas escuelas?
- ¿Qué debo hacer después del 12? He tomado biología y no quiero tomar el NEET?
- ¿Qué debo elegir en la clase 11 que tendrá más oportunidades en el futuro, médicas o no médicas?
Debido al alcance de Internet, hay miles de millones de recursos, muchos de ellos gratuitos para aprender a programar. Si está buscando un tipo específico de programación / lenguaje, puede ir aquí: Los mejores sitios web para aprender codificación en línea. Aquí están algunos de los recursos de aprendizaje:
http://www.codecademy.com/
https://www.khanacademy.org/comp…
Y, mucho más se enumeran aquí: ¿Cuáles son los mejores recursos (sitios, libros o tutoriales) para aprender a programar?
Además, hay una serie de foros de programación en Internet donde puedes aprender mucho de los demás. Por ejemplo, supongamos que intentaba ser efectivo en Javascript para poder crear una aplicación cliente de navegador y un servidor backend en nodejs (ambos usando Javascript). Puede ir a Stack Overflow, registrarse y crear una consulta para todas las preguntas con Javascript y node.js como etiquetas. Luego, cada día seleccione 10-20 preguntas que parezcan interesantes (no triviales y útiles) y comience a tratar de encontrar la respuesta para cada pregunta. Luego, después de algunas horas en cada pregunta, lea las respuestas para ver cómo otros resolverían cada problema. Eventualmente, debería poder comenzar a proporcionar respuestas usted mismo y obtener comentarios sobre sus respuestas. Aunque he estado programando durante mucho tiempo, si quiero captar un tema nuevo (por ejemplo, quiero aprender a usar el CouchDB desde nodejs), puedo configurar una consulta en StackOverflow para esas etiquetas en particular y comenzar Leyendo las preguntas que vienen en cada día. Al principio, solo leeré las respuestas proporcionadas. Entonces, comenzaré a investigar por mí mismo para tratar de proporcionar respuestas. Luego, eventualmente, comenzaré a escribir aplicaciones de prueba para probar los conceptos que aprendí o para probar las respuestas que quiero brindar. Inevitablemente, investigar algunas de estas respuestas hará que mire el código de otras personas que usa esa base de datos y aprenderá aún más al ver ese código.
Una vez que haya tenido los conceptos básicos de un idioma y haya creado algunos programas pequeños en ese idioma, estará listo para comenzar a crear su primera aplicación útil desde cero. Elige algo que realmente quieras usar. Cuando aprendí Javascript por primera vez, comencé a escribir personalizaciones de Javascript para agregar capacidades a un sitio web de fotos que estaba usando. Cree una lista de las capacidades que desea que tenga esta aplicación y luego comience a averiguar cómo escribir el código para hacerlo. El progreso será dolorosamente lento al principio, pero debes comenzar en algún lugar. Una vez que haya activado y ejecutado un shell de una aplicación, podrá agregar nuevas funciones a un ritmo más rápido.
Una vez que tenga más de unas pocas páginas de código, familiarícese con una herramienta de análisis de código como JSLint o JSHint (estas son herramientas para Javascript, pero la mayoría de los idiomas tienen dichas herramientas). Estas herramientas analizarán su código y le darán todo tipo de consejos sobre su código. Aunque a menudo pienso que estas herramientas son demasiado estrictas en algunas cosas, están tratando de forzarte en buenas prácticas de codificación, por lo que es una buena práctica comprender cómo escribir código para hacer felices a estas herramientas.
Luego, mientras trabaja en su proyecto, aproveche cada oportunidad que pueda encontrar para ver el código de otras personas, ya que es un recurso enorme para el aprendizaje. Hoy en día, con la enorme cantidad de código fuente abierto, esto es fácil de hacer. Cada vez que escoja algún tipo de biblioteca para usar, asegúrese de pasar un tiempo mirando el código fuente en bruto de la biblioteca. Las bibliotecas de código abierto exitosas con muchos colaboradores han sido examinadas por un gran número de desarrolladores y, por lo general, estarán libres de malas prácticas y siempre encontrará nuevas construcciones de programación para aprender. Estudia el código. Recorra algunas funciones de la biblioteca en el depurador para ver cómo funciona internamente, etc.
Una vez que haya puesto en marcha su aplicación, busque algunas personas que quieran usarla. Mira lo que dicen al respecto. Ver qué problemas encuentran con él. Hacerlo mejor. Añadir más características.
En este punto, debe conocer y comprender los conceptos básicos de la programación y haber creado algunas aplicaciones no triviales que otras personas han utilizado. Ahora está listo para tomar algunas decisiones sobre el tipo de desarrollo en el que desea especializarse inicialmente (por ejemplo, desarrollo de navegador en Javascript / HTML, desarrollo de back-end en PHP o Java o incluso Javascript, aplicaciones de teléfonos inteligentes personalizadas en Objective C o Java, etc…) y adquiera destreza en esa especialidad en particular. El objetivo aquí sería llegar a un punto en el que pudiera crear su propia aplicación comercial (solo o en equipo con otras personas), solicitar trabajos de nivel de iniciación en esa área particular de experiencia o encontrar algunas oportunidades de consultoría que pueda hacer.