Me gustaría compartir mis dos centavos porque recientemente pasé por este proceso yo mismo. Tenía una gran experiencia en tecnología (algo de experiencia con BASIC, Visual Basic y era competente con toneladas de aplicaciones diferentes), sin embargo, me gradué con un título en Negocios Internacionales y no había tocado el código en cerca de 8-10 años cuando Comencé a jugar con PHP y MySQL y decidí que quería ser ingeniero de software.
Varios carteles son correctos: la cantidad de tiempo que puede dedicar al estudio y la aplicación de los principios que acaba de aprender mejor, y la cantidad de tiempo para llegar a un nivel junior empleable puede diferir drásticamente de un individuo a otro.
Pasé probablemente 10-15 horas a la semana (noches y fines de semana) aprendiendo HTML / CSS, PHP / Python, MySQL y bases de datos relacionales y construí varios proyectos paralelos (que fueron las partes más útiles de mi educación), incluido un blog en WordPress, convirtiendo ese blog de WordPress en un CMS PHP / MySQL personalizado y en un pequeño motor de búsqueda de empleo compatible con dispositivos móviles.
- Aprendí HTML, CSS y JavaScript, pero no puedo crear un sitio web dinámico usando JavaScript. ¿Qué tengo que hacer?
- ¿Cómo puedo alojar mi sitio web?
- Necesito un plan de seis meses para convertirme en un desarrollador web de pila completa usando JavaScript. ¿Qué tengo que hacer?
- Si quiero aprender solo un lenguaje de programación y uno para desarrollo web, ¿cuál debo elegir?
- He instalado WordPress en mi sitio web. Necesito editar un poco el código. ¿Cómo puedo vincular este sitio web a mi wordpress local instalado en la PC?
En 3-4 meses comencé a buscar un puesto de desarrollo junior y encontré uno con una empresa contratante y un desarrollador que se arriesgó a mí (me hubiera sentido más cómodo si me hubiera dado 6 meses de aprendizaje / construcción de proyectos , pero pude recoger las cosas rápidamente y ser “arrojado al fuego” fue extremadamente difícil a veces pero invaluable).
Por lo que puedo decir, la ecuación para convertirse en un desarrollador junior parece ser:
time_learning * time_practicing * tech_aptitude_modifier = get_job (JuniorDeveloper.new)
time_learning: horas a la semana que pasó en cursos en línea, buscando documentación, leyendo todos los libros fantásticos sobre idiomas, marcos, estándares de codificación y mejores prácticas, etc.
time_practicing : proyectos en los que trabajas para practicar los conceptos que acabas de aprender. Creo que esta es LA parte más importante de la educación de un desarrollador joven. Puede leer todo lo que desee, copiar línea de código por línea en su IDE o editor de texto, pero hasta que se vea obligado a adaptar el código y los conceptos que ha aprendido para encajar en sus proyectos, ese conocimiento prácticamente no tiene valor.
tech_aptitude_modifier : relación de 0 a 1.
- 0.01 == Utilice una bandeja de unidad BluRay como portavasos.
- 0.2 == Los botones de la barra de herramientas en Microsoft Word son un poco abrumadores.
- 0.5 == Bastante experto en tecnología; puede usar aplicaciones comunes (Microsoft Office suite, PhotoShop, etc.) con confianza, y ha creado un par de sitios web (incluso los sitios web HTML / CSS puros cuentan)
- 0.8 == Todos los miembros de su familia acuden a usted con cualquier problema relacionado con la computadora (y algunos otros problemas aleatorios relacionados con dispositivos electrónicos), principalmente porque puede solucionarlos.
- 0.99 == Solo obtienes tecnología. Sueñas en 0s y 1s, has implementado tus propios árboles de búsqueda binarios para divertirte, has creado tu propia versión del Juego de la vida de Conway y tienes al menos una camiseta con temática de informática * (* no un requisito duro y rápido)
La respuesta de Sean Grogg incluye una gran lista de tecnologías / proyectos que pueden ayudarlo a orientarse en la dirección correcta. Agregaré una sugerencia simplificada. NECESITA aprender HTML, CSS y JavaScript para convertirse en un desarrollador web, sin importar qué pila de tecnología termine utilizando. NECESITA aprender un idioma (recomendaría comenzar con un lenguaje de script: Ruby, Python, PHP, en lugar de un lenguaje compilado como C #, C ++, Java) , un marco web que coincida con ese idioma y una base de datos relacional . Comencé con PHP, Trax (antiguo) y MySQL, pero desde entonces he migrado a Ruby, Rails y MySQL / PostgreSQL. El control de versiones también es imprescindible (como dice Sean, vaya git ). StackOverflow se convertirá en su mejor amigo (al igual que Google, aunque la mayoría de las respuestas de Google lo dirigirán a SO …) si tiene algún mensaje de error o error que no puede encontrar la manera de solucionarlo.
Los marcos JS son muy agradables, pero puedes esperar un año más o menos (solo tengo experiencia con Ember y Angular) ya que tienen algunos conceptos bastante avanzados. jQuery es EXTREMADAMENTE útil y se encuentra en todos los proyectos de tamaño mediano a grande en los que he trabajado, y un marco CSS (Bootstrap, Foundation, Semantic UI o UI Kit) ayudará a que incluso los proyectos simples se vean profesionales con un mínimo esfuerzo.
Por último, tener un mentor o al menos conocer a un desarrollador de nivel superior es extremadamente útil. Alguien que pueda ayudarlo a empujarlo en la dirección correcta, responder preguntas difíciles o abstractas que pueda tener y ayudarlo con las mejores prácticas es invaluable. Afortunadamente, hay muchos sitios que le dan acceso a alguien como este por una tarifa nominal (nunca los he usado, así que desafortunadamente no tengo una recomendación específica).
Espero que esto ayude.