
Toda vez antes da entrevista de segurança social, digo a mim mesmo: "Calmamente, você não precisa inventar, terminar e mentir, seu conhecimento e experiência são suficientes para trabalhar com eles. Você fortalecerá qualquer equipe, terá algo a oferecer e lacunas em seu conhecimento - "Se eles soubessem tudo o que você sabia sobre suas habilidades, eles definitivamente o levariam." Mas quando a entrevista começa, eu sempre paro de acreditar nela. Todas as duas horas da entrevista ando como um campo minado, para que Deus proíba não se queimar, para que eu não saiba de nada.
Durante muito tempo, pensei que algum dia saberia tudo o que precisava. Vim entrevistar para a posição do meio e pensei que não aguentava. Eles têm muito a exigir, não sei todas essas coisas em um bom nível. Eles me pegaram, mas a entrevista em si só confirmou meus pensamentos. Os caras na parte de trás do Skype são pessoas muito legais. Não sei como, mas durante uma hora de conversa eles conseguem colocar profundamente na minha cabeça o pensamento de que suas habilidades são inatingíveis. Então a miragem desaparece, começo a trabalhar com eles e entendo que somos igualmente estúpidos. Agora eles não sabem coisas "elementares", agora estou explicando algo para eles. Agora eu normalmente falo com a Signora. Tudo é o mesmo aqui, mas exagerado a tal ponto que parece a piada de alguém.
Quando você está se preparando para uma entrevista de segurança social de alto nível, nem se diz que não precisa mentir. Apenas conforme necessário. Eles não teriam contratado você se soubessem tudo sobre você, porque eles próprios ainda não haviam admitido que não sabiam. Você aceita as regras de um jogo estúpido e exibe a seguridade social em resposta ao show delas, elas mentem sobre sua frieza - e você fica mentindo ainda mais. Então você sabe o que vai acontecer. Eles também são burros, como você.
Obviamente, algo está errado aqui. Parece que não podemos aceitar a ideia de que a habilidade é uma coisa relativa, não pode ser contada e medida. E como as habilidades de desenvolvimento são nossa principal arma e conquista no mundo, tudo depende delas, todos fingimos que essa coisa efêmera é absolutamente real. E assista com cuidado.
Em um mundo ideal, poderíamos ter um mecanismo, um teste perfeito, que avaliará sua habilidade em uma escala de um a mil. E as empresas que filtram os candidatos de acordo com essas estimativas, recrutam os corretos, pagam exatamente de acordo com suas habilidades. Isso não funciona no nosso govnomir. Qualquer idiota tentando introduzir um sistema de classificação de habilidades apenas complica nossas vidas. Você trabalhou em algum lugar, estudou alguma coisa, fez algumas peças legais. Chega um momento em que você precisa procurar trabalho. Você abre vagas e entende que, em geral, não tem idéia de quem é. Você tenta níveis diferentes - em algum lugar, mas em algum lugar, e isso não tem nada a ver com a RFP proposta e os requisitos formais para a vaga. Você começa a pensar: "Bem, tudo bem, se eu fui levado para o meio em três lugares, agora estou no meio". Então, junho chega ao seu time, que se atrapalha melhor. E então o signor que se atrapalha menos. Você começa a ficar confuso, mas o fato é que o conceito de "atrapalha-se para melhor ou para pior" é muito complicado. Em um dos primeiros trabalhos, tínhamos um assinante de quarenta anos que procurava os profissionais. Eu estava absolutamente convencido de que ele era completamente inferior comparado a mim. Agora entendo que por mais dez anos não vou saber e metade do que ele sabia então. Eu não sabia nada sobre algoritmos, bancos de dados, estruturas de dados ... Acabei de ler um livro sobre o sisharp mais recente, um código perfeito e uma brochura com padrões de design. Isso me permitiu desprezar toda a equipe, explicando-lhes regularmente como escrever código.
Eu acho que o problema não está só em mim. Se você se comunica com os desenvolvedores, procura um emprego ou escreve algo em uma revista nerd - ao redor, faça exatamente o que eles são medidos por uma habilidade. De alguma forma, escrevi um artigo que não tem nada a ver com o quão bom sou como desenvolvedor. O que você acha? Havia uma dúzia de comentários no estilo de "Sim, esse idiota não é um signor, que diabos ele está escrevendo!?". A própria comunidade é, mas a pior parte é que ela é transferida para a busca de emprego. Certa vez, tive a chance de trabalhar em uma equipe em que o líder cortou as pessoas em uma entrevista técnica, se o currículo esperado fosse maior no currículo do que no dele. E ele ficou indignado, tipo, que merda é essa chmoshnik pedindo 3 peças e não sabe a coisa "mais elementar" que eu sei? Isso não é inveja comum, é exatamente a história da habilidade. A idéia que está em nossas cabeças é que existe uma métrica exata de habilidade; o GP deve estar ligado a ela. Não existe métrica, portanto, para a maioria de nós, essa métrica funciona assim: "Hmm, quanto custa essa pessoa - eu?"
Eu mesmo não sou mais chamado a conduzir entrevistas, aplaudirei todos indiscriminadamente. Não entendo se uma pessoa trabalha como desenvolvedor há três anos, que diabos podem haver problemas com ela, tecnicamente? Vai desacelerar a equipe? Ensinar. Irá fazer milhares de perguntas - nós responderemos. Vai escrever código de baixa qualidade? Revisão
Tal retórica é uma merda. Você sempre a entende assim: "E então todos sejam a signora, todos paguem o que pedem". Isso levará ao fato de que os desenvolvedores ruins solicitarão muito dinheiro e farão projetos importantes, mas os bons não. Será muito injusto, e a injustiça é sempre ruim. E o fato de a vida e o mercado serem inerentemente injustos não significa que não devemos fazer nada a respeito. Den Abramov escreveu uma vez um post em que ele admite que não sabe muitas coisas que, de uma maneira boa, ele deveria saber, e no final ele escreve algo como "Isso não significa que agora devemos depreciar nossa experiência , você só precisa ter muita compreensão sobre as lacunas de conhecimento ". Den está certo, mas esta recomendação simples é muito difícil de seguir.
A habilidade do desenvolvedor é formada por um grande número de coisas: seu conhecimento de YaPs, plataformas, experiência, o rake que você montou, os sistemas que você construiu. Capacidade de projetar, compreender vários padrões e mecanismos no desenvolvimento moderno e não muito, os princípios sobre os quais tudo é construído. A maneira como você trabalha com as tarefas, como as decompõe e as compreende. Seu dom de previsão e a capacidade de combiná-lo com o pragmatismo. Sua capacidade de antecipar o surgimento de novos bugs e tarefas.
A maioria dessas coisas é muito difícil de avaliar. Existem habilidades mais ou menos claras, posso descobrir o quão bem conheço C #. Não vou dar um número de zero a cem, parece-me que está acima da média - não há recursos no YaP que eu não conheça, estou familiarizado com todas as práticas comuns de escrever código C #. Mas mesmo que eu imagine que esteja aqui, o conhecimento de C # isolado de outras habilidades é apenas um monte de lixo. Entender a plataforma .net não funcionará.
É fácil contar a experiência. Se as pessoas precisam de um doador com cinco anos de experiência, apenas encontram um cara que trabalhou como doador por cinco anos. Mas também há problemas aqui - a qualidade e a portabilidade dessa experiência são coisas muito controversas. Ninguém quer me ouvir quando tento obter um desenvolvedor do Xamarin, porque trabalhei com o Xamarin por muito tempo. Convidei-os para me entrevistarem como desenvolvedor do Xamarin. Passei um mês estudando-o antes da entrevista. Isso e o fato de estar fazendo quase a mesma coisa no WPF e, em geral, trabalhar com C # e .net há 7 anos, não significa nada para eles. Eu acredito que eles estão enganados, mas não posso provar nada, meu potencial em trabalhar com Xamarin é uma coisa imensurável. A experiência, uma vez que pode ser contada em anos, é muitas vezes enganosa. Então eles contratam tolos para posições em que você precisa pensar, porque eles já trabalharam nessas posições. A ironia é que a única métrica contável é a mais enganosa.
Com os sistemas que você construiu, é um problema semelhante. Você não os faz sozinhos, a qualidade deles não está muito ligada à sua qualidade. É difícil calcular padrões de compreensão. Tenho histórias especiais para conversas sobre como usei padrões diferentes. Também não há conexão com a habilidade.
Pragmatismo, o dom da previsão e a capacidade de antecipar bugs são coisas que não podem ser contadas. É impossível estimar essas habilidades de maneira aproximada. De alguma forma, tive que fazer uma tarefa de teste; na descrição do trabalho, havia uma ênfase especial no entendimento do SOLID, na escalabilidade de código etc. Bem, confiei a eles algo como uma palavra-chave em todos os padrões de design. Eles me aceitaram com prazer, era o meu único emprego (fugi depois do teste), onde não tinha absolutamente nenhuma utilidade. Não havia um único padrão no código deles. E eles não observaram sólido por um segundo. Eu não entendi como eles funcionam, e nem um segundo da minha vida era uma pessoa que poderia trabalhar em seu projeto.
Nas entrevistas, essas habilidades são testadas ouvindo suas histórias de sucesso. Isso não diz nada sobre você como desenvolvedor - apenas sobre sua capacidade de contar histórias. É tão importante para nós definir uma habilidade que estamos prontos para pegar qualquer coisa indiretamente conectada a ela, torná-la um padrão e fingir que funciona.
A precisão é necessária, mas não é. O desenvolvimento está relacionado à matemática, mas não pode ser chamado de ciência exata. Isso é semelhante ao meu argumento com Drugan - ele sempre me diz que há música melhor no mundo que o Nirvana, e acho que ele é simplesmente ridículo com essa "opinião" dele. Bem, aqui nos sentamos e discutimos por duas horas. Sim, certamente tenho 900%, mas é impossível provar isso. Às vezes, suas habilidades são testadas usando tarefas abstratas que você deve resolver. Uma boa maneira, mas eles realmente verificam como sua decisão corresponde à decisão deles. Existe a chance de encontrar uma pessoa inadequada que verificará uma abordagem diferente. Mas como você resolveu um problema não diz muito sobre como você geralmente resolve problemas. Afinal, os tipos de tarefas em desenvolvimento são infinitas. Você precisa fazer muitas coisas muito diferentes e, quando as pessoas têm uma tarefa de avaliar como você fará isso, elas, percebendo a irrealidade disso, criam muletas que dizem pelo menos alguma coisa. E daí se essas muletas não funcionarem - ninguém notará. Isso é apenas um homem que pode ser azarado com a tarefa, e ele será enviado para casa com vergonha.
Quando procuro trabalho, toda a minha vida depende de quão bom eu sou. Salário, qualidade e valor do projeto em que estou trabalhando, meu bem-estar e auto-estima. Para mim, não é um problema aprender alguma coisa - saber o que e saber em que momento você pode se considerar que estudou. Se eles me disserem que existe um mecanismo ideal para determinar a habilidade de um a dez, e eu tenho que adivinhar o meu - caso contrário eles vão me matar - não tenho idéia do que responder. Provavelmente cerca de duas. Sim, você se lembra que eu consegui um emprego como signora? Se eles me pedirem para adivinhar a habilidade intermediária do Signor, também escolherei um empate ou um triplo. Em dez. Mas quando você procura trabalho, é oferecido a você escolher em uma escala de até três, onde tudo o que é menor que três é pobreza e trabalho sem objetivo.
Não sei se é normal conseguir um emprego como durão quando você é otário? Me irrita muito quando outros o fazem. Eu pareço desprezar essas pessoas. Empregados de mesa sem valor que desejam aceitar um emprego de engenheiros reais que amam seu trabalho. Eu próprio não me relaciono com eles, porque sei com certeza que amo o desenvolvimento. E muitas vezes digo a mim mesmo que quero uma posição mais alta para ter acesso a projetos mais interessantes, gerenciar processos e similares. Sim, eu não acredito em mim. Para me justificar, tento aprender mais. Mas é claro que não vou pedir menos dinheiro.

O dinheiro ilustra perfeitamente o problema. Nos faltam as notas do signatário intermediário para entender quem é melhor. Aqui o saque entra em jogo. Quanto mais POs, melhor o desenvolvedor. Os números da oferta são principalmente importantes para mim, porque falam mais sobre mim do que eu sei sobre mim. Além disso, eles dizem não apenas para mim. Quando eles me perguntam o que diabos eu peço tanto - digo que recebi a mesma quantia no trabalho anterior, as perguntas desaparecem. Ou seja, se eu concordar em trabalhar em um projeto interessante para moedas de um centavo, começarei imediatamente a ser citado mais baixo do que agora. Meu bom amigo recebe dinheiro do espaço e, recentemente, ele decidiu secretamente conseguir um segundo emprego. E ele explicou que precisava de estabilidade. Uma garantia de que ele sempre será contratado por um grande salário. E isso é mais fácil de conseguir se você é verdadeiramente rico.
O problema de pechinchar na segurança social é o sintoma mais terrível de uma avaliação incorreta das habilidades dos desenvolvedores. Tudo é mesclado, a quantidade que lhe será oferecida depende de quão bom você é, o quanto eles gostam de você, que gênero você tem, que orçamento eles têm. Quanto eles precisam de você agora, quão bem você pechincha e conhece seu preço. Quão sortudo você teve com as perguntas em uma entrevista técnica, quanto você conseguiu antes. A RFP de uma pessoa que decide quanto lhe pagará é especialmente boa. Mas quando você vê a oferta final, não pensa nisso. Você acha que aqui está - o número em que sua habilidade foi convertida à taxa de mercado. Tudo isso é exacerbado pela posição do mercado e do mundo, de que nós, em geral, estamos ferrados com nossos pedidos. E tudo bem, eu tenho dois filhos, eu mando para o inferno com todo mundo que diz que eu vou ficar demais. Mas nem todos podem fazer isso.
Curiosamente, apesar de todos os problemas, há casos suficientes em que você se instala, conta a eles sobre sua experiência, eles dizem que tudo é legal, eles têm tarefas semelhantes e, então, você se sai muito bem no trabalho deles. Acredito que todos esses casos são, em primeiro lugar, sorte e, em segundo lugar, injustiça. De fato, em vez de você, eles poderiam pegar um cara que não sabe falar tão abruptamente sobre sua experiência e, em geral, está mais acostumado a resolver problemas, mas ele lidará muito melhor com o projeto. Ainda existe um problema - eles podem realmente não o levar, simplesmente porque não gostaram de você. E eles realmente têm direito a isso, porque ninguém é obrigado a trabalhar com pessoas de quem não gosta. A própria eficiência do sistema deve-se, em grande parte, ao fato de que, mesmo que todo mundo comece a atualizar todos os candidatos em geral, ninguém morrerá. Porque os desenvolvedores têm normas médias.
O sistema funciona, mas as perguntas permanecem. Quanto dinheiro deve ser indicado no currículo? É possível entrar na pilha de outra pessoa sem perder terreno? Por que meus conhecidos idiotas ganham mais do que eu e meus conhecidos inteligentes ganham menos? Por que os famosos desenvolvedores legais não vasculham o que eu vasculho? Se eu me acho idiota - posso mentir, o que não? Mas depois de tudo, depois de amanhã definitivamente começarei a pensar que sou um super gênio, por que devo parar? Se muitas vezes não sou apaixonado por habilidades pessoais, tenho que fingir que sou uma pessoa doce e amigável? Se eu já trabalho como assinante com um salário enorme, você não pode pagar menos? Ou isso significa que eu tenho que ir e honestamente admitir que não valho a pena? Por que não fui convidado para conversar até terminar as habilidades principais? Por que a equipe de funcionários está vendendo trainees industrialmente, como o Signor, e o mundo não entra em colapso com isso?
Em momentos diferentes, essas perguntas atormentavam a mim e aos meus amigos. Isso provavelmente faz parte do nosso trabalho, mas acho que algo precisa ser feito com isso. Eu tenho certeza que existem desenvolvedores melhores e piores. Há mais e menos experientes, há inteligentes e estúpidos. Quando você está procurando uma pessoa para se juntar à sua equipe, há uma boa chance de contratar alguém que crie mais problemas do que resolva. E existe a chance de contratar um homem que venha e melhore drasticamente tudo. E é óbvio para mim que a compensação depende de quão útil é uma pessoa. Mesmo que as pessoas sejam motivadas a estudar, pensar e melhorar - existem muitos processos no mundo conectados à TI, todas as pessoas no mundo estão interessadas no fato de que o nível médio de desenvolvedores está aumentando constantemente.
Existe uma idéia: o empregador pode contratar quem ele quiser e como ele quiser. Eu acho que não. Se você contratar cem tolos, pague três vezes mais que o mercado, diga que são super-menores - você pode assumir que não se importa com toda a indústria. Esses caras um dia vão deixar você, pendurar macarrão nos ouvidos de outros empregadores e, em seguida, os engenheiros irão, durante anos, limpar a porcaria por trás deles no código. Se você levar uma pessoa muito talentosa para um projeto estúpido, e pedir uma compensação imensa por ela - considere que você destruiu um bom desenvolvedor. Provavelmente ele continuará trabalhando com idiotas como você ao longo de sua carreira. A contratação interrompida define um precedente e aumenta o número de contratações interrompidas. Para todos nós.
O problema é de dois lados - para empregadores e candidatos. É mais fácil para os inquilinos: muitas vezes leio pessoas do setor que estão trabalhando seriamente em seus processos de contratação. Sim, eles são jogados de um extremo ao outro, estão desenvolvendo diferentes métodos de seguridade social, tipos de tarefas de teste. Eles ensinam seus eychars em detalhes para classificar o currículo. Tudo isso geralmente funciona um pouco melhor do que aqueles que não usam vapor e contrata pessoas de acordo com o mesmo esquema idiota. E aqui está a solução - se você trabalha constantemente na contratação, se todas as pessoas que fazem isso na indústria pensam e melhoram esse processo - ela se tornará visivelmente melhor.
Para quem procura trabalho, tudo é muito mais complicado. Dog-talk é um jogo, e você pode muito bem aprender a jogar esse jogo. Mas eu não sei como avaliar suas habilidades, entender como você é bom, no que precisa trabalhar e quanto conseguir. Eu conheci pessoas que não têm esses problemas. O cara vive para si mesmo, sabe com certeza que é um intermediário de front-end, sabe com certeza que está no X na cidade de Y e não conhece dúvidas e temores. Eu não entendo como eles fazem isso. Eu tenho tentado entender quem eu sou toda a minha carreira. Frases sobre os desenvolvedores "reais" que precisam saber ou entender a próxima porcaria, eu sempre os levei a sério. Mas em sete anos, não cheguei nem perto de igualar a maioria dessas declarações. Ao mesmo tempo, eu mesmo gerei esse absurdo. Ele também disse a seus colegas dessa maneira, tipo, se você não se incomodou em entender sólidos, não tem o direito de escrever código. Aparentemente, flatulência e perguntas frequentes estão anexadas ao seu primeiro IDE. Vi todo tipo de tabelas que descrevem o que tal e tal programador deveria saber - e me verifiquei contra elas. . , , , , . ? , . : - , , . — , , , . , — . , — .
, , , . , , , , , , . . , , //. , , . , , — , , — , , . , , , . , , — .