Sou um programador autodidata prestes a entrar no mercado de trabalho. O que eu quero saber é qual é a melhor maneira de mostrar minha experiência aos empregadores?
O que os empregadores querem saber sobre minha experiência em programação? Os empregadores querem ver o código que eu escrevi ou podem ver o software em ação? Ou eles se importam apenas com o quanto meu software está sendo usado / com o quanto ele criou receita? Devo escrever sobre meu estilo de design e programação?
Minha formação: recentemente me formei em uma universidade onde estudei línguas estrangeiras, e foi nesse período que descobri que a programação é a coisa que realmente quero fazer. Atualmente sou programador de garagem, desenvolvendo um software para um cliente para uso comercial, continuando a me autodidata, mas meu objetivo é iniciar um emprego e uma carreira "adequados". Como uma reviravolta, eu moro na Finlândia no momento, mas estou procurando emprego na China ou no Japão (aprendi os dois idiomas enquanto estudava no exterior).
Respostas:
Eu diria que os empregadores procuram essas coisas em todos os candidatos a programadores (isso vem da minha própria experiência como desenvolvedor chefe que está examinando os candidatos):
Capacidade de flexibilidade e aprendizado rápido de novas tecnologias (isso é especialmente importante para programadores autodidatas)
Capacidade de comunicar problemas
Capacidade de resolver problemas algorítmicos e logísticos (importante para programadores analistas)
Capacidade de estar em conformidade com os padrões e regras dos negócios locais, ie. Não fique muito atarefado, siga as convenções de nomenclatura da empresa em que trabalha.
Honesto e trabalho árduo.
Em muitos casos, as empresas maiores solicitarão que você forneça um exercício de candidato. Esses exercícios variam em dificuldade, mas um exemplo pode ser o código de um módulo reutilizável que converte uma quantia em dólares em uma sequência de texto legível em inglês que seria escrita em um cheque dessa quantia, ou seja. "$ 999,34" a "Novecentos e noventa e nove dólares e trinta e quatro centavos".
É importante notar que não é apenas o código que eles estarão vendo nesses exercícios, mas também a documentação que o acompanha, ou seja. documento que explica os problemas, as suposições e o algoritmo usado. Eles também examinarão suas convenções de nomenclatura (principalmente verificando a consistência) e verificando os comentários claros do código.
fonte
Uma pista
Sério, procuro apenas algumas coisas em um candidato:
Exemplos: graduado autodidata do ensino médio que resolveu 50 problemas de Euler: contratação fácil. MSCS com 4.0 GPA que não pode explicar a diferença entre o TreeMap e o HashMap: não contrate.
fonte
Outros já responderam à sua pergunta direta sobre candidatos autodidatas. No entanto, há outra consideração que pode ser ainda mais importante do que ser autodidata ou não. Estou falando das culturas dos países em que você planeja trabalhar e morar.
Primeiro, nunca escreva "emprego na China ou no Japão" . Parece "Finlândia ou Austrália" (sem ofensa). Eles são totalmente diferentes, e você tem que escolher.
Além disso, o emprego em outro país geralmente significa impostos mais altos para uma empresa, várias limitações (por exemplo, contratar um estrangeiro, contratar N nativos) e assim por diante. Portanto, para ser contratado na China, você precisa ser muito bom no que está fazendo .
De fato, você tem duas melhores opções:
fonte
Principalmente, você tem alguns. Coloque-se no lugar deles: se você estivesse contratando alguém, escolheria o cara que talvez não saiba o que fazer com um compilador, ou o cara que já passou pelo quarteirão algumas vezes, aprendeu a resolver problemas e pode obter alguns trabalho útil feito sem muitas mãos dadas?
Sim. Ter algum código para mostrar pode ser útil. Ter um produto funcional para mostrar e estar preparado para responder perguntas sobre como ele funciona, por que você fez dessa maneira etc. também pode ser útil. Empregadores diferentes valorizam essas coisas de maneira diferente, mas é sempre melhor ter algo do que não ter nada.
Muitas pessoas na China e no Japão falam chinês e japonês, respectivamente. Provavelmente não muitos que falam inglês e finlandês também fluentemente. Use essa força para sua vantagem - procure empresas que precisam dessas habilidades linguísticas.
fonte
Eu diria que as habilidades mais importantes que os programadores autodidatas podem carecer sem saber são as relacionadas à engenharia de software e arquitetura de software.
Saiba mais do que apenas escrever código, saiba o que é manutenção e como alcançá-lo; o que é o SOLID, por que é considerado bom e necessário; padrões de design, etc.
Além disso, tente corrigir quaisquer partes ruins do seu processo. Por exemplo: teste automatizado (algo que todos deveriam fazer!), Rastreamento de bugs, controle de revisão da fonte (também obrigatório). Esta lista não pretende incluir tudo, é apenas um exemplo.
fonte
Sim, essas são as melhores opções. As qualificações não são um indicador particularmente bom para a capacidade de escrever código. O mesmo se aplica aos empregadores anteriores - muitas pessoas podem trabalhar em um emprego para o qual não são adequadas. Quero ver que tipo de código você escreve e um histórico de poder criar coisas que foram colocadas em produção.
Isso está fora da sua área de responsabilidades, não me importo com isso, a menos que você esteja assumindo uma função de gerente de projeto ou superior.
Não é demais, mas talvez pontos de bala mostrando áreas de interesse com seus exemplos de código sejam úteis.
fonte
Habilidades de auto-aprendizagem
Sim, o auto-aprendizado é sua habilidade competitiva de ponta , que você deve enfatizar e apresentar com orgulho. Além disso, você deve mostrar sua paixão pela programação e desejo de auto-aperfeiçoamento.
Eles querem ver suas realizações e habilidades de raciocínio analítico. Eles querem ver - o que você fez que beneficiou o projeto, que papel (s) você desempenhou na execução de um projeto se trabalhou em equipe. Como você soluciona os problemas e supera os problemas técnicos. Como você trabalhou com faculdades, como lidou com a pressão do trabalho.
Alguns outros pontos que podem ser muito importantes para os empregadores:
fonte
Além das outras respostas - liste as ferramentas que você aprendeu enquanto ensinava a si mesmo.
Treinei graduados de escolas de grandes nomes com grandes títulos que insistiam em escrever código Java no bloco de notas do Windows e usar o compilador de linha de comando ('é melhor assim' - para um programa de uma classe). A maioria dos locais de trabalho usa IDEs e outras ferramentas de programação. E ensiná-los a usar o Eclipse foi mais fácil do que tentar ensiná-los SVN.
Ao listar um ou mais ambientes IDE ou (mais importante) uma ou mais ferramentas de repositório de código, você mostrará que está pronto para trabalhar com uma equipe.
Resposta B: se você puder chegar lá, experimente a feira CEBIT em Hannover, na Alemanha. Costumávamos receber pessoas visitando nosso estande pedindo emprego em nosso país. A probabilidade é baixa de encontrar a pessoa certa que pode ajudá-lo. Ou pergunte se eles precisam de uma pessoa local / da Europa para ajudá-los.
fonte
Depois de demonstrar que você escreveu um código de qualidade, como e onde você aprendeu a programar é menos importante. Você construiu o aplicativo inteiro, para poder explicar o design, os problemas que enfrentou e por que escolheu essas soluções.
Se a sua inscrição não for bem conhecida, você precisará fornecer mais explicações no seu currículo e cartas de apresentação. Ter um grande número de usuários é um benefício, pois mostra que você pode lidar com a escala, a receita gerada será difícil de adicionar qualquer benefício. Alguém poderia contratar um programador para criar uma aplicação usando horóscopos para ajudar cirurgiões cerebrais. Não tenho certeza se responsabilizaria o programador por este produto inútil. Talvez uma startup prefira um desenvolvedor com algum senso de produto, mas não pode se opor a você porque você precisa pagar suas contas.
fonte
Se os diplomas não estiverem disponíveis, as certificações conhecidas são uma vantagem. Algumas certificações não exigem um curso, você só pode fazer o exame.
Sua experiência de programação consiste em projetos. No seu currículo, você escreve suas habilidades. Na entrevista, você será perguntado sobre os projetos nos quais trabalhou. Depois, você falará sobre o que fez, quais problemas encontrou, as soluções que encontrou etc.
Talvez. Pessoalmente, não ouvi falar de empregadores pedindo para ver o código (além do código que você escreve durante a entrevista técnica, como teste). Se você é um web designer ou designer de interface do usuário, na maioria dos casos, eles desejam ver alguns sites que você criou ou projetou.
A maioria dos empregadores estará interessada nas linguagens de programação em que você codifica fluentemente, no conhecimento que possui e nas habilidades que adquiriu. Quanto o software é usado e a receita criada é material de marketing, não de programação. A maioria das empresas tem seu próprio estilo de design e programação. Eles esperam que um funcionário esteja familiarizado com técnicas como Agile, Scrum, Extreme, dependendo do que usar.
fonte