
Cada vez antes de la entrevista de seguridad social, me digo a mí mismo: "Tranquilamente, no es necesario inventar, terminar y mentir, su conocimiento y experiencia son suficientes para trabajar con ellos. Fortalecerá a cualquier equipo, tiene algo que ofrecer y lagunas en su conocimiento - "Si supieran todo lo que sabes sobre tus habilidades, definitivamente te tomarían". Pero cuando comienza la entrevista, siempre dejo de creer en ella. Durante las dos horas de la entrevista camino como un campo minado, para que Dios no quiera quemarme, para que no sepa algo.
Durante mucho tiempo pensé que algún día sabría todo lo que necesitaba. Vine a entrevistarme para el puesto del medio, y yo mismo pensé que no aguantaba. Tienen mucho que exigir, no sé todas estas cosas a un buen nivel. Me llevaron, pero la entrevista en sí misma solo confirmó mis pensamientos. Los chicos de Skype son personas muy geniales. No sé cómo, pero durante una hora de conversación se las arreglan para poner en mi cabeza la idea de que sus habilidades son inalcanzables. Entonces el espejismo desaparece, empiezo a trabajar con ellos y entiendo que somos igualmente estúpidos. Ahora no saben cosas "elementales", ahora les estoy explicando algo. Ahora suelo hablar con la signora. Aquí todo es igual, pero exagerado hasta el punto de que parece una broma malvada de alguien.
Cuando se está preparando para una entrevista de seguridad social de alto nivel, ni siquiera se dice a sí mismo que no necesita mentir. Justo como sea necesario. No te hubieran contratado si supieran todo sobre ti, porque ellos mismos aún no habían admitido que no lo sabían. Aceptas las reglas de un juego estúpido, y presumes de la seguridad social en respuesta a su presunción, mienten sobre su frescura, y mientes aún más genial. Entonces sabes lo que sucederá. También son tontos, como tú.
Obviamente, algo está mal aquí. Parece que no podemos aceptar la idea de que la habilidad es algo relativo, no se puede contar y medir. Y dado que las habilidades de desarrollo son nuestra principal arma y logro en el mundo, todo depende de ellas, todos fingimos que esta cosa efímera es absolutamente real. Y míralo con cuidado.
En un mundo ideal, podríamos tener un mecanismo, una prueba perfecta, que evaluará su habilidad en una escala de uno a mil. Y las empresas que filtran candidatos según estas estimaciones, reclutan a los correctos y pagan exactamente de acuerdo con sus habilidades. Esto no funciona en nuestro gobierno. Cualquier imbécil que intente introducir un sistema de calificación de habilidades solo complica nuestras vidas. Trabajaste en algún lado, estudiaste algo, hiciste un par de piezas geniales. Llega un momento en que necesitas buscar trabajo. Abres vacantes y entiendes que, en general, no tienes idea de quién eres. Intenta diferentes niveles: en algún lugar resulta, en otro lugar no, y esto no tiene nada que ver con la RFP propuesta y los requisitos formales para la vacante. Empiezas a pensar: "Bueno, está bien, si me llevaron a la mitad en tres lugares, ahora estoy en la mitad". Luego llega el mes de junio a tu equipo, que funciona mejor. Y luego el firmante que tiembla menos. Comienza a confundirse, pero el hecho es que el concepto de "balbuceos para bien o para mal" es demasiado complicado. En uno de los primeros trabajos, tuvimos un firmante de cuarenta años que llegó a los objetos punzantes de los profesionales. Estaba absolutamente convencido de que él era un fondo completo en comparación conmigo. Ahora entiendo que por otros diez años no sabré ni la mitad de lo que él sabía entonces. No sabía nada sobre algoritmos, bases de datos, estructuras de datos ... Acabo de leer un libro sobre el último sisharp, un código perfecto y un folleto con patrones de diseño. Esto me permitió despreciar a todo el equipo, explicándoles regularmente cómo escribir código.
Creo que el problema no es solo en mí. Si te comunicas con los desarrolladores, estás buscando un trabajo o escribes algo en una revista geek, todo lo que haces es que se miden por una habilidad. De alguna manera escribí un artículo que no está relacionado en absoluto con lo bueno que soy como desarrollador. Que piensas Hubo una docena de comentarios al estilo de "Sí, este imbécil no es un firmante, ¿qué demonios está escribiendo?". La comunidad en sí lo es, pero lo peor es que se traslada a la búsqueda de empleo. Una vez tuve la oportunidad de trabajar en un equipo donde el líder cortó a la gente en una entrevista técnica, si su CV esperado era más alto en su currículum que en el suyo. Y luego estaba indignado, como, ¿qué demonios es este chmoshnik pidiendo 3 piezas, y no sabe lo "más elemental" que yo sé? Esto no es envidia ordinaria, esta es exactamente la historia de la habilidad. La idea que yace en nuestras cabezas es que hay una métrica exacta de habilidad; el GP debe estar vinculado a ella. Simplemente no hay métrica, por lo que para la mayoría de nosotros esta métrica funciona así: "Hmm, ¿cuánto cuesta esta persona, yo?"
Yo ya no estoy llamado a realizar entrevistas, aplaudiré a todos indiscriminadamente. No entiendo si una persona ha estado trabajando como desarrollador durante tres años, ¿qué demonios pueden ser los problemas técnicos? ¿Reducirá la velocidad del equipo? Enseñar Hará miles de preguntas, responderemos. ¿Escribirá un código malo? Revisar
Tal retórica es una mierda. Siempre la entiendes así: "Y luego que todos sean la Signora, que todos paguen lo que piden". Esto conducirá al hecho de que los malos desarrolladores pedirán mucho dinero y harán proyectos importantes, pero los buenos no lo harán. Será muy injusto, y la injusticia siempre es mala. Y el hecho de que la vida y el mercado sean inherentemente injustos no significa que no debamos hacer nada al respecto. Den Abramov escribió una vez una publicación en la que admite que no sabe muchas cosas que, en el buen sentido, debería saber, y al final escribe algo como "Esto no significa que ahora debemos depreciar nuestra experiencia , solo tienes que ser muy comprensivo sobre las brechas de conocimiento ". Den tiene razón, pero esta simple recomendación es demasiado difícil de seguir.
La habilidad del desarrollador se forma a partir de una gran cantidad de cosas: su conocimiento de YaPs, plataformas, experiencia, el rastrillo que ensambló, los sistemas que construyó. Capacidad de diseño, comprensión de diversos patrones y mecanismos en el desarrollo moderno y no muy, los principios sobre los que se basa todo. La forma en que trabaja con las tareas, cómo las descompone y las comprende. Su don de previsión y la capacidad de combinarlo con el pragmatismo. Su capacidad para anticipar la aparición de nuevos errores y tareas.
La mayoría de estas cosas son muy difíciles de evaluar. Hay habilidades más o menos claras, puedo entender qué tan bien conozco C #. No daré un número de cero a cien, me parece que está por encima del promedio: no hay características en YaP que no conozca, estoy bien familiarizado con todas las prácticas comunes de escribir código C #. Pero incluso si imagino que estoy aquí, el conocimiento de C # aislado de otras habilidades es solo un montón de basura. Comprender la plataforma .net no funcionará.
La experiencia es fácil de contar. Si las personas necesitan un donante con cinco años de experiencia, solo encuentran a un tipo que trabajó como donante durante cinco años. Pero también hay problemas aquí: la calidad y la portabilidad de esta experiencia son cosas muy controvertidas. Nadie quiere escucharme cuando trato de obtener un desarrollador de Xamarin, porque trabajé con Xamarin durante demasiado tiempo. Los invité a entrevistarme como desarrollador de Xamarin, especialmente pasé un mes estudiándolo antes de la entrevista. Esto, y el hecho de que estoy haciendo casi lo mismo en WPF, y en general he estado trabajando con C # y .net durante 7 años, no significa nada para ellos. Creo que están equivocados, pero no puedo demostrar nada, mi potencial para trabajar con Xamarin es algo inconmensurable. La experiencia, ya que puede contarse en años, es a menudo engañosa. Entonces contratan a los tontos a puestos en los que hay que pensar, porque ya han trabajado en esos puestos. La ironía es que la única métrica contable es la más engañosa.
Con los sistemas que construiste es un problema similar. No los haces solos, su calidad no está tan relacionada con tu calidad. Comprender los patrones es difícil de calcular. Tengo historias especiales para conversaciones sobre cómo usé diferentes patrones. Tampoco hay conexión con la habilidad.
El pragmatismo, el don de la previsión y la capacidad de anticipar errores son cosas que no se pueden contar. Es imposible estimar estas habilidades incluso de manera aproximada. De alguna manera tuve que hacer una tarea de prueba, en la descripción del trabajo había un énfasis especial en comprender SOLID, escalabilidad de código, etc. Bueno, les confié algo como una palabra de honor en todos los patrones de diseño. Con gusto me llevaron, era mi único trabajo (me escapé después de la prueba), donde no me sirvió de nada. No había un solo patrón en su código. Y no observaron sólidos por un segundo. No entendía cómo funcionaban, y ni un segundo de mi vida era una persona que pudiera trabajar en su proyecto.
En las entrevistas, tales habilidades se prueban al escuchar sus historias de éxito. No dirá nada sobre usted como desarrollador, solo sobre su capacidad para contar historias. Es tan importante para nosotros definir una habilidad que estamos listos para tomar cualquier cosa conectada indirectamente con ella, convertirla en un estándar y fingir que funciona.
Se necesita precisión, pero no lo es. El desarrollo está conectado con las matemáticas, pero no se puede llamar una ciencia exacta. Esto es similar a mi argumento con Drugan: me dice todo el tiempo que hay mejor música en el mundo que Nirvana, y creo que es simplemente ridículo con esta "opinión" de él. Bueno, aquí nos sentamos y discutimos durante dos horas. Sí, ciertamente tengo razón al 900%, pero es imposible probarlo. A veces, tus habilidades se prueban mediante tareas abstractas que debes resolver. Una buena manera, pero en realidad verifican cómo su decisión coincide con su decisión. Existe la posibilidad de encontrarse con una persona inadecuada que verificará un enfoque diferente. Pero cómo resolvió un problema no dice mucho acerca de cómo generalmente resuelve los problemas. Después de todo, los tipos de tareas en desarrollo son infinitos. Tienes que hacer muchas cosas muy diferentes, y cuando las personas tienen la tarea de evaluar cómo harás esto, al darse cuenta de la irrealidad de esto, aparecen muletas que dicen al menos algo. Entonces, ¿qué pasa si estas muletas no funcionan? Nadie se dará cuenta. Es solo que un hombre puede ser desafortunado con la tarea, y será enviado a casa con vergüenza.
Cuando busco trabajo, toda mi vida depende de lo bueno que soy. Salario, calidad y valor del proyecto en el que estoy trabajando, mi bienestar y autoestima. Para mí, no es un problema aprender algo: saber qué y saber en qué momento puedes considerar que has estudiado. Si me dicen que hay un mecanismo ideal para determinar la habilidad del uno al diez, y tengo que adivinar el mío, de lo contrario me dispararán, no tengo idea de qué responder. Probablemente alrededor de las dos. Sí, ¿recuerdas que tengo un trabajo como signora? Si me piden que adivine la habilidad media del Signor, también elegiré un deuce o un triple. De diez. Pero cuando está buscando trabajo, se le ofrece elegir en una escala de hasta tres, donde todo lo que es menos de tres es pobreza y trabajo sin objetivo.
No sé si es normal conseguir un trabajo como un tipo duro cuando eres un tonto. Me molesta mucho cuando otros lo hacen. Parece que desprecio a estas personas. Camareros sin valor que desean tomar un trabajo de ingenieros reales que aman su trabajo. Yo mismo no me relaciono con ellos, porque sé con certeza que me encanta el desarrollo. Y a menudo me digo a mí mismo que quiero un puesto más alto para tener acceso a proyectos más frescos, gestionar procesos y cosas similares. Sí, no me creo. Para justificarme, trato de aprender más. Pero, por supuesto, no voy a pedir menos dinero.

El dinero ilustra perfectamente el problema. Nos faltan las calificaciones de jun-middle-signor para entender quién es mejor. Aquí entra en juego el botín. Cuantos más pedidos, mejor será el desarrollador. Los números en la oferta son principalmente importantes para mí porque hablan más sobre mí de lo que yo sé sobre mí. Además, me dicen no solo a mí. Cuando me preguntan qué demonios pido tanto, digo que recibí la misma cantidad en el trabajo anterior, las preguntas desaparecen. Es decir, si estoy de acuerdo en trabajar en un proyecto interesante para centavos, inmediatamente comenzaré a cotizar más bajo que ahora. Mi buen amigo recibe dinero espacial, y recientemente decidió secretamente conseguir un segundo trabajo. Y explicó que necesitaba estabilidad. Una garantía de que siempre será contratado por un gran salario. Y esto es más fácil de lograr si eres verdaderamente rico.
El problema del regateo en la seguridad social es el síntoma más terrible de una evaluación incorrecta de las habilidades de los desarrolladores. Todo está mezclado en un montón, la cantidad que se le ofrecerá depende de qué tan bueno sea, cuánto les guste, qué género tienen, qué presupuesto tienen. Cuánto lo necesitan en este momento, qué tan bien negocia y sabe su precio. Qué suerte tuvo con las preguntas en una entrevista técnica, cuánto obtuvo antes. La solicitud de propuesta de una persona que decide cuánto le pagará es especialmente buena. Pero cuando ves la oferta final, no piensas en ello. Cree que aquí está: la cifra en la que su habilidad se convirtió a la tasa del mercado. Todo esto se ve exacerbado por la posición del mercado y el mundo, que, en general, estamos jodidos con nuestras solicitudes. Y bueno, tengo dos hijos, los mando al infierno con todos los que dicen que voy a tener demasiado. Pero no todos pueden hacer eso.
Curiosamente, a pesar de todos los problemas, hay suficientes casos en los que te instalas, les cuentas sobre tu experiencia, te dicen que todo está bien, que tienen tareas similares, y luego te va muy bien en su trabajo. Creo que todos estos casos son, en primer lugar, suerte y, en segundo lugar, injusticia. De hecho, en lugar de usted, podrían tomar a un tipo que no sabe hablar tan abruptamente sobre su experiencia, y en general está más acostumbrado a resolver problemas, pero él se encargará mucho mejor de su proyecto. Todavía existe ese problema: es posible que realmente no lo acepten, simplemente porque no les caía bien. Y realmente tienen derecho a ello, porque nadie está obligado a trabajar con personas que no les gustan. La eficiencia del sistema se debe en gran parte al hecho de que, incluso si todos comienzan a actualizar a todos los solicitantes en general, nadie morirá. Porque los desarrolladores tienen normas promedio.
El sistema funciona, pero quedan preguntas. ¿Cuánto dinero debe indicarse en el currículum? ¿Es posible subir a la pila de otra persona sin perder terreno? ¿Por qué mis tontos conocidos obtienen más que yo, y mis conocidos inteligentes obtienen menos? ¿Por qué los famosos desarrolladores geniales no hurgan en lo que yo hurgo? Si yo mismo pienso que soy estúpido, ¿puedo mentir, qué no? Pero después de todo, pasado mañana definitivamente comenzaré a pensar que soy un súper genio, ¿por qué debería renunciar entonces? Si a menudo no me toman por habilidades blandas, ¿tengo que fingir que soy una persona dulce y amigable? Si ya trabajo como firmante con un gran salario, ¿entonces no puedes ir por menos? ¿O significa que tengo que ir y admitir honestamente que no valgo la pena? ¿Por qué no me invitaron a hablar, hasta que terminé git en habilidades clave? ¿Por qué los miembros del personal venden aprendices industrialmente, como Signor, y el mundo no colapsa por esto?
En diferentes momentos, estas preguntas me atormentaron a mí y a mis amigos. Probablemente esto sea parte de nuestro trabajo, pero creo que hay que hacer algo con esto. Sé con certeza que hay desarrolladores mejores y peores. Hay más y menos experiencia, hay inteligentes y estúpidos. Cuando busca una persona para unirse a su equipo, existe una buena posibilidad de que contrate a alguien que creará más problemas que soluciones. Y existe la posibilidad de contratar a un hombre que vendrá y mejorará dramáticamente todo. Y para mí es obvio que la compensación debería depender de lo útil que sea una persona. Aunque solo sea porque las personas deberían estar motivadas para estudiar, pensar y mejorar, hay demasiados procesos en el mundo relacionados con TI, todas las personas en la tierra están interesadas en el hecho de que el nivel promedio de desarrolladores está aumentando constantemente.
Existe tal idea: el empleador puede contratar a quien quiera y como quiera. Creo que no Si contrata a cien tontos, pague tres veces más que el mercado, diga que son súper menores: puede suponer que no le importa toda la industria. Estos tipos algún día te dejarán, colgarán fideos en las orejas de otros empleadores, y luego los ingenieros limpiarán la basura detrás de ellos en el código durante años. Si llevas a una persona muy talentosa a un proyecto estúpido y presionas por una compensación mendigante para él, considera que destruiste a un buen desarrollador. Lo más probable es que continúe trabajando con idiotas como tú a lo largo de su carrera. La contratación interrumpida sienta un precedente y aumenta el número de contrataciones interrumpidas. Para todos nosotros
El problema es de dos lados: para los empleadores y para los solicitantes. Es más fácil con los inquilinos: a menudo leo a personas de la industria que están trabajando seriamente en sus procesos de contratación. Sí, se lanzan de un extremo al otro, están desarrollando diferentes métodos de seguridad social, tipos de tareas de prueba. Enseñan sus eychars en detalle para ordenar el currículum. Todo esto generalmente funciona un poco mejor que aquellos que no hacen vapor en absoluto, y contrata a personas de acuerdo con el mismo esquema idiota. Y aquí está la solución: si trabajas constantemente en la contratación, si todas las personas que hacen esto en la industria piensan y mejoran este proceso, será notablemente mejor.
Para las personas que buscan trabajo, todo es mucho más complicado. Dog-talk es un juego, y puedes aprender a jugarlo. Pero no sé cómo evaluar su habilidad usted mismo, cómo entender qué tan bueno es, en qué tiene que trabajar y cuánto obtener. Conocí personas que no tienen tales problemas. Dude vive para sí mismo, sabe con certeza que es un intermediario de front-end, sabe con certeza que se encuentra en la X de la ciudad de Y, y no sabe de ninguna duda y miedo. No entiendo cómo lo hacen. He estado tratando de entender quién soy toda mi carrera. Frases sobre los desarrolladores "reales" que deben saber cómo entender o entender la próxima basura, siempre los tomé en serio. Pero en siete años, no he estado cerca de igualar la mayoría de estas declaraciones. Al mismo tiempo, yo mismo generé estas tonterías. También les dijo a sus colegas de esa manera, como si no te molestaras en entenderlo de manera sólida, no tienes derecho a escribir código. Aparentemente, las flatulencias y las preguntas frecuentes se adjuntan a su primer IDE. Vi todo tipo de tablas que describen lo que tal y tal programador debería saber, y me comparé con ellas. . , , , , . ? , . : - , , . — , , , . , — . , — .
, , , . , , , , , , . . , , //. , , . , , — , , — , , . , , , . , , — .