
Trabajar en TI es genial, pero el camino hacia la industria puede no ser exactamente lo que los padres o los maestros en la escuela describen. En los intercambios de trabajo están buscando desarrolladores móviles, desarrolladores, back-end y front-end, pero ¿dónde están estas profesiones en las listas de especialidades de las universidades clásicas?
Estamos lanzando una serie de artículos en los que describiremos en detalle sobre cada profesión a través de la experiencia de las personas. El primer número trata sobre los desarrolladores de Python. Artem Sukharenko y Danila Lobanov contaron sus historias. Entraron en la profesión recientemente, pero lograron ganar experiencia en otras áreas. Y el experto fue Alexei Petrenko, decano
del departamento de Python en Geekbrains .
Hablamos sobre lo que necesita saber antes del entrenamiento, qué es el lenguaje bueno y malo, qué es difícil de aprender y en qué enfocarse; qué profesiones y dinero prometen conocimiento del idioma, cómo prepararse para las primeras entrevistas y mucho más.
¿Por qué aprender Python?
Artem Sukharenko estudió en el Departamento de Automatización e Informática de
SibGIU . Su especialidad era la ingeniería, pero no estaba relacionada con la programación. Después de graduarse, Artyom consiguió un trabajo en la planta ZSMK, una de las plantas metalúrgicas más grandes de Rusia.
"Me sorprendió lo terrible que es todo", dice, "un motor eléctrico soviético en mal estado, sin modernización, realmente no se necesitan especialistas". Durante mucho tiempo en la planta, no se detuvo, sino que continuó trabajando con el electricista. Creció para ser un ingeniero líder en Sibirtelecom, luego se mudó de Siberia a Moscú y consiguió un trabajo en un centro de datos comercial, donde era responsable de la infraestructura.

La programación a veces está implícita. Artem trató de trabajar con microcontroladores, para hacer algo más complicado, pero siempre se basó en las fallas de los empleadores y los clientes: no lo necesitaban. Había suficientes cosas elementales que, como dice Artyom, solo están interesadas en hacer los primeros 15 minutos, y no se necesitan habilidades especiales para esto.
"Tal vez no fui allí, pero no encontré desarrollo para mí. Cinco años de universidad, solo para torcer los cables. Fue muy decepcionante ".
Una vez, un colega le dio a Artyom la idea de estudiar programación no para electricistas, sino para convertirse en desarrollador. Comenzó a leer libros, probar diferentes tareas, pero no se atrevió a cambiar de profesión. “Mi deseo se ha estado gestando durante mucho tiempo. Al principio, no se les permitía cambiar la profesión de la hipoteca, los problemas financieros, el miedo personal ".
A los 36 años, Artyom asistió a cursos para desarrolladores de Python.
El desarrollo web se ha convertido en un klondike para muchas personas interesadas en profesiones técnicas. Y Python es uno de los lenguajes de programación más populares para ingresar a la profesión. Atrae con su simplicidad y versatilidad.
“Conociendo Python puedes hacer muchas cosas, desde simples scripts hasta análisis de datos y construcción de redes neuronales. Pero específicamente, el desarrollo en Python es un back-end para servidores web, el desarrollo de la parte oculta de Internet es algo que los usuarios comunes no ven. Servidor, su lógica, interacción con bases de datos ”, dice Alexei Petrenko, decano del departamento de Python en Geekbrains.
“Creo que esta es una buena opción como primer idioma. Tiene una sintaxis simple. Perdona los pequeños errores del desarrollador. Python tiene un umbral de entrada bajo, es muy fácil aprender los conceptos básicos de programación en él. Tiene una audiencia muy grande y una biblioteca extensa, además de muchas bibliotecas externas hechas por desarrolladores de todo el mundo. Debido a esto, se convierte en un lenguaje adecuado para cualquier cosa ".
“Aunque Python está siendo promovido como un lenguaje para todo, de hecho tiene solo dos áreas de aplicación: todo tipo de ciencia de datos, aprendizaje automático y otras matemáticas, y desarrollo web. En esto, me decepcionó un poco ", dice Danila Lobanov, un ex administrador de sistemas que recientemente se convirtió en desarrollador de Python.

“Me gustó Python porque puede hacer cualquier trabajo. Él tiene una biblioteca para aplicaciones móviles, para escritorio, en ella puedes escribir scripts de automatización para servidores, puedes usar aplicaciones web. Pero, de hecho, solo los desarrolladores web deben trabajar sin matemáticas profundas. Nadie escribe aplicaciones de escritorio en él, y mucho menos las móviles. Hay otros idiomas para esto que fueron creados específicamente para sus tareas ".
Danila se familiarizó estrechamente con la computadora relativamente tarde, a unos 18 años de edad. Rechazó la educación superior y casi de inmediato se puso a trabajar como administrador del sistema. Comenzó con las tareas más elementales, luego continuó con el estudio de Linux y la programación.
"Traté de aprender C, PHP, Java y otros lenguajes, pero no se detuvo. Empecé y dejé. No pude escribir ni los guiones más simples. Cuando fui a los cursos de C, pude leer el código, pero no pude escribirlo. Me dieron una tarea, la miré y no tenía idea de cómo hacerlo. La maestra se sentó cerca, escribió línea por línea, explicó y entendí que esto era exactamente lo que tenía que hacer. Pero me dieron una tarea similar y volví a estar en estado de estupor ".
Después de intentos fallidos, Danila abandonó la programación durante mucho tiempo. Alrededor de diez años trabajó como administrador del sistema. Y cuando sintió que la administración ya no brinda alegría, decidió darle al desarrollo una oportunidad más.
"Es mejor que un recién llegado entienda primero la sintaxis", cree Alexei Petrenko, "solo entonces debe pensar hacia dónde quiere llegar más lejos". Cuanto más estudies, más te alejarás de la sintaxis a las bibliotecas, los patrones de diseño, los patrones individuales ".
Danila eligió Python porque el lenguaje se consideraba fácil. "La sintaxis realmente resultó ser simple", dice, "cómo escribir texto en inglés". Al principio, lo estudié yo mismo en materiales de video en YouTube, en artículos, problemas resueltos en pythontutor.ru. Pero luego me di cuenta de que los recursos en Internet son solo lo básico y lo básico. Son accesibles para todos y en todas partes, y no ayudarán a aprender a programar a fondo. Me di cuenta de que debemos buscar cursos que den lo mismo, solo de manera sistemática, y luego me llevarán más allá ".
Lo que necesitas saber antes de comenzar a entrenar
Antes de sumergirse seriamente en el estudio del idioma, Alexei Petrenko recomienda averiguar de antemano si le gusta programar. “Te aconsejaría que intentes escribir varios programas, que tomes lecciones gratis. Antes de comenzar el entrenamiento, es mejor comprender qué es una variable y cómo agregar dos variables.
Para que los cursos no se vuelvan inútiles, solo una cosa ayudará: la práctica. Si solo miras y escuchas, no saldrá nada de eso. Para un novato, incluso es práctica reescribir el código que el profesor muestra en la pantalla. Reescribe y piensa en cómo funciona.
El mínimo requerido para las clases es de cuatro horas a la semana. Dos días a la semana durante dos horas. Pero recomendaría pasar una hora al día escribiendo su propio código. Lo principal es no sumergirse en la programación con la cabeza para que no haya disturbios de magia. Cuando aprendes todo en una fila durante tres días, obtienes gachas en la cabeza.
Comenzar puede ser fácil, pero las dificultades te esperan por delante
Artyom continuó trabajando como electricista por la tarde, y por las noches comenzó a estudiar cursos, a pesar de su cansancio. “Como todas las personas ingenuas, tenía la expectativa de la magia de los cursos. No vine completamente a cero. Había varios libros e incluso sitios web simples en el equipaje, incluso en PHP (pecaminoso, lo admito). Estaba esperando que los cerebros me capacitaran en los cursos, y me convertiré en un mago. Las realidades resultaron ser diferentes: hay personas que solo saben un poco más ”.

A Artyom le gustaron los cursos, pero no todo salió bien. El programa en ese momento era nuevo, un poco confuso y caótico según sus impresiones. Los estudiantes hablaron sobre temas controvertidos, dieron retroalimentación y las fallas se corrigieron sobre la marcha. Uno de los maestros era tan débil que le pidieron que lo retiraran. Pero el resto, como recuerda Artem, fue muy fuerte.
Danila, sin embargo, todo fue aún más difícil. Después de varios cursos introductorios, dejó de seguir el programa y dejó su transmisión varias veces para repetir el programa en el siguiente.
“Todos reconocieron, incluidos Geekbrains, que los niveles 2 y 3 en el programa Python fueron algunos de los cursos más difíciles en la universidad. Mucha información en muy poco tiempo, tarea muy grande. Muchos absorbieron solo una parte del material. Yo personalmente fui transferido dos veces a la siguiente transmisión. Pedimos que el programa fuera más fácil, se nos preguntó cómo y sugerí dividir dos cursos en tres. Algo de esto se tuvo en cuenta y ahora se está implementando ”.
A diferencia de los primeros intentos de aprender C, cuando nada salió de eso, Danila siguió adelante. Las cosas que no entendió se convirtieron en cosas que no entendió, cómo no se podían entender. Pero esta línea no puede superarse simplemente abarrotando los libros de texto. Como dice Danila, las habilidades de programación y lenguaje son dos cosas completamente diferentes.
“La programación de enseñanza también es muy difícil. A todos les parece que, dado que una persona puede escribir programas, eso significa que puede enseñar. Esto no es asi. Cuando el pensamiento se reconstruye, y sabes muchas cosas, no puedes recordar lo que es no entender ".
Alex advierte que Python es fácil solo al principio. Y después de una base fácil, tendrá que hacer un esfuerzo para dominar aspectos más serios: bibliotecas y marcos. “Si comparamos el lenguaje de programación con un depósito, entonces, por ejemplo, el lenguaje C es el océano. Se zambulle desde un acantilado hasta una gran profundidad y nada o se hunde. El lenguaje Python es una playa de arena limpia, donde puedes llegar lejos, nadar tranquilamente y, si entiendes que quieres seguir adelante, hay un enorme hueco detrás de la hermosa playa, comparable en profundidad a C y Java ".
"La programación asincrónica en Python es un truco mental", recuerda Artem. “Lo revisamos de manera superficial, y luego, incluso en las entrevistas, cuando me preguntaron, sentí que estaba nadando.
Los patrones de diseño también son imposibles de tomar abruptamente. Ya leí los extractos tres veces, especialmente leí el libro, y todavía no me siento seguro hasta el final. Durante un mes, que dura un curso sobre ellos, generalmente no es realista dominarlo ”.
Danila recuerda que el módulo de selección es el más difícil: “Los tres hilos recuerdan mi dolor con los selectos. Existe un módulo así, y él directamente no me dio mucho a la vez. Ahora es simple para mí, ahora no entiendo cómo no puedes entenderlo ".

"La configuración básica de Python contiene alrededor de 70 funciones y docenas de palabras reservadas, pero incluso un programador genial no necesariamente las usa todas. Es decir, para aprender cien palabras y comprender lo que hacen, puede pasar de una a tres semanas si lo desea y trabajar activamente ", dice Alexey.
“Los programadores novatos escriben programas que también funcionan. Pero escriben el código una vez, lo leen diez veces. Cuando, después de un tiempo, otra persona intenta leer el programa, surgen dificultades.
Para poder trabajar en un equipo en el futuro y mostrar el código a otra persona, debe conocer los estándares de estilo generalmente aceptados. En Python, se llaman Peps. Yo recomendaría leer Pep8 en paralelo con la sintaxis de aprendizaje. Este es un acuerdo de programadores que escriben en Python. Recomienda cómo escribir correctamente y qué tan mal.
Hace unos años, se produjo una división en Python. Hubo Python 2.7, y luego salió la versión 3. La segunda versión todavía se usa, pero solo en las empresas más antiguas para mantener el código heredado. Si consigue un trabajo en una empresa de este tipo, tendrá que aprender Python 2, pero recomendaría aprender la tercera versión. Todos los proyectos modernos y las bibliotecas de terceros están escritos para ello ".
Cómo pasar la primera entrevista
Artem y Danila completaron los cursos de maneras muy diferentes. Después de varios intentos, Danila decidió no terminar sus estudios, porque no encontró entendimiento mutuo con el profesor de los últimos cursos, pero encontró un trabajo. Artyom, junto con otros estudiantes, ya durante la capacitación, planteó un proyecto de capacitación en una startup, que comenzó a generar dinero real.
“El proyecto se llamó GoLiving. Esto es algo así como AirBnb, solo que la idea es esta: en Estados Unidos hay personas que a menudo van a trabajar a diferentes ciudades por un período corto. Y pueden intercambiar viviendas con un seguro garantizado entre ellos para asegurarse de que no volverá al departamento destruido. Ahora no sé hasta dónde ha llegado este recurso; la financiación parece haber sido suspendida. Pero luego incluso tuvimos inversores ”.

Danila, durante el entrenamiento en los cursos, permaneció sin trabajo durante seis meses. Renunció específicamente para estudiar, pero debido a las frecuentes transferencias, los estudios tomaron más tiempo y el dinero reservado para este momento estaba llegando a su fin. Después de abandonar los cursos, Danila ni siquiera tuvo tiempo de comenzar a aprender Django, el marco de desarrollo web más popular.
“En la víspera de Año Nuevo, escribí a una compañía que estaba justo al lado de mi casa. Fui a su sitio, vi un trabajo como desarrollador de backend y les escribí una carta. Digo que me gustaría trabajar contigo, aunque estudié, pero sé un poco. Estoy muy interesado y me desarrollaré. Y me llamaron para una entrevista.
"Mi experiencia en Geekbrains muestra que algunos estudiantes encuentran trabajo antes de terminar su curso de un año", dice Alexey. “El empleador quiere ver una capacidad básica para trabajar con la sintaxis en el desarrollador del servidor, el conocimiento de cómo funcionan los sitios, cómo funciona el backend, el mismo Django ganando popularidad. También agregaría aquí el trabajo en equipo y el conocimiento de las bases de datos, porque cualquier backend de cualquier sitio está inextricablemente vinculado al almacenamiento de información.

Alrededor de 200 vacantes de desarrolladores de Python se abren en My Circle cada mes, puede ver las últimas novedades y suscribirse al boletín sobre nuevas vacantes.
Durante la entrevista, lo principal es no guardar silencio. Si se le asigna una tarea que no puede responderse de inmediato, entonces solo necesita razonar en voz alta, mostrar cómo piensa y qué es capaz de avanzar hacia una solución.
Y lo principal es no desesperarse si la primera entrevista no tuvo éxito. Al ir a dos o tres entrevistas, notará que las preguntas comienzan a repetirse. Y luego elegirás dónde conseguirlo tú mismo, porque un día irás a todas partes desde tres entrevistas ".
Danila, en la entrevista, estaba muy sorprendida por el hecho de que no se le hizo una sola pregunta técnica: "No dieron ninguna tarea, solo hablaron sobre cómo estudié, lo que me interesa". Como resultado, ofrecieron un trabajo, y acepté ”.
Alexei cree que vale la pena tener más cuidado con tales empresas. “Además de las preguntas generales, debe haber tareas para escribir código. Incluso si en papel con un lápiz, esto es normal. Pero si llegaste a una entrevista con un programador y no recibiste una sola pregunta acerca de la programación, o fuiste entrevistado por una persona incompetente, o estarás haciendo algo no programático. Los programadores deben ser verificados para la programación ".
"Creo que no preguntar cosas técnicas es el enfoque correcto", dice Danila. “Grigory Petrov, quien es muy famoso en la comunidad de Python, también dice que las habilidades de programación (habilidades difíciles) siempre se pueden mejorar. Lo principal es ponerse de acuerdo sobre la perspectiva de la vida para sentirse cómodos trabajando juntos. Estoy de acuerdo con el
Por supuesto, las habilidades de programación son importantes. Pero ahora trabajo con cosas que no se enseñan en los cursos. Ya me mostraron en el trabajo, y luego lo descubro yo mismo, leo la documentación, los artículos, veo ejemplos. Estoy más preocupado por las empresas que ofrecen elementos de prueba "normales". Miras y piensas: ¿es realmente una prueba o soy un profesional independiente ahora?
"La entrevista por la que pasé me derritió el cerebro así", recuerda Artem. "Cuando salí, el estado era como si estuviera en piloto automático: mis pensamientos seguían zumbando mucho".
Fue así: había dos eychars y dos técnicos. Un pitonista y full-stack que estaba involucrado en la web, donde también lo intenté. El segundo, a juzgar por los problemas, es un cerebro perfecto. Tenía un matan tan fuerte que simplemente ¡hoo!
Primero vinieron las preguntas cotidianas, todas estas "cómo te ves a ti mismo, cómo te sientes". Luego tomó una pila completa, me persiguió a través de Python, según Django. Dibujó ejemplos directamente en papel y les preguntó. No es complicado, pero con sub-marcas.
Y entonces el tío-cerebro se apoderó de mí. Se metió más profundamente en el matan, preguntó sobre algoritmos y, dado que la compañía trabaja con seguridad y cifrado, también me ayudó a superarlo. Pero en esto no soy nada fuerte, por lo tanto, respondí como un niño de cinco años. En general, llovió en el cifrado, se aferró a los algoritmos, pero no por mucho.
Honestamente, ni siquiera esperaba que me volvieran a llamar. Sin embargo, recibió una oferta. En unos días habrá un primer día hábil ".
Con qué dinero vale la pena contar
Las personas acuden a TI no solo a la llamada del alma. Esta es una industria con algunos de los salarios de más rápido crecimiento en Rusia. Y a veces parece que los salarios de los programadores en comparación con las profesiones promedio difieren de los salarios en Moscú y en las regiones. Sin embargo, ni Artem ni Danila entraron en esta profesión por la riqueza. Además, aún no lo han encontrado.
“Incluso en Moscú en las posiciones iniciales, a los programadores se les ofrecen 40-50 mil, tal vez incluso menos. En las regiones de 20 mil para el junior tampoco es infrecuente. Este no es un trabajo tan bien pagado, como todos afirman. Sí, cuando alcanza el nivel superior, los salarios pueden superar los 200-300 mil. ¿Pero dónde no hay tales salarios? Recientemente, una compañía de taxis mostró los ingresos de los taxistas que más ganaron. Hay 230, 240 mil.

La tabla de salarios de los desarrolladores de python por calificaciones muestra que la mediana para junio es de casi 60,000 rublos , mientras que el medio recibe un promedio de poco más de 100,000 rublos . Pero la diferencia entre las medianas para la tercera edad y el líder es bastante pequeña: 151,000 rublos y 167,000 rublos, respectivamente.
Al trazar el gráfico, se utilizaron los datos de la calculadora de salarios "Mi círculo".
Quizás en la programación es más fácil alcanzar un nivel superior al promedio que en muchas otras áreas. Pero para mí no fue para nada lo principal. Estaba interesado en crear programas ".
"Los salarios dependen de la región", dice Aleksey, "Alguien se conformará con 40 mil como principiante, alguien puede inmediatamente 100 mil. Mirando cómo probarse a uno mismo. Si demuestra que puede escribir no solo el código, sino también comprender la arquitectura, puede esbozar todo el esquema del proyecto, todos los módulos, servicios, conexiones entre ellos ".
Artem, en general, entró en desarrollo por un salario más bajo que el que tenía como ingeniero. “En el electricista, tenía el puesto de ingeniero jefe, y el salario era muy bueno. Me fui porque quiero desarrollo. Y en programación, puedes desarrollar indefinidamente ".
A pesar de que en la programación de una de las gradaciones más claras y comprensibles en términos de habilidad (junior, middle, senior), sigue siendo relativa y alimenta constantemente el debate al difuminar sus criterios. Disputas en el espíritu de "usted está en la empresa X Signor, pero no aceptará la empresa Y y junior" o "hasta diez años que trabajé, no Signor".
“Puedes bombear al nivel medio durante el año de estudio. Por ejemplo, Geekbrains tiene cursos obligatorios y cursos opcionales. Todos deben completarse por completo para ser honestos: me he subido al nivel medio. Es decir, resulta un año del programa principal y otros seis meses de cursos paralelos ", cree Aleksey," Y Signor es una persona que tiene una rica experiencia. Esta es una persona que entiende diferentes marcos, es capaz de escalar tareas, entender qué recursos requieren. Un hombre que no inventa bicicletas. Quien, desde mi propia experiencia, entendió todos los aspectos y matices del trabajo.
Si una persona después de tres años de trabajo se llama a sí misma firmante, ¿por qué no? Todo depende de la empresa, las aspiraciones y las habilidades. Si una persona es talentosa y decidida, entonces lo creeré.
Una entrevista completa con el Decano del Departamento de Python en GeekBrains: cómo y por qué los principiantes aprenden el idioma