¿Cómo encontrar la motivación para ser un desarrollador web full stack? ¿Puede aconsejarme sobre alguna recomendación o ruta de aprendizaje?

No estoy seguro de que debas. La única regla de carrera que sigo es hacer lo que amo todos los días. Personalmente no tuve que buscar motivación para aprender programación. Naturalmente, quería codificar todos los días. Literalmente estaría ansioso por volver al trabajo, o probar alguna nueva biblioteca o idioma o lo que sea. Seguí haciendo eso, y todavía lo hago hasta el día de hoy. El día que deje de ser el caso, es el día en que encontraré una nueva carrera. La vida es demasiado corta para no disfrutar lo que haces cada día, y personalmente creo que el éxito seguirá si realmente te apasiona algo.

Dicho esto, obviamente puede ganarse la vida dignamente como desarrollador y eso puede servir como motivación, supongo, pero personalmente escribiría código gratis incluso si no me pagaran por ello. Seguiría codificando incluso si nadie usara el producto de mi trabajo.

Así que lo pensaría cuidadosamente, y si llegas a la conclusión de que realmente te encanta la codificación, entonces encuentra un proyecto que te parezca emocionante. Puede ser un proyecto de código abierto existente o una idea completamente nueva que comenzará usted mismo. Luego comience a abordar los problemas uno por uno. Así es como trabajo incluso ahora. Solo tomo un problema a la vez, y sobrevivo a todos y cada uno de los problemas. A veces, los problemas difíciles pueden ser frustrantes, pero si simplemente te niegas a dejar de fumar, eventualmente lo resolverás. Cuando eso sucede, es un gran sentimiento. (De hecho, se han realizado estudios sobre si la codificación puede ser adictiva debido a la liberación de dopamina después de resolver un problema)

Me gustaría repetir lo que mencionó otra respuesta, y es renunciar a la idea de que vas a comenzar un proceso de 12 semanas, y al final serás un desarrollador full stack. Eso es BS, y el aprendizaje nunca se detiene. De hecho, la capacidad de aprender nuevas técnicas, idiomas y tecnologías es una gran parte del trabajo. Realmente nunca llegas al punto donde sabes todo. Hay MUCHO para saber, así que primero tienes que aprender a aprender por tu cuenta. La buena noticia es que cuando comienzas, aprendes con frecuencia, y eso puede ser divertido. Fue para mí al menos. El primer año que estaba codificando, parecía que aprendía algo genial cada vez que me sentaba a codificar. Entonces, diviértete con eso. Buena suerte.

Convertirse en un desarrollador web de pila completa no es un estado de ser. Es un proceso Code Schools y los cursos en línea quieren vender esta idea, francamente tonta, idea de que puedes estudiar durante 12 semanas o un año y que eres un desarrollador de Full Stack. Está mal dirigido. En ese momento, tendrá las habilidades básicas de una pila de conceptos de desarrollo que hacen una aplicación. Es Full Stack Light en el mejor de los casos, pero lo más probable es que solo sea marketing.

Convertirse realmente en una pila completa implicará un aprendizaje que nunca termina. Un compromiso de comprender un poco más al margen de lo que actualmente sabe y luego repetir.

Me parece que no necesitas información sobre cómo ser un desarrollador. Necesita saber cómo mantenerse comprometido con el aprendizaje. Eso nunca ha sido difícil para mí. Es realmente una de mis alegrías.

La recomendación que puedo hacer es establecer pequeñas metas para su aprendizaje. Luego construye algo con ese conocimiento. Algo pequeño. Luego felicítese mentalmente o bombee su primer aire. No pienses demasiado en la grandeza de lo que podrías construir. Aprender. Aplicar. Date unas palmaditas en la espalda. Repetir.

Luego encontrará un proyecto que comienza pequeño, Matrix se abre un poco y puede hacerlo más grande con menos esfuerzo o agregar algún elemento. Puede unir estas pequeñas cosas entre sí y construir algo más grande. Solo concéntrate en un éxito de algún tipo todos los días. Haz el gol. Cumple el objetivo. Comience otro.

Es implacable, pero funciona y nada de lo que digo debería implicar falta de alegría o diversión.

Editar: me preguntaron sobre un camino a seguir. Así que aquí está el alto nivel. Esta es una bonita corriente de conciencia. Estoy seguro de que me perdí algunas cosas, así que las agregaré a medida que piense en ellas.

La forma en que pienso en las cosas es esta, cuando empiezas a aprender necesitas pasar por una progresión como esta:

  1. Algo para mirar (HTML)
  2. Alguna interactividad (JavaScript)
  3. Aprende algunos administradores de sistemas muy básicos. Me refiero a muy básico. La mayor parte de esto son tutoriales. CentOS o Ubuntu. No gastes más de 5 horas en esto. Seriamente. El verdadero administrador de sistemas podría tomar toda una vida. ¡Aprende lo básico y disfruta!
  4. Reaccione a la interacción de la página (Algunos lenguajes de back-end, PHP, JS / Node, C #, elija)
  5. Persistencia (DB, Storage, Mongo: solo use MySQL ya que los RDBM nunca morirán)
  6. Registro (DB + Teoría de cookies + Sesión, encuentre una biblioteca, pero entienda lo que está haciendo)
  7. Haz que se vea bonito (y / ier) (CSS)
  8. Aprende Git básico
  9. Aprende a respaldar las cosas

Ahora tiene una aplicación completa, que hace algunas cosas. Mucha gente llamaría a esto Full Stack. No es. Aprende de manera superficial en el orden anterior y escribe muchas aplicaciones de juguetes.

Entonces, comienza a mirar esto:

  1. Escalado, sin rendimiento, ¿cuál es?
  1. Muchas personas dirán que el almacenamiento en caché, o tal vez la ampliación, es más importante que el rendimiento. Ignóralos y sé muy escéptico ante cualquier otra palabra de su boca.
  2. La escalabilidad no es rendimiento y el rendimiento no es escalabilidad, pero sin el rendimiento subyacente no se puede escalar. Es la verdad. No lo olvides Aquí hay matices, pero aún no estás listo. ¡Solo aprende a hacer un DB rápido!
  3. Concéntrese en cómo escala una base de datos, cómo se indexan los datos, cuáles son las opciones
  • Almacenamiento en caché
    1. Ahora eres rápido, pero quieres ser realmente rápido. El almacenamiento en caché es tu amigo.
    2. Mira en microcaching NGINX
    3. Mira MEMCACHE, Redis y similares
  • Márketing
    1. “Soy un desarrollador”, dirás “¿Por qué tengo que hacer marketing?”
    2. La respuesta es que no puede construir un sistema sin saber cómo se promoverá.
    3. Mire mensajes, suscripciones a boletines, luego SEO 4 veces, sin hacer eso 5 veces. Existe un SEO técnico, externo y en la página. Sepa cómo sus decisiones como desarrollador los afectan. Es todo, desde tu HTML hasta tu rendimiento.
  • Manejo de código.
    1. Realmente aprende GIT. No es tan dificil. Puede construir un sistema robusto completo con aproximadamente 5 comandos y nunca saber nada más. Aprender cuáles son esos 5 comandos realmente es el proceso, o tal vez incluso el estado final completo, de aprender GIT.
  • Copias de seguridad
    1. Aprende a respaldar las cosas.
    2. Aprenda a probar sus copias de seguridad. Una copia de seguridad no probada no es realmente una copia de seguridad. Es algo que podría ser una copia de seguridad o 26 gigas de 1s y 0s al azar para ti, todo lo que sabes.
  • Pruebas
    1. Las pruebas evalúan la eficacia de una pieza de software para cumplir los requisitos.
    2. El proyecto que hiciste en la primera parte nunca está completo porque no decidiste qué fue completo. Entonces, paso 1 de las pruebas, regrese al principio y aprenda sobre los requisitos.
    3. Uno de sus primeros requisitos son los umbrales de rendimiento para que pueda comprender cuáles son sus puntos de referencia subyacentes para el debate sobre la escalabilidad y el rendimiento.
    4. Además, las pruebas se pueden usar para encontrar algo que no esté en los requisitos que deberían haber estado (y lo estarán después de que lo agregue). Las personas UX (que hacen estudios UX, que son un foro de prueba) viven en este mundo.
    5. Lea sobre pruebas unitarias
    6. Lea sobre afuera-> en pruebas
    7. Descubrir la integración continua hasta cierto punto
  • Linux / Gestión del sistema
    1. Francamente, puedes leer tutoriales en línea para la mayoría de esta mierda. En algún momento deberías * aprenderlo *. Algunas personas dicen que esto debería ser lo primero. Ehhh, es una sacudida.
    2. Aprenda sobre crontab
  • Aprende algo nuevo, brillante y sexy como Mongo y Node.
  • Escala real
    1. ¿Sesiones con múltiples interfaces web? UH oh
    2. ¿Puedo usar múltiples bases de datos?
    3. ¿Puedo usar Mongo y MySQL? ¿Juntos?
    4. ¿Cuál es el papel de memcache en el escalado?
    5. ¿Qué es la consistencia eventual?

    El mantra de un desarrollador Full Stack es la cita de Jack of all Trades * full *:

    “Un maestro de todos los oficios es un maestro de ninguno, pero muchas veces mejor que un maestro de uno”.

    Por lo tanto, no tiene que dominar todo esto, pero nunca debe sentirse perplejo por ellos.

    Ahora, si miras todo eso y te vigoriza pensar en aprenderlo todo. Entonces continua. Si no, reconsidere su deseo de ser una pila completa. O considere que es posible que no esté en el lugar correcto * en este momento *.

    Por lo general, trato de encontrar un proyecto que realmente me haga trabajar en él. Un proyecto que me da placer.

    El año pasado (2015) creé un sitio web para mi habitación inteligente que me ayuda a controlar las luces, la computadora y los enchufes por aire en cualquier dispositivo. En este proyecto aprendí CSS, HTML, JavaScript, PHP, consultas de bases de datos y autenticación.

    Obtenga un proyecto e intente hacerlo el mejor, tratando de aprender todo lo que pueda de él. Cuando te des cuenta, sabrás mucho más que ahora y podrás hacer algunas cosas que creías que no podías.

    Bueno, en mi caso no me gusta depender de las personas. Creo que puedo ser más productivo si puedo encargarme del diseño, desarrollo e implementación por mí mismo. Me encanta aprender y poder crear su diseño deseado, ya que el diseñador no podría hacer lo que quiere y la forma en que imagina y hacer que funcione de la manera que desee. Esa es la razón por la que quería hacer esto.

    Haz cosas que quieras hacer, y un día te darás cuenta de “Mierda, estoy técnicamente lleno” o no lo harás y estarás en otro espacio interesante.

    Esos son los únicos tipos de desarrolladores completos que me gustaría contratar … no los chelines que lo hacen por un trozo de papel o un cheque.

    More Interesting

    ¿Cómo agrego un método a una función?

    ¿Es necesario un título en informática o una pérdida de tiempo en comparación con la autoaprendizaje para conseguir un trabajo como desarrollador front-end?

    ¿Cuáles son las mejores herramientas para una startup?

    Para una empresa o departamento de desarrollo de software, ¿cuáles son las medidas clave (KPI si lo desea) que casi todas las organizaciones de desarrollo de software deben rastrear? Estoy tratando de determinar si hay medidas comunes que todas las organizaciones de desarrollo de software deben rastrear.

    ¿Dónde puedo encontrar algunos buenos ejemplos de aplicaciones Node.js?

    ¿Cuál es la mejor manera de programar un proyecto de desarrollo web?

    ¿Hay algún lugar en la web donde pueda aprender cómo configurar un servidor web desde cero con seguridad, etc.? ¿Cómo lo mantendría actualizado?

    ¿Cuándo es mejor usar un tipo de publicación personalizado de WordPress que extender los tipos de publicación incluidos?

    ¿Existe una biblioteca JavaScript de código abierto como ga.js o segmento.js?

    ¿Puedo escribir un buen sitio web que funcione en HTML5 sin usar un solo elemento ?

    ¿Qué cosas debo comprar para una estación de trabajo como desarrollador web?

    ¿Cómo se ganan la vida los desarrolladores web independientes?

    ¿Cuál es la explicación de un laico de por qué XML es de tipo seguro?

    ¿Cuáles son los pros y los contras de CSS @import en comparación con en HTML?

    ¿Cuáles son las mejores prácticas de desarrollo web?