Competencias de un programador moderno desde un ángulo diferente

Hola, me llamo Pasha! Trabajo en Mad Devs, y creo que solo programar no es suficiente para ser un buen especialista.


Espero que este material no hiera los sentimientos de alguien. Este material es un intento de revelar el sistema de habilidades del programador moderno desde un ángulo diferente. No mas


Un programador es un enlace esencial en la cadena de software. Sin él, no se puede crear un nuevo software. ¿Qué es tan importante que hace un programador? Qué responsabilidad recae en él, ya que es tan insustituible.


Quiero llamar su atención de inmediato sobre el hecho de que la responsabilidad de un programador depende de la línea de tiempo histórica. Volveremos hace unos 20 años.


imagen


Este meme tiene poco que ver con la imagen de un desarrollador moderno. Sin embargo, analicemos de qué es responsable este fantástico especialista. Lo más probable es que esté desarrollando un sistema que es inestable en funcionamiento. Los usuarios de este software son los llamados usuarios avanzados de computadoras personales en ese momento. En ese momento, solo los usuarios avanzados podían usar el software más allá de un editor de texto.


¿Cuál es la responsabilidad de tal especialista? Debería simplemente escribir código en un lenguaje de programación. Este especialista se enorgullece de llamarse a sí mismo C ++: un programador (sustituya otro lenguaje de programación, popular en ese momento). Su liderazgo, por regla general, no comprende completamente lo que está haciendo. En este sentido, tiene la oportunidad de crear la imagen de su actividad, que él mismo deseará. Esta imagen puede ser negativa, los programadores no pagaron mucho, por eso estaban enojados. Puede ser positivo, puede resolver problemas desde su liderazgo y crear magia útil. Algunos de mis colegas todavía creen que mantener la imagen de un especialista negativo es la norma. En sus empresas, los gerentes aún no entienden lo que están haciendo, y estos especialistas son absolutamente negativos sobre todo el mundo que los rodea. Pero no hay muchos, agrada. De todos modos, me parece que las compañías de TI son aquellas compañías donde los gerentes entienden lo que está sucediendo en la industria moderna. Este es un criterio suficiente para ser una empresa de TI, como para mí.


En este sentido, la pregunta: ¿cuál es la responsabilidad de un programador moderno? Esta pregunta puede responderse durante mucho tiempo, pero intentaré abrirla más rápidamente e inmediatamente descartar aquellas cosas que son importantes, pero que pueden estirar este material hasta el infinito. Y comenzaremos a revelarlo con las competencias que puede poseer un programador moderno.


Las competencias de los especialistas modernos en cualquier industria se dividen en tres amplias categorías:


  • Habilidades duras;
  • Habilidades blandas;
  • Habilidades digitales.

La lógica sugiere que en cada especialista todos los tipos de habilidades deben desarrollarse igualmente. Se complementan mutuamente.


No divulgaré estos términos, porque en ruso ni siquiera tienen un nombre permanente. Muchos profesionales de la educación se refieren a estas habilidades de manera diferente, lo que a veces confunde a la audiencia. Traeré a su atención una tabla de correspondencia de estos nombres.


Clave primariaEl nombre que usaréOtros sinónimosEn el rubleshMata por eso
Habilidades durasHabilidades profesionalesHabilidades profundas, habilidades durasHabilidades duras, Habilidades durasHabilidades duras
Habilidades blandasHabilidades profesionalesHabilidades blandas, habilidades generalesSoft Skills, Soft SkillsHabilidades blandas
Habilidades digitalesHabilidades digitalesHabilidades Digitales, Habilidades DigitalesHabilidades digitales

Si los nombres del problema, con la definición y aún más. Solo daré los conceptos necesarios para la discusión de hoy.


Para ser breve Cada especialista necesita exactamente una habilidad profesional : un programador - para programar, un constructor - para construir, un cirujano - para cirugía (broma inapropiada), y así sucesivamente. Esta habilidad incluye la cantidad infinita de conocimiento que posee un especialista. En el caso de un programador, esto incluye comprender la gran base que todos deberían saber, comprender los principios de su lenguaje de programación, etc.


Las habilidades digitales son una historia diferente para la mayoría de las profesiones. Porque TI penetra en todas las industrias hoy. Es difícil encontrar una industria que no esté digitalizada hoy: en otro momento, diría que es una religión, ¡pero no! Por lo tanto, para los especialistas en la mayoría de las profesiones, las habilidades digitales son un artículo separado para trabajar. Para los programadores, las habilidades digitales y las habilidades profesionales, por razones obvias, se superponen. Aunque soy todo programador, creo que debería ser un usuario avanzado de software. Quiero decir, usa diferentes servicios para organizar tu vida, trata de hacer un hogar inteligente, usa aplicaciones modernas para la vida, etc. Desarrolla más habilidades digitales. Después de todo, para ser un buen proveedor, es bueno ser un buen consumidor.


Habilidades demasiado profesionales : esto es en lo que nos detendremos con más detalle. En comparación con las habilidades profesionales, cada especialista necesita varias, y preferiblemente muchas, habilidades supraprofesionales. Ejemplos de habilidades profesionales: gestión del tiempo, búsqueda de recursos, uso de recursos, habilidades de negociación, habilidades de comunicación, gestión de personas, hablar en público, etc.


¿Por qué necesito estas habilidades? Escribo en React! - Sonará de la audiencia.


Aquí es donde comienza la diferencia de responsabilidad entre los programadores hace 20 años y los programadores de hoy. Hoy somos proveedores del futuro; sin nosotros, el desarrollo de software es imposible. Los colegas de nuestra empresa (gerentes, propietarios de productos, ventas, partes interesadas, comercializadores y otros) necesitan nuestra ayuda. Nuestras competencias (es decir, habilidades profesionales) y cómo podemos aplicarlas a veces juegan un papel decisivo en el desarrollo de un producto. Por qué Describí en un artículo sobre pilas reales reales en Habré. Describe dónde necesita aplicar sus habilidades profesionales más de lo que la mayoría de nosotros estamos acostumbrados. De hecho, las habilidades sobre las que escribo ahora se suman a la excelente calidad que hemos desarrollado en Mad Devs: afinidad con el cliente (proximidad al cliente).


Como escribí anteriormente, todos los tipos de habilidades deben desarrollarse igualmente en cada especialista. Y para aplicar cualitativamente sus habilidades profesionales en situaciones que describí en el artículo en el enlace anterior, también debe tener habilidades súper profesionales bien desarrolladas.
¿Cuál específicamente? Enumeraré las 6 habilidades profesionales más importantes que, según lo veo, cualquier especialista moderno debería tener:


  • Gestión del tiempo . Aquí pienso, obviamente. La habilidad de la gestión del tiempo solo se relaciona indirectamente con la evaluación de las tareas. La evaluación de tareas es una habilidad profesional. La gestión del tiempo para un programador es una distribución lógica del tiempo para codificar, leer artículos, autoeducación y manifestaciones.
  • Capacidad para trabajar en equipo . Casi nadie hace proyectos solo. La capacidad de trabajar en equipo es una habilidad absolutamente indispensable.
  • La capacidad de enseñar . Y para ser precisos, la capacidad de introducir en el contexto, una habilidad comparable a la capacidad de enseñar. La tarea de la persona que enseña es esencialmente una introducción al contexto. Solo el conjunto de conocimientos es más extenso. Los programadores muy a menudo cambian de contexto debido al cambio de proyectos y equipos. Y la capacidad de introducir a un colega en el contexto, señalando los detalles más importantes y omitiendo detalles innecesarios, es una habilidad muy importante, considerando lo costosa que es hoy la operación de entrar en el contexto. Por cierto, esta habilidad también se usa en la tutoría.
  • Etiqueta de negocios . Comenzando por la observancia de las reglas del idioma ruso y terminando con las reglas elementales de comunicación con los clientes. Algunas personas de negocios olvidan que no están en el chat flojo de los gophers o en el marco de Yii (sustituya su tecnología). En algunas empresas, la etiqueta comercial es importante en la correspondencia por correo dentro de la empresa. Para nosotros en Mad Devs, la etiqueta comercial es importante solo en contexto cuando es importante para el producto que estamos fabricando. Si es más fácil para los miembros del equipo percibir solo este tipo de comunicación, se adoptará dicha etiqueta de comunicación. Pero al menos todos los clientes con los que trabajé son personas que se centran principalmente en el resultado y prefieren comunicarse sin una sopa seria. Aquí a cada uno lo suyo. Pero! ¡La capacidad de incluir la etiqueta comercial cuando la situación lo requiere es importante!
  • Establecimiento de objetivos . Dos tipos Personal y diseño. Dime, programador, ¿quién serás en 5 años? Una pregunta típica en la entrevista, pero la respuesta a ella ayuda a comprender cómo se relaciona una persona con la planificación a largo plazo. Mi opinión personal (esto significa que no impongo a nadie, lo que significa que no tiene sentido discutir): ¡a pesar de la entropía del mundo moderno, la planificación a largo plazo es NECESARIA, NECESARIA, NECESARIA! Nadie le pide que se apegue a un plan, pase lo que pase. Los planes deben cambiarse, y esta es una forma adulta. Pero tener en cuenta el objetivo y el conjunto de tareas para los próximos años (preferiblemente alrededor de 10 años) es una guía de acuerdo con la cual se toman las decisiones. Específicamente, me resulta más fácil trabajar con personas con planificación a largo plazo. Puedes invertir y desarrollar con ellos sin temor a que llueva mañana. El establecimiento de objetivos en el proyecto también es un punto importante. Como programador, incluso si descarta todo este tipo de tonterías sobre habilidades y cosas profesionales, usted es responsable de una de las partes del proyecto. Y debe planificar el desarrollo de esta parte del proyecto a largo plazo. Qué abstracciones aparecerán, qué módulos irán por separado para vivir sus propias vidas, y así sucesivamente.
  • Sociabilidad Se trata de la capacidad de comunicarse con colegas de otras profesiones. Sea receptivo, ayude a sus colegas a comprender sus problemas relacionados con nuestras habilidades profesionales. Sea un salvavidas para ellos cuando están parados, etc. La sociabilidad también ayuda a establecer contacto con el cliente, y esto siempre es útil para cualquier proyecto.

Estas habilidades supraprofesionales, en mi opinión, ayudarán a revelar completamente sus habilidades profesionales.


El mensaje principal de que un programador de hoy no es un tipeador de código. Esta es una unidad de combate importante: una unidad que puede decidir el resultado de una batalla si usa correctamente todos sus hechizos.
Y para esto necesita no solo ser un buen desarrollador y ser capaz de codificar, sino también tener un conjunto de habilidades que a primera vista ayudan remotamente en el desempeño de sus funciones, pero esto no es así.


Respondemos la pregunta: ¿cuál es la responsabilidad del programador moderno? En una primera aproximación, este es un código para escribir. Pero, de hecho, un buen programador moderno en la mayoría de los casos tiene un conjunto de responsabilidades tan vago, tanto como los conceptos de habilidades profesionales actuales son vagos. Esto, además de todo, depende de la empresa, el equipo, el proyecto y el líder del equipo.


Por supuesto, cada desarrollador decide quién debería ser. Y qué habilidades desarrollar, qué es importante, etc. Puedes seguir siendo un marcador de códigos, y en los próximos años te sentirás súper bien.


Es cierto que hay expertos que dirán que los especialistas de TI limitados pronto comenzarán a desaparecer. La extinción completa no los amenaza, pero en la forma en que están ahora, las profesiones no serán seguras.


Hay un proyecto tan interesante: Atlas de nuevas profesiones . Compruébelo y vea que las nuevas profesiones son, por regla general, profesiones del tipo IT + otra industria.


Falta algo en la profesión de JS- .


Espero que este material no haya herido los sentimientos de nadie. Este material es un intento de revelar el sistema de habilidades del programador moderno desde un ángulo diferente. No mas

Source: https://habr.com/ru/post/451482/


All Articles