Sí, definitivamente puedes aprender a desarrollar tus propios sitios web y aplicaciones web y posiblemente incluso conseguir un trabajo en menos de un año.
En lugar de decirle qué idiomas aprender y qué recursos usar, lo ayudaré con algunos consejos y trucos para aprender rápido y aprender correctamente. Es posible que estos consejos te confundan en este momento, pero si los mantienes en tu mente desde el principio, obtendrás una ventaja seria.
Bueno, lo primero es lo primero. Crear una cuenta github. Github es un recurso increíble para los aspirantes a desarrolladores. Github alberga muchos de los mejores proyectos de software de código abierto jamás creados. Aún mejor, puedes crear las horquillas (copias) de los repositorios, romper el código, piratearlo e incluso crear la mejor opción. No solo eso, sino que también puede registrarse para obtener una cuenta de Gitter y hacer preguntas a las personas que crearon los proyectos en los que está interesado. Es realmente un recurso invaluable.
En el mismo tema, aprender Git. Es el mejor amigo de los desarrolladores de software. Git es una forma de administrar su código en un repositorio y puede usarlo para rastrear los compromisos (guardados) de su proyecto. Te da confianza porque si rompes tu código, puedes averiguar fácilmente qué sucedió y arreglarlo sin volverte loco. Puede hacer cambios con confianza sabiendo que siempre puede esconder una sucursal si rompe su código.
- ¿Qué debo hacer para vivir mi vida?
- ¿Cómo puedo aprender diseño web?
- ¿Qué tan rápido puedes aprender alemán?
- Cómo aprender a codificar profesionalmente usando Ruby on Rails en menos de seis meses
- ¿Cómo elijo un lenguaje de programación?
Comience con proyectos que ya están organizados, o incluso proyectos que ya están hechos. Aprende a modificarlos. Lee el código y entiende lo que están haciendo. Le ayudará a leer los proyectos que están bien comentados y bien documentados porque aprenderá rápidamente lo que está sucediendo.
Aprende Linux y la línea de comandos. Aquí hay un enlace a un curso: Principios básicos de la línea de comandos de Linux.
Aprender la línea de comandos es muy importante, pero es muy difícil para un nuevo desarrollador. Sumérgete en ello. Obtenga una vieja computadora portátil o un Chromebook e instale una distribución de Linux. Use la línea de comandos para cosas simples como la administración de archivos en su computadora. Se convertirá en algo natural en unas pocas semanas o meses.
Una vez que se sienta un poco más cómodo con los conceptos básicos de la web, céntrese en la automatización, la modularidad y las pruebas.
La automatización es un concepto poderoso. Al principio, te estresará seriamente, pero te hará un desarrollador exitoso. Personalmente uso Grunt o Gulp para automatizar mi flujo de trabajo. Puede que no tenga sentido desde el principio, pero mantén esto en tu cabeza desde el principio. Esencialmente, si descubre que está haciendo algo todos los días, probablemente haya una forma de automatizarlo para que solo tenga que hacer una pequeña configuración por adelantado y luego ahorre tiempo y energía a partir de ese momento. Echa un vistazo a esta serie de videos de Udacity: Herramientas y automatización web.
Ahora, en la modularidad. Imagínese si solo tuviera que crear algo una vez y luego pudiera usarlo por el resto de su vida. Esta es la idea detrás de la creación de código modular y es la piedra angular del software moderno. Aprender patrones de diseño orientado a objetos. Si te estás repitiendo, entonces lo estás haciendo mal.
La prueba lleva tiempo, pero mejorará su código. Basta de charla.
El último consejo que tengo para usted podría ser la clave más importante para el éxito. Sé apasionado por lo que haces. Vive y respira. Si le apasiona el software, se encontrará preguntándose constantemente cómo funcionan las cosas y cómo podría mejorarlo. Harás que tu familia y tus seres queridos se vuelvan locos, pero vale la pena.
Mi pasión por el software es lo que me ha hecho exitoso en esta industria. Incorporo la educación en mi día todos los días. Intento cosas nuevas y desafío a la convención. Si no entiendo algo, lo leo en mi tiempo libre. Haz lo mismo y serás un desarrollador en ningún momento.
Espero que esta respuesta te ayude, incluso si no fue la respuesta exacta que estabas buscando.
Póngase en contacto si necesita más orientación.
EDITAR:
Bien, para completar esta respuesta, te daré una guía sobre en qué deberías enfocarte.
Nanodegrees de Udacity son increíblemente buenos en mi experiencia. Si no quieres pagar, solo mira los videos. Si puedes pagar, entonces hazlo. Construirás tu red profesional, obtendrás revisiones de código y probablemente incluso conseguirás un trabajo.
Decide en qué quieres centrarte. ¿Desea diseñar sitios y concentrarse en el extremo delantero (cómo se ve y cómo funciona para el usuario final), desea configurar bases de datos y trabajar en el backend, o desea crear todo el conjunto? Hay muchas especialidades en el campo, pero en general me gusta entender cómo funciona todo junto, así que supongo que podrías llamarme un desarrollador de fullstack. La desventaja de este enfoque es que puede tomar más tiempo dominarlo.
El Proyecto Odin es bastante bueno, aunque se enfoca principalmente en Ruby on Rails, que puede o no ser en lo que quieras enfocarte. La parte que me gusta es la sección sobre lo que hace un desarrollador web. Puede ser una buena opción para usted y es un muy buen recurso.
Aprende HTML y el DOM, CSS y JavaScript. Comience con un generador de sitio estático como Jekyll. Le introducirá a la automatización sin gastos generales de su parte. Continúe con la construcción de su propio backend con NodeJS, Rails, Django o cualquiera de los otros frameworks del lado del servidor. No caigas por el agujero del conejo y trata de aprender todo al frente. Si y cuando pasa al desarrollo de Fullstack, concéntrese en un lenguaje de fondo (Ruby, Python, NodeJS, C # .NET) y descubra qué marcos están mejor documentados y probados.
Aquí hay un par de otros recursos que pueden ayudar:
Freecodecamp
Escuelas w3