Comenzó una conversación con colegas sobre la mejora personal constante de un programador en su tiempo personal. Necesitas correr todo el tiempo solo para mantenerte en su lugar. Yo mismo amo este negocio y, a pesar de la presencia de tres niños, logro tocar nuevos conceptos. Pero muchas personas simplemente están cansadas de correr y pueden entenderse.
Tomemos, por ejemplo, el mundo de la interfaz. Con conocimiento de JavaScript hace cinco años, ahora no puede encontrar un buen trabajo. Ahora RequireJS + Grunt no funcionará, necesita saber React, Webpack, ES moderno o TypeScript, etc. Y el año que viene mucho volverá a quedar obsoleto.
Al mismo tiempo, no siempre es posible obtener nuevos conocimientos en el trabajo, porque a menudo hay toneladas de legado (si algún producto se corta durante mucho tiempo, esto es inevitable) que nadie copiará "de moda".
Que hacer ¿Los proyectos de mascotas en la noche? ¿O tratar de cambiar la dirección del desarrollo a una más estable en el tiempo?
Especialmente a menudo esta pregunta surge entre los programadores con niños. ¿Cómo mantenerse relevante en el mercado a largo plazo sin gastar todo su tiempo personal en él?
Ir al manual
Ventajas:
- A veces es suficiente conocer la tecnología en la cima (depende del tipo de liderazgo, liderazgo del equipo, liderazgo tecnológico, CTO, etc., responsabilidades completamente diferentes)
- Puedes elegir la pila tecnológica tú mismo.
Desventajas
- Quizás sea posible no conocer los detalles de las tecnologías solo para la administración de nivel superior. Un líder de equipo simple debe saberlo todo, no puede llegar a ningún lado. El líder tecnológico debería saberlo mejor.
- Este trabajo no es para muchos. Administrar personas es una profesión completamente separada que no tiene nada que ver con la programación. Muchos aspiran allí, pero apenas lo han intentado, felizmente regresan al código.
Si una de las cualidades recomendadas de un programador simple es la superconcentración en una tarea difícil, entonces aquí es al revés: a menudo hace malabares con las tareas sin profundizar realmente en la implementación (simplemente no hay tiempo para esto). - Incluso si selecciona la pila usted mismo, no realizará cambios radicales en el proyecto (reescribir de PHP a Rust), porque aún no habrá recursos para esto. Cuando eres responsable de todos los "aspectos técnicos", lo entiendes más que nunca.
Ir a empresas superestable o reguladas
Dicen que hasta ahora en algún lugar de los bancos y la industria petrolera están aserrando en Java 7 y no conocen el dolor. Y tal trabajo allí por otros 100 años.
Las desventajas también son obvias: aburrimiento, burocracia. Bueno, si de repente una empresa estable muere repentinamente, y esto también sucede, entonces será difícil en el mercado laboral con Java 7.
Lenguas medio muertas
Hay leyendas sobre los programadores de COBOL y sus salarios inhumanos. Creo bastante: aunque la demanda es pequeña, no hay oferta en absoluto. Nadie irá a aprender cobol.
Desventajas: los idiomas antiguos son terribles, y las herramientas para ellos son terribles. Las perspectivas no son claras, es muy posible que el lenguaje muera hasta el final.
Desarrollar el núcleo de una base de datos o Linux
Hay tales productos para todos los tiempos, donde la gente vio algo allí en C hace veinte años, y aserró.
De las deficiencias, cabe destacar que escribir de forma segura en C no es fácil, y no a todos les gusta la gestión manual de la memoria. Quizás algún día Rust ocupará este nicho, aunque ciertamente no en la próxima década.
No hay tantas vacantes en C puro, y generalmente significa la presencia de una gran cantidad de otros conocimientos además del lenguaje.
Cambiar la mentalidad del empleador
Esto es de una serie de sueños, pero aún así.
Si una persona conoce tres idiomas y dos bases, ¿cuánto tiempo necesita para comenzar a escribir en el cuarto? Muy pocos. Sin embargo, en las vacantes, escriben algo así como un mantra: "experiencia en java a partir de tres años". Sugiero a los empleadores que escriban esto: "experiencia en Java desde tres años o la finalización de una tarea de prueba". Deberías ir, no damas.
Le arrojaré un poco al fan: un php-shnik con diez años de experiencia que conoce bien la POO y, por ejemplo, escribió mecanografiado, puede cambiar fácilmente a Java. Allí, incluso las palabras clave son las mismas: clase, interfaz, extensiones, implementos, etc. Los principios de SOLID son exactamente los mismos.
Y tal vez en 2-3 meses no escriba peor que un javista laboral de 3 años. Como ya sabe cómo escribir consultas SQL complejas, conoce el estándar HTTP, sabe cómo diseñar y JavaScript, y más. Por supuesto, hay 100,500 matices, subprocesos múltiples, etc., pero si te acostumbras a resolver problemas en 10 años, lidiarás con cualquier cosa, solo déjame hojear el manual.
Al principio, alguien debería vencer a las manos, pero esto aún no es comparable con un principiante completo en la profesión.
Cambio de actividad
Hay muchas actividades diferentes relacionadas con el desarrollo: consultoría, defensor de desarrolladores y otras cosas similares. Si se suspende el idioma, ¿por qué no?
Puede comenzar su propio negocio y hacer cualquier cosa. La verdad y el riesgo máximo: 9 de cada 10 iniciativas de este tipo suelen agotarse. Bueno, el autodesarrollo suele ser también una prioridad aquí)
Cambio constante de trabajo
Si cambia de trabajo una vez al año o dos, definitivamente tendrá demanda en el mercado. Estudié React en un trabajo, Postgres en otro, etc. Sin embargo, también hay muchas deficiencias. Una carrera es más difícil de construir; todo el tiempo necesitas trabajar con un nuevo equipo y jefes; tendrá que explicar en las entrevistas por qué eres tan "volador"
Forma de compromiso
Si no podemos resolver el problema, entonces podemos debilitarlo. Por ejemplo, para modernizar al menos una parte del código del producto, etc., porque a veces puede encontrar cambios que son beneficiosos para el negocio. Bueno, también en las pequeñas cosas: pasar de Grunt + RequireJS a Webpack + ES Imports es cuestión de un día, y luego puedes usar JavaScript moderno de forma segura.
Gestión del tiempo
Si aprender cosas nuevas es interesante, pero no hay tiempo, a menudo se te ocurre algo. Por ejemplo, trato de ir a San Petersburgo en tren (vivo cerca de Pavlovsk). Esto es aproximadamente 40 minutos de tiempo allí y tanto de regreso. Es muy posible hacer un par de "tomates" sobre un tema interesante. Bueno, o simplemente lee un libro. Ahora, por ejemplo, estoy escribiendo este artículo)
Si viajo en automóvil, trato de escuchar podcasts temáticos para ampliar mis horizontes.
En lugar de salida
Este artículo no es un intento de enseñar a vivir al estilo de los artículos estúpidos a la "7 maneras de hacerse rico sin hacer nada". Por el contrario, me encantaría aprender algo útil de los comentarios. Tan bienvenido!