Programador 2020: Terminator en reposo

Un programador hoy no es el mismo que antes: el conocimiento de un lenguaje (o lenguajes) de programación no es suficiente para ser verdaderamente competitivo en el mercado laboral. Puede escribir todo lo que quiera en el código C ++, un puntero a un puntero a un puntero, pero ¿cuál es el punto si su empleador está llorando? programa, no algo que se comunique con el servidor)? Hace algún tiempo, esos gadgets, esos conceptos de gestión, que las tendencias de selección de personal gravitaban hacia lo mismo: modularidad, discreción, e incluso primitivización y especialización estrecha de empleados, software, herramientas. Pero la evolución ha dado un giro equivocado y ahora el mundo requiere dispositivos inteligentes que puedan hacer de todo, programas y aplicaciones multifuncionales (hola,Yandex Go) y, por supuesto, especialistas universales. El concepto de "hombre-orquesta" volvió a la tendencia, no teniendo tiempo de dejarla. 





Entonces, ¿qué necesita para la completa felicidad de programación de una combinación de conjuntos a fines de 2020?



▍Estructuras de datos y algoritmos



Ahora hay muchos programadores autodidactas con buenas habilidades de codificación en un lenguaje de programación específico. Se trata de técnicos, reeducados desde otros perfiles, “vhozhdens in IT”, aficionados a la autoeducación, etc. realmente entienden cómo escribir código, están bien versados ​​en funciones y sintaxis, conocen algunos trucos y son especialmente avanzados en OOP y patrones. Esto ya es mucho para ser competitivo en el mercado laboral. 



Pero en los primeros días de trabajo en un buen proyecto, comienzan los problemas y se hace evidente que las tareas educativas que te convirtieron en un codificador genial no tienen nada que ver con el código en producción. Para escribir un código bueno y profesional, es necesario comprender las estructuras de datos y los algoritmos, y ser capaz de diseñar software. He visto programadores muy inteligentes que no usaban matrices, árboles, listas enlazadas, ordenaciones, etc. Estos tipos tienen dos características distintivas: 1) son tercos y confían en su superioridad; 2) Pasan mucho tiempo escribiendo lo que ya existe como estructura: he visto tipos y árboles reinventados, da miedo y es extraño. Ya guardo silencio sobre los recursos.



Por lo tanto, un programador de cualquier nivel debe operar fácilmente con estructuras y algoritmos existentes. Por cierto, a los profesionales de RR.HH. y CIO les encanta utilizar estos temas en las entrevistas. Si vale la pena convertir una entrevista en un examen es un tema para un artículo separado, pero el hecho permanece.



▍Procesos empresariales



Todavía recuerdo los buenos tiempos en los que era posible crear el producto de tus sueños, y los especialistas de producto, los comercializadores, los vendedores lo convirtieron en un producto de ensueño de los clientes de la empresa. Ahora, por supuesto, es diferente: los tipos comerciales se han relajado y el cliente se ha vuelto exigente, y los competidores han aprendido a hacer cosas hermosas en lugar de los viejos ejes de rodillas. Ahora, cualquier programador y cualquier desarrollador debe comprender los procesos comerciales para los que crea software, debe tener un conocimiento mínimo del campo de actividad de la empresa. Y aquí no irán argumentos como "Un cirujano no tiene que ser operado diez veces", porque se trata de una falsificación de argumentación y sofisma: el cirujano, además del lugar de la incisión y de un órgano específico, comprende análisis, farmacología, reanimación, anatomía general, fisiología, etc. 



Y este es un gran problema: los desarrolladores crean un producto simplemente de acuerdo con las especificaciones técnicas, no para la conveniencia de clientes específicos. Por lo tanto, si es importante para usted ser eficaz y crear un producto valioso y vendible (en beneficio de su salario), créelo teniendo en cuenta las necesidades del cliente, sin tener en cuenta su visión de las necesidades. Pregunte al usuario los requisitos, recopile información sobre cómo se usa el producto, identifique módulos y funciones inconvenientes y convenientes; entonces resultará mejor y más fácil. 



Por cierto, un pequeño truco sobre cómo comprender los procesos comerciales para los que se está creando su aplicación. Reúnete con colegas de la parte de “venta”, de la oficina principal y realiza un seminario mutuo: te informan sobre procesos y clientes, sobre el perfil de uso y ventajas importantes, y les dices que el desarrollo no es una ola de palos y “me lavó una calculadora el cliente pidió mucho calcular los parámetros y el costo del proyecto de la central nuclear en media hora ".   



▍Matemáticas



Reina de los campos. Bueno, o ciencias, no la esencia. No importa cómo evitemos las matemáticas en el mundo de las TI, su importancia aumenta cada año. Ni el aprendizaje automático, ni las redes neuronales, ni la inteligencia artificial se pueden desarrollar sin conocimientos de matemáticas. Y si usted, un desarrollador de sitios web o desarrollador front-end, gruñó y fue a leer el siguiente párrafo, deténgase, esto se aplica a todos. Porque pronto los programas sin al menos algunos rudimentos de ML / AI / redes neuronales / BigData se quedarán rezagados. Por lo tanto, la solución es simple: antes de que sea demasiado tarde, estudie la parte necesaria de matemáticas.



Tengo un pequeño secreto sobre cómo empezar: compre cualquier enciclopedia avanzada para niños o un libro de divulgación científica sobre matemáticas y sumérjase en la atmósfera, repasar los términos básicos. Y luego irá e incluso se apretará. 



▍Conocimientos básicos en campos relacionados



Este punto puede indignar a cualquiera, pero sí, el programador y sus colegas estarán mejor si todos saben un poco más sobre el trabajo de un vecino en un espacio abierto, oficina, equipo. Si eres programador, es mejor que conozcas algunos conceptos básicos de UI / UX, frontend y backend, administración de sistemas, pruebas, etc. Esto permitirá construir un diálogo de trabajo productivo sin acusaciones ni sospechas mutuas. No es necesario profundizar en el tema: un libro de texto básico, conferencias en línea y un curso de Internet son suficientes. Si está realmente interesado en la carrera de un desarrollador, puede tomar algún programa de tiempo completo de desarrollo de software integrado; todo se dará allí en cantidades moderadas, sin embargo, la mayoría de las veces se paga. 



Es más probable que estos "soldados universales" con una amplia perspectiva de trabajo entren en las filas de los directores de proyecto y líderes de equipo. Si te interesa, crece en amplitud y un poco en profundidad en cuanto al estudio de disciplinas dependientes. 



▍Techno-trio, sin el cual no se permitirá el futuro



Puede parecer extraño, pero muchas veces los programadores solo conocen la existencia de estas tres tecnologías y pueden explicar de qué se trata en términos generales. Sin embargo, pronto estas tecnologías afectarán a todos de una forma u otra.



  1. . — , , ( ). . Amazon Web Service (AWS), Google Cloud Platform (GCP) Microsoft Azure . 
  2. . , , . ,   ,  . ( ).
  3. ( Docker Kubernetes) , , . , , , , . 


▍ -



Amo a los empleados tóxicos de la empresa. Si una persona de relaciones públicas o un gerente de proyecto corrige nerviosamente un cuadrado y dice que "Javist Sergey es tóxico" en la empresa, sé que lo más probable es que Javist Sergey oprima a sus colegas con su volumen de conocimiento, encuentre errores profesionalmente y los explique de manera aburrida con las mejores intenciones y debido a la irritación. otros se encerran en sí mismos y se comportan de manera grosera. Pero él es un profesional, y hay muchos de ellos. Pero, por desgracia, las personas son criaturas sociales con una psique finamente organizada y, por lo tanto, no pueden soportar a las personas sin empatía, un vector social y, perdón, inteligencia emocional. Por tanto, mientras el javista Sergey se congela y mantiene conversaciones inteligentes con el recolector de basura, el pitonista Savely ya es senior, y apunta a jefes de equipo, y ha asistido a tres conferencias, y lleva amistad con sus superiores, y vuela con un cliente a una exposición en Barcelona (ya entendiste,que los ejemplos son inventados y todas las coincidencias son aleatorias, porque nadie vuela a Barcelona en 2020). 



Ahora es el momento de las comunicaciones, que son menos frecuentes, más valiosas, así que escriba lo que necesita bombear:



  • habilidades de comunicación, objeción, cuestionamiento y discusión;
  • la capacidad de empatizar y, a través de la empatía, extraer la información necesaria;
  • la capacidad de expresar pensamientos de manera competente e inteligible;
  • habilidades de comunicación informal sin familiaridad y transición personal;
  • la capacidad de defender su punto de vista. 


Tengo buenas noticias para ti: la mayoría de las habilidades blandas se instalan en una persona de forma predeterminada, solo necesitas extraer estas habilidades de manera competente. No vayas a coaches y coaches, 2-3 libros básicos sobre psicología organizacional, manejo de conflictos y psicología social te convertirán en un conversador reflexivo. 



En general, nuestra vida se está desarrollando de una manera interesante: ahora recuerdo cuán revolucionario fue Google Glass, cuán claramente entró Pokemon Go, cómo varios sistemas de gestión de proyectos despegaron y colapsaron de inmediato. Fueron oleadas de demanda exagerada, demanda de tendencias. Por lo tanto, las habilidades enumeradas de un programador en 2020 parecen ser tan "atractivas": son a largo plazo, y no para un par de temporadas. Es decir, puedes vivir con ellos hasta aproximadamente el 2030 sin mucho estrés. Y el resto del mundo descansa sobre estos elefantes. Bueno, lenguajes de programación, por supuesto, la tortuga debajo de los elefantes, la base de lo básico.  



Para que estamos ¡Feliz día del programador, amigos! Cambia su vida para mejor con el código, convierte los requisitos en aplicaciones de trabajo, lee la especificación técnica entre líneas y sabe lo que piensa el cliente o el líder del equipo. Ama tu trabajo, crece en él y en ti mismo, y no dejes que un solo ";" se pierda. Toda la palabra hola y menos errores.



All Articles