Miedo y asco en TI

Hola a todos Soy un programador habitual que usa el manto de una persona mayor en una empresa de comestibles habitual. He estado involucrado en el desarrollo comercial durante aproximadamente 10 años, comencé con el desarrollo de firmware para pequeñas piezas de hierro, y ahora hago backends de diversos grados de complejidad, principalmente en el ahora de moda Java / Kotlin. Elegí esta profesión por vocación: como niño de escuela todo el tiempo soldaba algo, programado en un pedazo de papel (no había computadora) y todo eso. Luego vino la educación de perfil, el trabajo en varias empresas, eminentes y ordinarias, extranjeras y nacionales. Por lo tanto, puedo decir que soy un programador ideológico. Y nunca entendí a las personas que esperan el viernes: siempre iba a trabajar con placer, sin importar lo que sucediera allí. Eso fue, al menos hasta hace poco. Desde algún punto, me "quebré" y apenas podía obligarme a ir a mi trabajo una vez amado. Algo me estaba molestando antes, pero ahora que mis pensamientos han tomado forma en mi cabeza, puedo decir qué le pasa a mi mundo de TI que alguna vez fue acogedor.

Complejidad excesiva


Cuando trabajé en las glándulas, realmente me gustó la propiedad que veo a través de cómo funciona esto: qué bytes se mueven, en qué área de la memoria sucede esto y cómo el compilador manejó el código. Había una sensación de calma y control. Cuando cambié al desarrollo de backend un poco más tarde, me reí de infinitas configuraciones xml para EJB o el mismo resorte. Sabría lo que me espera en el futuro. Ahora simplemente no entiendo (y ya estoy desesperado por entender) lo que está sucediendo dentro de mi apego sin complicaciones. Un montón de capas de abstracciones, contenedores en contenedores, toneladas de manuales, scripts, herramientas, versiones, archivos de configuración. Todavía no he descubierto cómo se está implementando el proyecto, en el que he estado trabajando durante seis meses. Y, por supuesto, no puedes hacer un monolito, al menos en la primera etapa. Asegúrese de dividir inmediatamente todo en microservicios, porque es correcto (en la conferencia dijeron que lo hacen en la empresa X). Y, por supuesto, no podemos usar el viejo y Apache HTTP Client para ir al servicio que necesitamos una vez cada pocos minutos, porque este cliente no es asíncrono y no tiene un limitador de velocidad, mecanismo de contrapresión u otras cosas sofisticadas incorporadas. A mi pregunta, "¿Por qué es todo esto necesario para una carga de 1 solicitud / min?" Recibo solo una mirada de reproche de mis colegas, en cuyas frentes brilla la inscripción "Aquí eres estúpido".

Un tema separado es Mr. Javascript con sus innumerables marcos. Honestamente, no entiendo cuántas cosas podrían inventarse para una herramienta que solo necesita dibujar formularios en páginas web y, de vez en cuando, enviar una solicitud de backend. Qué bueno que hago el backend.

En el ejemplo de la interfaz (y no solo eso), podemos ver claramente cómo caminamos en círculos: ejecutemos toda la lógica en el lado del servidor -> y ahora en el lado del cliente -> y ahora en el servidor nuevamente y así sucesivamente hasta el infinito. Escribamos el frontend y el backend en un idioma -> y ahora vamos a diferentes idiomas -> y volvamos en uno. Hagamos esquemas para formatos de datos -> esquemas solo para veteranos -> y no, los esquemas son necesarios de todos modos. Uno de mis compañeros compila su biblioteca de código abierto de yaml a xml, simplemente porque hay esquemas allí y es genial cuando se ríe de una configuración enorme, y un IDE consciente de XSD puede hacer la mitad del trabajo por usted. De lo anterior, sigue el siguiente problema:

Demasiado


Herramientas, idiomas, libros, conferencias, marcos, etc. Durante mucho tiempo detrás de aquellos días en que, para el desarrollo de software, era suficiente tener conocimiento de un PL, un par de bibliotecas, y eso es todo. Ahora estamos esperando cientos de marcos, con una docena de idiomas (incluso dentro del marco de un proyecto), DBMS de moda y no demasiado, corredores de mensajes ubicuos, cientos de kilómetros cuadrados de rastrillos y otra diversión. Como regla, un programador promedio no tiene tiempo para estudiar todo esto en el trabajo (a excepción de las herramientas que ya se utilizan en sus proyectos), porque necesita trabajar en ello. Muchas personas tienen que pasar tiempo personal estudiando estas tecnologías, aunque lo más probable es que el 90% de los estudiados nunca sean útiles. Yo mismo tengo quinientos artículos en mi bolsillo, un montón de vistas de video no vistas de conferencias, y cada llamada a Habr presagia una visita obligatoria a McConaughey.

Pero incluso el trabajo duro con un idioma específico o, por ejemplo, un DBMS en su empresa a veces no le permite mantenerse en tendencia, porque Las tecnologías se vuelven obsoletas antes de que puedan aplicarse. Incluso Java ahora se lanzará a la velocidad de Firefox.

Gracias a la corriente interminable de conocimiento en rápido crecimiento, muchos de nosotros nos sentimos como estudiantes e impostores eternos, sin importar cuántos sistemas haya construido realmente. Y esto es muy beneficioso para los RR.HH. y los empleadores: puede reducir fácilmente su RFP con un par de preguntas difíciles. Este tipo de carrera de ratas HR es políticamente correcto llamado autodesarrollo.

Recientemente, he estado observando una tendencia de imponer la autoridad de un departamento comercial a los desarrolladores. Ahora, además de cumplir con sus tareas principales, el desarrollador está obligado a comprender el tema a nivel de un buen analista y, en general, a pensar en los negocios. Déjame en paz, no sé cómo aumentar tu tasa de conversión

Entrevistas de trabajo


Este es el tipo de disciplina especial más importante y querida. De hecho, de hecho, depende de esto si dormirás en un viejo sofá aplastado en un odnushka alquilado en algún lugar fuera de la carretera de circunvalación de Moscú, o si tendrás que esconderte en cartón sobre la calefacción principal debajo del puente. Si al comienzo de mi carrera la entrevista fue una charla sincera, ahora es más como un examen. Quizás esto se deba al hecho de que en aquellos días no había salarios y multitudes tan grandes que quisieran ingresar a TI o simplemente a la moda, no lo sé. Pero el hecho es que cuando viene a una entrevista para el puesto de desarrollador sénior, con un alto grado de probabilidad, se encontrará con tareas sazonadas con preguntas de prueba. “Bueno, resuelve un problema en una hoja de papel que robamos ayer con Leetcode. ¿Mal en una unidad en la condición límite? Fuuuuu goof! No sabes cómo funciona% methodName% en el% frameworkName% más moderno. ¿Quién lo puso aquí? ¡Seguridad! ”A nadie le importa que tu cabeza esté organizada de manera diferente y no puedas enfatizar la mirada despectiva y condescendiente de los nerds de nariz alta rápidamente y sin errores para envolver el algoritmo para una tarea en la que aún no has tenido tiempo de pensar. Como cuántos kilómetros de código y sistemas de producción están detrás de usted. Bueno, al menos las preguntas del rompecabezas están muertas, y gracias por eso.

Personas de TI


Aquí analizaremos algunas subespecies de esta población, con las que a menudo tenemos que lidiar.

Realmente desarrolladores y simpatizantes. Contrariamente a los estereotipos, en su mayor parte no son nerds ortodoxos, sino muchachos normales. Pero, por regla general, no hay nada de qué hablar con ellos. Todas las conversaciones fuera del horario laboral se reducen al trabajo. Pero, ¿de qué otra manera, si se ve obligado a aprender toda esta tecnología a toda hora? Mi consejo es mantenerse alejado de los hombres con camisas a cuadros con mochilas, de lo contrario puede ganar una dosis letal de aburrimiento. Muchos de ellos van a trabajar no a trabajar, sino a jugar juguetes. Inventemos una bicicleta, fijemos un nuevo marco (y arrasaremos el infierno por la noche por la noche) y ciertamente dejaremos todo a la mitad, porque este juguete está cansado, además, trajimos unos nuevos. Pero luego nos volaremos las mejillas y diremos en las conferencias cómo vencimos el problema que nosotros mismos creamos. BENEFICIOS! Estas personas son tan fácilmente conducidas a todo tipo de basura como "tareas interesantes" y "sistemas complejos" (es imposible construir una calculadora sin una docena de microservicios en la cultura de TI), lo que en términos humanos significa recoger la mierda de un mamut, pero para menos dinero, reduciendo así los salarios de la industria. Como en una broma "- Papá, ¿qué vamos a comer hoy?" "Nada, hijo, estoy trabajando en tareas interesantes en un equipo amigable".

Gerentes de proyecto. Honestamente, durante 10 años no entendí quiénes son los gerentes de proyecto y por qué son necesarios. En oficinas completamente diferentes, se veía más o menos así: hay un montón de tareas, ordenar qué hay y cómo, y hacerlo antes de tal o cual fecha. Y fui a buscar un café con leche de los hipsters en el primer piso y escribí en Instagram lo difícil que es hoy. Solo una vez vi a un tipo que construía todos estos horarios aburridos, hacía malabarismos con las tareas y era nuestro asistente, y no solo un tipo genial que no podía hacer programación, sino que realmente quiero un ITP.

Camareros Muy querido por muchas categorías. Gracias a su dumping, no pueden entrar en la industria juicios razonables e ideológicos: en busca de un largo rublo, muchos trabajadores rodantes están listos para trabajar de forma gratuita.

Nos mantendremos en silencio sobre el resto.

Negocios


El software en el mundo moderno no se hace simplemente porque es divertido (aunque a veces parece). Se realiza con mayor frecuencia para ganar asistentes, directa o indirectamente. Y en relación con este hecho, podemos dividir a las personas en 2 categorías.

Aquellos a quienes les importa cómo, para que todo en su interior sea hermoso y correcto.

Quienes se preocupan por lo que son esas personas que se preocupan por la esencia del producto que fabrican.

Por lo general, el desarrollador contiene ambas categorías, solo en diferentes proporciones.

Para los dos, tengo una triste noticia.

Para la primera categoría, desde el punto de vista de ganar dinero, no importa cómo se elija la arquitectura correcta y cuán hermoso sea el código. Al igual que toda su seguridad, mejores prácticas, etc. Puedes poner muletas, ganar abuelas, y luego el gerente que hizo todo esto salta al bote vecino "para obtener una nueva experiencia", y el equipo rastrilla los establos por la noche.

Para la segunda categoría, el 90% de ustedes hacen lo que otros han hecho hace mucho tiempo. Con raras excepciones, todos sus productos son profundamente secundarios. Sin embargo, los empresarios astutos están tratando de dar "ideología" al próximo sistema de pago, la banca en línea y similares. Pasé por todo esto yo mismo y debo decir que es mucho más fácil trabajar cuando tienes una respuesta clara a la pregunta "¿por qué se necesita todo esto?". Por alguna razón, todos estos "cambiadores" del mundo olvidan decir que un cambio en el mundo ocurre como un subproducto de ganar dinero, y no al revés. Es difícil cambiar el mundo cuando una escopeta de la junta de directores se adjunta a su templo y se lanza una soga de accionistas alrededor de su cuello. En cuanto a mí, la frase "trabajamos para ganar dinero" suena mucho más honesta. Otra cosa es que si le dice a RR.HH en este momento que trabaja en el trabajo por dinero, entonces el 146% tendrá una mirada perpleja y algo así como "No nos conviene, necesitamos personas entusiastas que necesiten autodesarrollo y tareas interesantes".

Salud


Todo el mundo sabe que si levanta pesas durante un tiempo prolongado, sin una preparación adecuada (o incluso con ella) tiene la garantía de tener problemas con la espalda y las articulaciones. Lo mismo puede decirse del cerebro, solo que esto es menos obvio. Nuestro trabajo requiere altos rendimientos y concentración, incluso si solo realizamos las pruebas en la máquina, escuchando en segundo plano otra encuesta de inteligencia. Me parece que el cerebro simplemente no está diseñado para tales hazañas diarias. Trabajé en varios trabajos de mierda, incluidos los físicos, y puedo decir que nunca me sentí tan apretado y frustrado como cuando salía de la oficina todos los días. Muchos de mis más de 35 colegas sienten lo mismo, y preguntas como "¿Qué pasa si tienes 25 años y estás agotado?" O "¿Cómo salir de eso?" Comenzaron a aparecer en los foros. Cuánto tiempo llevará estirar en este modo es una pregunta interesante.

Total


Durante 10 cortos años, la esfera de TI de un pequeño y acogedor mundo de nerds informáticos sentados en el sótano cerca del monitor parpadeante se ha convertido en una gran industria de publicidad con grandes salarios, marketing y otras grandes noticias. La programación ya no es ingeniería, sino solo una embarcación aburrida, cuyo objetivo principal es convertir el govnokod y las muletas en dinero. Solo queda esperar hasta que todo este coloso se derrumbe por su propio peso y volveremos a nuestras bodegas. O no

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


All Articles