Sobre o papel das tarefas de teste na vida de um desenvolvedor

Quantas entrevistas técnicas você já teve na vida?

Nos últimos cinco anos, participei em 35 entrevistas técnicas de todos os tipos e especificidades imagináveis ​​– desde startups cazaques para a compra coletiva de carne para o inverno até serviços e bancos fintech alemães e americanos; com foco em programação, entrega e gestão; remoto e no escritório; limitado e ilimitado no tempo; estressante e relaxado, em diferentes idiomas.

Isto, juntamente com as cerca de 20 entrevistas que conduzi como empregador - um número suficiente para me tornar o rei das entrevistas para fazer a seguinte observação (inicialmente completamente não óbvia) e me estabelecer nela: Estou convencido de que em grande parte graças a tantas entrevistas, começa a parecer um hábito marginal, estudei meu stack a nível profissional e me tornei um especialista competitivo, apesar de já ter trabalhado em desenvolvimento web há 10 anos.

Este artigo é dirigido a programadores que estão no início de sua jornada e ainda não esgotaram a profundidade de seus conhecimentos. Nele, quero expandir a tese sobre os colossais benefícios educacionais das tarefas de teste e das perguntas técnicas feitas em entrevistas - e convidar a todos para meu bot de telegrama recém-escrito ActualizeBot, onde, de acordo com meu plano, você pode fazer uma entrevista técnica pelo menos todos os dias até o final. E para que não acabem, você também pode compartilhar uma tarefa técnica interessante, uma pergunta ou uma situação útil/divertida vivenciada durante uma entrevista.

Vou contar mais sobre o bot abaixo, vamos primeiro descobrir por que é tão importante saber e entender as respostas para essas questões e tarefas técnicas, mesmo que você execute projetos freelance com sucesso há anos.

Por que a qualidade do nosso conhecimento fundamental deixa muito a desejar?

Entrevistas técnicas, se você ainda não se tornou o rei das entrevistas, são um grande estresse para o corpo, assim como a busca por emprego em geral - seja você um especialista novato, um switcher ou um desenvolvedor que já trabalhou em um lugar há muito tempo (e no nosso tempo “longo” pode ser considerado um ano).

Em muitas entrevistas, há um fator humano que agrava esse estresse. Seu entrevistador pode não ser Alena Vladimirskaya, mas um programador comum, como você descobriu, de quem é difícil esperar tarefas adequadas e sua avaliação, ou um líder de equipe hardcore que esperará o momento para reduzir toda a sua severidade em seus olhos em você, fazendo a pergunta: O que é ágil para você!?

Um dia, sem dar a resposta necessária, mas, como você sabe, imprevisível a esta pergunta, fiquei sem uma oferta, o que me deixou extremamente feliz.

Ao tentar evitar esse estresse e movimentos desnecessários em geral, nos distanciamos não só da exposição ruidosa de nosso desconhecimento de algumas características básicas da língua, mas também de reduzir pelo menos um pouco esse desconhecimento.

O problema é que na prática existem poucos lugares onde podemos encontrar esta classe de problemas.
Qualquer desenvolvedor que tenha trabalhado em vários lugares confirmará que os problemas fundamentais ou criativos colocados nas entrevistas raramente têm algo a ver com o que um programador lida na vida real - sem recursões, gráficos e sistemas de controle de elevador assíncronos no planeta com negativo gravidade em outro braço da galáxia. Infelizmente.

Em relação ao meu JavaScript nativo, há um bom exemplo - se o React.JS não tivesse aparecido, 98% dos programadores de JavaScript continuariam a viver com sucesso na feliz ignorância do que é bind - mais de 20 anos após seu aparecimento - e continuariam ficar perplexo, recebendo perguntas sobre isso em entrevistas, e somente aqueles que inventam todas essas bibliotecas, frameworks e módulos altamente abstratos continuariam a trabalhar com ele. Hoje, graças à reação, esse número foi reduzido para o que parece ser 97%.

Obviamente, vendo o “isolamento da realidade” dessas tarefas, muitos desenvolvedores as ignoram ou perdem tempo mergulhando nelas - e continuam cumprindo sua rotina diária, ou seja, falando figurativamente, caminhando pelo campo minado do desenvolvimento para a produção não só sem detector de minas, mas também sem saber que estão num campo minado.

Quais são as consequências da falta de conhecimento fundamental de uma língua?

A resposta a esta pergunta parece banal, mas por alguma razão é da natureza humana sempre empurrar sua solução para o canto mais distante - e isso desempenha um papel triste na vida dos programadores juniores e médios, alongando seu caminho para as alturas (e profundidades). ) de conhecimento do idioma em alguns anos.

O código do aplicativo usando frameworks e bibliotecas que eles estão acostumados a escrever todos os dias não pode ser considerado confiável se eles o escreverem sem compreensão suficiente dos vários aspectos de sua execução. Uma boa ilustração disso no mundo do JavaScript é o destino da biblioteca JQuery, que já foi o motor do progresso e hoje, sendo um campo de conhecimento fechado em si mesmo, divorciado do resto da linguagem, ocupa seu lugar natural em o mercado - scripts semiprofissionais escritos às pressas e funcionando conforme necessário, como um presente para o mesmo layout rápido no bootstrap de freelancers baratos.

O futuro dos projetos desenvolvidos com uma abordagem tão irresponsável, ainda que por ignorância, é prosaico e de curta duração: perdas significativas de tempo inesperado, falhas, perdas financeiras e de reputação e, como resultado, uma diminuição do entusiasmo pela continuação cooperação.

Por outro lado, para quem escolheu o caminho de programador, pouco se compara ao prazer de entender o que está fazendo. Entendendo que ele, como o Barão Munchausen, está cavalgando por um campo minado. Escusado será dizer que um empregador decente pode ver claramente pessoas caminhando de forma imprudente por um campo minado e pessoas que estão congeladas na indecisão de dar um passo em uma situação em que podem correr e pular sem pensar em nada?

ActualizeBot

Tendo visto os benefícios das entrevistas, e também percebendo que ir para entrevistas em branco não é totalmente ético, pensei que seria ótimo criar um bot onde um iniciante ou um desenvolvedor que está transplantando para outro idioma pudesse se envolver em um treinamento educacional sem recorrer a entrevistas reais nessa medida, em que isso aconteceu comigo. E lembrando como os programadores adoram discutir e comparar problemas que tiveram que resolver - principalmente se fosse algo não trivial - percebi que tudo se encaixava, rejeitei todas as dúvidas e pronto.

O bot atualmente possui 3 funções simples:

  • Assinatura de uma determinada linguagem/framework para receber novas tarefas para ela. Você se inscreve e conforme as tarefas chegam, você as recebe na newsletter diária
  • Publicar uma tarefa ou tarefa de teste - No meu livro dizem que compartilhar é cuidar
  • Um excelente gerador de nomes com o qual você pode escolher a assinatura ideal para o texto da tarefa que publica, incluindo dicionários femininos, não sem feministas

Atualmente, as seguintes linguagens estão disponíveis para você escolher: JavaScript, Java, Python, PHP, MySQL. A seleção é um tanto limitada devido aos limites do meu entendimento. Espero aumentar esta lista com a ajuda da comunidade habra.

O bot é lançado em formato puramente rock and roll, não se espera pagamento por nada.
Você pode acessá-lo usando este link: ActualizeBot

Resumidamente sobre implementação técnica

Este bot é um dos vários pequenos projetos onde estou trazendo a primeira versão pública do meu miniframework open source para desenvolvimento de bots com uma estrutura complexa, carinhosamente chamado de Hobot e disponível em NPM para pessoas hardcore.

O framework é construído com base em Telegraf.JS e TypeScript, sua versão zero-zero-first, equipada com um exemplo de uso, pode ser visualizada em githabe e experimente imediatamente. Em breve farei o upload da versão 0.0.2, ampliada e penteada para uma pessoa de fora, e dedicarei um artigo separado a ela (o baú). Ficarei feliz se for tão relevante para alguém quanto é para mim.

Então, quantas entrevistas você teve que comparecer?
Tenho certeza que você tem algo para contar!

Fonte: habr.com

Adicionar um comentário