Entonces, decidiste convertirte en programador.
Quizás te interese crear algo nuevo.
Tal vez te atraen los grandes salarios.
Quizás solo quiera cambiar el alcance de la actividad.
No es el punto.
Importante: decides convertirte en programador .
Que hacer ahora

Y hay varios enfoques.
Primero : vaya a la universidad para obtener una especialidad de TI y obtenga una educación especializada. El lugar más común, relativamente confiable, extremadamente largo, la forma más fundamental. Funciona si todavía te estás graduando de la escuela, o si tienes los medios para mantenerte desde el próximo año y medio (en el mejor de los casos, si tomas todo sobre la marcha y puedes comenzar a trabajar en el segundo año) a cuatro (si combinar el trabajo con la escuela no es lo tuyo ) años.
¿Qué es importante saber aquí?
- Debes elegir la universidad correcta. Ver programas de entrenamiento, calificaciones. Un buen indicador son las olimpiadas universitarias. Si los equipos universitarios al menos periódicamente se ubican entre los diez primeros en olimpiadas de programación relativamente grandes, entonces la codificación en la universidad no será un vestigio (a pesar del hecho de que usted personalmente no puede estar interesado en las olimpiadas). Bueno, en general, las reglas de sentido común: es poco probable que la rama fraterna de la Universidad Estatal de Baikal te convierta en un poderoso grupo completo.
Ejemplos de buenas universidades: Universidad Estatal de Moscú / Universidad Estatal de San Petersburgo (obviamente), Baumanka (Moscú), ITMO (San Petersburgo), NSU (Novosibirsk). A pesar de toda su eminencia, es muy posible llegar al presupuesto en ellos, si no es para marcar los principales departamentos. - No es uni universal. A pesar de que recibirás una formación integral en todo tipo de cosas, esto no es suficiente. En virtud de la burocracia, el programa de capacitación casi siempre va a la zaga de las tendencias modernas. En el mejor de los casos, por un año o dos. En el peor de los casos: 5-10 años. Tendrás que compensar la diferencia tú mismo. Bueno, lo obvio: si estudias el material a la par con el resto de los estudiantes, entonces cada uno de ellos será tu competidor igual. Si opcionalmente se presenta, se verá mucho mejor en el mercado.
- Busque trabajo lo antes posible. Empecé a trabajar en el segundo año. Al final de la universidad, ya era un desarrollador bastante intermedio, y no era un junio modesto sin experiencia. Creo que es obvio que después de la graduación, ganar 100k es más agradable que 30k. ¿Cómo lograr esto? Primero, vea los puntos A y B. Segundo, vaya a reuniones, festivales, conferencias, ferias de trabajo. Supervise el mercado e intente obtener un empleado / aprendiz a tiempo parcial en cualquier empresa en la que sea al menos aproximadamente adecuado. No tenga miedo de las conferencias pagas: los estudiantes a menudo obtienen buenos descuentos allí.
Si se observan todos estos puntos, en el momento en que reciba un diploma, puede convertirse en un especialista extremadamente bueno con experiencia laboral y una gran cantidad de conocimientos fundamentales, que las personas autodidactas a menudo adquieren debido a un carácter no aparente. Bueno, una corteza puede ayudar si planeas ir al extranjero: a menudo la miran allí.
Si no cumple ... Bueno, puede obtener una costra siguiendo la corriente, descartando y preparándose para el examen de la noche. Pero, ¿cómo piensas, qué tan competitivo serás entonces? Por supuesto, no digo que deba cerrar todo entre los cinco primeros. Solo necesitas obtener conocimiento. Usa el sentido común. Aprenda lo que es interesante y útil, pero no se preocupe por las calificaciones.

Lo principal no es lo que están tratando de meter en ti. Lo principal es que es interesante y relevante.
-
A continuación, la segunda forma : cursos de programación . Internet está repleto de ofertas para hacerte junior en solo 3 meses de clases. Justo aquí con la cartera, e incluso ayuda a encontrar trabajo. Solo por 10k por mes, sí.
Quizás para alguien funcionará, pero en mi humilde opinión: esto es basura completa. No pierdas tiempo y dinero. Y aquí está el por qué:
Una persona que está lejos de TI no podrá ingresar los detalles de la profesión en 3 meses. Eso no es nada en absoluto. Se necesita aprender demasiada información, demasiado para comprender y, además, para llenar su mano.
Entonces, ¿qué te venderán? Se le venderá una "habilidad mecánica". Sin una gran comprensión de los detalles, le mostrarán lo que necesita escribir para obtener exactamente este resultado. Con instrucciones detalladas y la ayuda de un maestro, aún escribirás algún tipo de solicitud. Uno, máximo dos. Aquí está la cartera. Y ayuda para encontrar un trabajo: enviar por correo las vacantes de junio de las grandes empresas, que es poco probable que pases una entrevista.
Por qué Es simple: es muy importante para un programador pensar de manera abstracta. Un programador resuelve problemas que se pueden resolver de mil millones de formas posibles. Y la tarea principal es seleccionar uno de los miles de millones, el más correcto, y darse cuenta. Crear uno o dos proyectos de acuerdo con las instrucciones le dará algunos conocimientos del lenguaje de programación, pero no le enseñará cómo resolver problemas abstractos. Dibujando una analogía: imagina que se te promete ser entrenado en orientación, serás guiado a lo largo de un par de rutas turísticas simples, y luego dirán que estás listo para conquistar la taiga solo en invierno. Bueno, qué, te enseñaron a usar una brújula y encender un fuego sin fósforos.
En resumen: no creas a los que prometen "llevarte" en poco tiempo. Si esto fuera posible, todos hubieran sido programadores durante mucho tiempo.

Izquierda: lo que se le enseñará. Correcto: lo que se requerirá de usted en el trabajo
-
El tercer camino es el camino elegido por la mayoría. Autoestudio
La forma más difícil, pero quizás la más noble. Detengámonos en ello con más detalle.
Entonces decidiste convertirte en programador. Por donde empezar
En primer lugar, debe responder a su pregunta: ¿por qué quiere esto? Si la respuesta es "bueno, esto, por supuesto, no es particularmente interesante, pero pagan mucho", entonces podemos detenernos aquí. No estas aqui Incluso si su fuerza de voluntad es suficiente para palear mucha información, escribir miles de líneas de código, sufrir cientos de fallas y aún así obtener un trabajo, como resultado, sin amor por la profesión, esto solo conducirá al agotamiento emocional. La programación requiere una gran cantidad de esfuerzo intelectual, y si estos esfuerzos no son alimentados por retornos emocionales en forma de satisfacción por la tarea, el cerebro tarde o temprano se asustará y te privará de la capacidad de decidir cualquier cosa. No es el escenario más agradable.
Si está seguro de estar interesado, puede decidir sobre los detalles: qué es exactamente lo que quiere hacer. Si no sabe cómo los programadores pueden diferir entre sí, Google lo ayudará.
Inmediatamente escribiré el primer consejo para no olvidar: aprender inglés. Se necesita ingles. Sin inglés, en ninguna parte. De ninguna manera Sin inglés, no puedes convertirte en un programador normal. Eso es todo
A continuación, es conveniente elaborar una hoja de ruta: un plan según el cual se desarrollará. Estudie los detalles, vea las vacantes en su especialidad, descubra superficialmente qué tecnologías se utilizan allí.
Un ejemplo de una hoja de ruta para un programador de back-end (no para cualquiera, por supuesto, esta es solo una de las posibles opciones):
- Los fundamentos de html / css.
- Pitón Lo basico.
- Programación en red. Python y la interacción web.
- Marcos de desarrollo. Django, matraz. (comentario: solo para entender qué tipo de "django" y "frasco" necesita para ver las vacantes y leer lo que se requiere allí)
- Estudio en profundidad de python.
- Los fundamentos de js.
Este es un plan muy general , repito, cada uno de los cuales es enorme por derecho propio, y muchos temas no están incluidos (por ejemplo, pruebas de código). Pero esto es al menos algún tipo de sistematización del conocimiento, que le permitirá no confundirse con lo que sabe y lo que no. En el proceso de estudio, se hará más claro lo que falta, y esta hoja de ruta se complementará.
A continuación: encuentre los materiales de los que aprenderá. Las principales opciones son:
- Cursos en línea. No aquellos cursos que son "junio en 3 días", sino que enseñan una cosa específica. A menudo estos cursos son gratuitos. Ejemplos de sitios con cursos normales: stepik , coursera .
- Tutoriales en línea. Hay gratuitos, shareware, de pago. Dónde pagar y dónde no, lo resolverá usted mismo. Ejemplos: htmlacademy , learn.javascript.ru , django book .
- Libros. Hay muchos, muchos. Si no puede elegir, tres consejos: intente tomar libros nuevos, como la información se vuelve obsoleta muy rápidamente; El editor de O'Reilly tiene un nivel bastante alto de calidad y una presentación normal; si es posible, lea en inglés.
- Mitapy / conferencias / conferencias. No es tan útil en términos de saturación de información, pero es extremadamente útil en términos de la capacidad de comunicarse con colegas en la tienda, hacer preguntas actuales, hacer amigos. Tal vez incluso encontrar un trabajo.
- Google Muchos subestiman, pero la capacidad de simplemente encontrar respuestas a algunas preguntas es muy importante. Siéntase libre de googlear cosas extrañas. Incluso las personas mayores experimentadas están haciendo esto. La capacidad de encontrar rápidamente información sobre algo es prácticamente equivalente al hecho de que la conozca.
Bien, hemos decidido las fuentes de información. ¿Cómo trabajar con ellos?
- Leer / escuchar atentamente. No leas cansado. Profundiza en el significado, no te saltes momentos que parecen obvios. A menudo, la transición de lo obvio a lo incomprensible ocurre con bastante rapidez. Siéntase libre de regresar y volver a leer.
- Esquema de la información. En primer lugar, le resultará más fácil ordenar sus notas cuando haya mucha información. En segundo lugar, de esta manera la información se absorbe mejor.
- Realiza todas las tareas que te ofrece la fuente. No, no asi. Haz TODAS las tareas que te ofrece la fuente. Incluso los que parecen simples. Especialmente aquellos que parecen demasiado complicados. Si está atascado, solicite ayuda sobre stackoverflow , al menos a través de Google Translate. Las tareas se escriben por una razón, son necesarias para la correcta asimilación del material.
- Piensa en las tareas tú mismo y hazlas también. La práctica, idealmente, debería ser más que teoría. Cuanto más denso arregles el material, más probable es que en un mes no lo olvides.
- Opcional: mientras lees, redacta tu cuestionario. Escriba preguntas difíciles en una fuente separada y, después de una semana o un mes, lea e intente responder. No funciona: estudiar de nuevo.
Y repetimos estos 5 puntos para cada tecnología que se está estudiando. Solo de esta manera (con un estudio exhaustivo de la teoría y una cobertura de práctica densa) tendrá una base de conocimiento de alta calidad con la que puede convertirse en un profesional.
Y parece que todo es simple: aprendemos tecnología uno por uno, comprendemos el Zen y vamos a trabajar. Así es como es, pero no es así.
La mayoría de las personas que estudian programación hacen algo como esto:

la imagen es robada sinceramente desde aquí
Y aquí debe detenerse en cada uno de los pasos con más detalle:
Comienzo : tienes cero conocimiento. Punto de partida Hasta ahora, nada está claro, pero probablemente sea extremadamente interesante. El camino comienza cuesta arriba, pero ligero. Pronto subirás
Pico de tonterías : "¡Hurra, has completado el primer par de cursos! ¡Todo resulta!" En esta etapa, la euforia de los primeros éxitos eclipsa los ojos. El éxito parece estar cerca, a pesar de que todavía estás al comienzo del viaje. Y luchando por este éxito, es posible que no note cómo comienza una caída rápida en el pozo. Y el nombre de este pozo:
Valley of Despair : Así que estudiaste los platos principales, leíste algunos libros y decidiste comenzar a escribir algo propio. Y de repente no funciona . Todo parece ser conocido, pero no está claro cómo combinar esto para que funcione. "No sé nada " , "no tendré éxito" . En este punto, muchos se rinden. De hecho, realmente hay conocimiento, y no se han evaporado en ninguna parte. Requisitos claros, el soporte simplemente desapareció. La programación real ha comenzado. Cuando tienes que maniobrar en un espacio donde hay una meta, pero no hay etapas intermedias, muchos caen en un estupor. Pero en realidad esta es solo una etapa más de entrenamiento, incluso si durante las primeras diez veces todo resultará de alguna manera, con grandes esfuerzos, feo. Lo principal es completar el asunto una y otra vez, al menos de alguna manera . Por undécima vez, las cosas serán más fáciles. En el quincuagésimo, aparecerá una solución que le parecerá hermosa. En la centésima no dará miedo. Y luego ven
La pendiente de la Iluminación : en esta etapa, los límites de su conocimiento y su ignorancia están emergiendo claramente. La ignorancia ya no da miedo, la comprensión parece cómo superarla. Maniobrar en el espacio sin soluciones será más fácil. Esta es la línea de meta. Ya consciente de lo que te falta como especialista, terminarás y consolidarás lo necesario y con un alma tranquila entrarás
Meseta de Estabilidad : Felicitaciones. Este es el final. Usted es un especialista Puedes trabajar, no te perderás cuando te reúnas con una tecnología desconocida. Puede superar casi cualquier problema si hace un esfuerzo suficiente. Y a pesar del hecho de que esta es la línea de meta, este es solo el comienzo de un camino aún más grande.
Los caminos de un programador.
Buena suerte con eso!
Literatura para lectura opcional :
Sobre convertirse en programador y el efecto Dunning-Krueger: tyk .
Hardcore-way para convertirse en programador en 9 meses (no para todos): tyk .
Lista de proyectos que se pueden implementar de forma independiente durante la capacitación: tyk .
Solo un poco de motivación extra: tyk .