
Traduzido para você
um artigo de Chuck Groom , um programador com 18 anos de experiência, agora trabalhando como diretor técnico de uma grande empresa de Nova York. Chuck costuma procurar funcionários para sua empresa e, no artigo, conta quais qualidades e experiência um graduado de um bootcamp (assim como uma universidade ou cursos) deve ter para ser contratado.
Como diretor técnico da minha própria empresa de TI, costumo procurar novos funcionários. Costumo conversar com graduados de bootcamps que passaram 3-6 meses lá. A principal questão que lhes interessa é como obter o lugar de um desenvolvedor.
A Skillbox recomenda: Curso prático de dois anos "Eu sou um desenvolvedor Web PRO" .
Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".
Devo dizer imediatamente que o treinamento no bootcamp ou em outro lugar não é garantia de transformar um mortal comum em um programador experiente. Para se tornar um desenvolvedor, são necessárias milhares de horas de treinamento e prática independentes na criação de software. Sim, o bootcamp é um ótimo começo, mas você precisa continuar estudando.
Aqui está o que um programador iniciante que deseja iniciar uma carreira deve se concentrar:
- Escrevendo muito código enquanto trabalhava em um projeto. A tarefa que você gostaria de executar é a chave para o aprendizado rápido. Além disso, você precisa iniciar um repositório no GitHub, este é um portfólio e um argumento que permite dar um certo crédito de confiança a um iniciante.
- Aprendendo o básico, o básico da programação. Em primeiro lugar, durante uma entrevista, eles costumam estar interessados em saber se o candidato conhece a base. Em segundo lugar, é necessário que o próprio especialista entenda o que está fazendo.
- Networking. Você precisa se encontrar com colegas e potenciais empregadores, "vender" a si mesmo. Rede fraca muitas vezes leva a dificuldades em encontrar um emprego. E vice-versa, participar de conferências, hackathons, eventos para programadores permite não apenas se comunicar com os “irmãos em mente”, mas também estabelecer uma conexão com um possível empregador
.

Resolver problemas reais
Uma determinada tarefa que você se comprometeu a executar significa muito mais do que simples codificação "no vácuo". O ponto é que, se você estiver aprendendo alguma coisa, não faça apenas isso, tente aplicar seu conhecimento. Por exemplo, ajude a comunidade de código aberto a melhorar o projeto. Tudo o que você precisa no estágio de formação é escolher um projeto interessante, uma tarefa na qual você possa mostrar tudo o que é capaz. Tente criar algo único, não crie outro site com receitas.
Ao trabalhar em um projeto, publique os resultados no GitHub
Poste os resultados do seu trabalho no repositório aberto do GitHub. Não se preocupe, seu código é imperfeito, apenas tente torná-lo o mais legível possível (e, é claro, funcionando). Não se esqueça dos testes automáticos e da adição de leia-me bem escrito aos projetos.
Os empregadores geralmente avaliam os programadores pelo github. Eles querem ver exemplos de trabalho, e sua tarefa é dar a eles.
Uma idéia a fazer: criar uma habilidade para o AlexaIsso é útil para melhorar as habilidades de um programador e indicativo - porque essa habilidade estará disponível para todos. O desenvolvimento de módulos para o assistente digital da Amazon é, obviamente, um fator uau que pode atrair um empregador para você.
Você pode começar com um simples. Primeiro, você deve ver o que já existe. Em seguida, tente desenvolver sua própria habilidade, torne-a funcional e aprimore-a. Assim, você entenderá como o dispositivo IoT funciona, obterá uma experiência inestimável e o primeiro (ou segundo, terceiro) trabalho na sua conta do seu portfólio.
E você pode implementar algo para um potencial empregadorEsta é uma ótima opção. Se você deseja conseguir um emprego em uma empresa específica, tente fazer algo útil para isso. Por exemplo, quando eu trabalhava na Xmarks, um colega e eu entrevistamos um candidato a emprego, um cara que mostrou uma demonstração de um projeto que usava nossas APIs. O projeto foi interessante, percebemos que o candidato realmente tentou e, além disso, conhece o nosso produto, e o contratamos.
Aprenda o básico
Reserve um tempo para aprender o básico do desenvolvimento de software - estruturas de dados comuns, métodos de programação e conceitos. Com perguntas sobre eles, há uma chance no futuro de se encontrar em uma das entrevistas. Mas, mais importante, essas são ferramentas comuns que todo engenheiro de software deve ter em sua bagagem. Você deve entender claramente o que constitui um bom programa que funciona corretamente e rapidamente.
Estruturas de dadosVocê deve ser bem versado nas listas e nos dicionários da sua linguagem de programação escolhida.
- Quanto às listas, você deve saber:
- sintaxe para trabalhar com qualquer elemento da lista;
- sintaxe para obter o enésimo elemento de uma lista; conceito de índice e indexação 0;
- o princípio de classificar a lista é perceber que, se a lista for longa, pode levar algum tempo;
- diferenças entre matrizes e listas; pilhas e filas.
Para dicionários, os principais elementos do conhecimento são:
- A sintaxe para usar um dicionário para pesquisar e inserir
- o conceito de um par de chave-valor;
- busca por chave;
- casos de uso comuns: “pacote de atributos” para descrever coisas, tabela de consulta;
- a relação entre dicionários e JSON (serialização);
- o conceito de funções de hash (e como elas estão relacionadas aos dicionários);
- princípios para o uso de hashes criptográficos como o SHA-1.
Conceitos de programação
Existem muitos conceitos que você pode estudar. Mas o principal é a compreensão dos princípios de trabalhar com funções e longe de se familiarizar com a programação orientada a objetos e sua lógica.
Funções são os principais componentes dos programas. Existem muitas nuances de seu uso - desde uma boa seleção de nomes até a compreensão de qual função é melhor usar. Tudo isso vem com experiência.
Quanto à programação orientada a objetos, você precisa de:
- bem versado em instâncias e classes;
- não menos bom - em herança (subclasses);
- Saiba como definir uma classe usando o método de inicialização no seu idioma preferido.
- Esteja preparado para discutir encapsulamento, abstração e polimorfismo.
Bancos de dados (SQL)
Os ex-alunos do Bootcamp geralmente estão pouco familiarizados com os bancos de dados. Se isso se aplica a você, recomendo que você comece a explorar bancos de dados relacionais e SQL imediatamente. Além disso, tente configurar um banco de dados PostgreSQL ou MySQL no seu computador.
Lembre-se também de que o MongoDB não é SQL; portanto, o entrevistador nem sempre está interessado na experiência do banco de dados e pergunta sobre o MongoDB.
Entrevista de emprego
Aqui, as dicas serão gerais: vale a pena explorar os principais problemas que podem surgir durante uma entrevista na Internet. Além disso, junte forças com seus amigos e tente se entrevistar.
Trabalho em rede
A arte de interagir com as pessoas aumenta as chances de conseguir um ótimo lugar na empresa.
Um ponto importante para conectar um programador em rede, como eu disse, é o seu GitHub. Além disso, você deve ter uma conta atual do LinkedIn com muitos contatos. Eu uso o LinkedIn como meu próprio currículo, desta vez. Dois - com a ajuda dessa rede social, procuro as pessoas de que preciso. Bem, se você tem muitas conexões no LinkedIn, pode encontrar um grande número de especialistas, entre os quais haverá potenciais empregadores.
A Internet não é tudo. É importante deixar sua zona de conforto (não importa o quão estragada seja essa frase) e conhecer pessoas cara a cara. Participe de reuniões, aproxime-se de estranhos e apresente-se, além de conversar com pessoas de seu interesse. É bastante normal iniciar conhecidos com aqueles a quem você quer se conhecer. A principal lição de vida que aprendi é que você não deve ter vergonha de convidar alguém para tomar uma xícara de café, embora por alguns minutos.
Você ficará surpreso com a frequência com que o acaso e a boa vontade abrem portas importantes.
E o principal, é claro, é continuar estudando, melhorando sua experiência e conhecimento. Motivação é o que muitos empregadores procuram. Vendo um motivado, ainda que novato candidato a emprego, um líder experiente pode fechar os olhos para algumas das deficiências em termos de profissionalismo em prol do entusiasmo e vontade de aprender mais.
A Skillbox recomenda: