JavaRush /Blogue Java /Random-PT /Um guia para o futuro desenvolvedor Java. Entrevista e ca...
Fry
Nível 41
Львов

Um guia para o futuro desenvolvedor Java. Entrevista e carreira

Publicado no grupo Random-PT
Um guia para o futuro desenvolvedor Java.  Entrevista e carreira - 1 A Força é um rio do qual muitos podem beber, e o treinamento Jedi não é a única maneira de extrair dele." — Luke Skywalker Todas as seleções de livros são deixadas para trás. Cabe a você decidir quais deles ler e quais não. Agora você só tem um objetivo: conseguir um emprego e construir uma carreira sem pisar no ancinho. O último artigo está dividido em seções: - Antes do trabalho - Entrevista - Durante o trabalho Esta parte contém muito da minha opinião pessoal, então por favor não tire frases fora do contexto e trate-as como uma conversa franca com um velho amigo :).

Antes do trabalho

Abaixo estão os dez clichês mais populares que surgem quando a alma é atraída pela programação, mas certas circunstâncias interferem na pessoa. Minha tarefa é tentar acabar com sua desconfiança e prepará-lo para uma forma positiva de pensar. Se você está lendo este artigo, você está mais longe do que imagina! Mentalmente, você já está onde precisa estar e, se já leu alguns livros, já está na metade do caminho. Portanto, pare de duvidar - esse é o destino dos fracos. Só para a frente! Já está melhor? Então vamos! “Não tenho educação” Quando eu era completamente verde e entrei na academia de uma das grandes empresas de terceirização, os entrevistadores gentilmente me deram a entender que não estavam interessados ​​​​em um diploma, então as perguntas eram específicas - sobre OOP e básico Java. Claro, você encontrará vagas onde a disponibilidade de tecnologia. a educação será um requisito claro. Só quero dizer que a ausência dele não é um obstáculo nos dias de hoje. Muitos escritórios estrangeiros solicitam BS/MS em Ciência da Computação ou, atenção, experiência relevante. Não convincente? Você pode se sentir encorajado pelo fato de eu não ter formação técnica ;), mas isso não me impediu de forma alguma de ganhar experiência em grandes empresas. Pergunte-me agora, o que eu faria se pudesse rebobinar o filme? Claro, eu iria para o KPI/NAU, mas não ficaria muito triste se não conseguisse. Pare de se preocupar com isso. O tempo vai passar - você pode se formar aos 40 anos, se quiser - mas por enquanto, concentre-se em se tornar um desenvolvedor júnior aqui e agora. “Haverá pessoas mais inteligentes do que eu” Sempre haverá pessoas mais inteligentes, mais inteligentes, mais flexíveis, mais talentosas do que você, e qualquer trabalho não é exceção. Este fato não lhe dá absolutamente o direito de se desviar de seu objetivo. Talvez, em algum lugar do outro lado do globo, haja um garotinho do Japão que multiplica e divide números mais rápido do que você, e alguma avó da República Tcheca digita no teclado de um celular mais rápido do que qualquer adolescente. Mas você não pensa nisso, certo? Então, por que você deveria se preocupar com as pessoas com quem trabalha depois de ser contratado? Em alguns aspectos, seus futuros colegas serão superiores a você e, em outros, serão inferiores a você. Isto é bom! Nós riscamos. “Acho que não consigo” Bom, antes de mais nada, ninguém disse que seria fácil, mas isso não significa de forma alguma que seu objetivo seja impossível. Nada o impede de simplesmente tentar, mesmo que atualmente trabalhe como contador ou consultor de vendas. Venha depois do trabalho e sente-se para estudar. Se com o tempo você observar algum progresso, é um sinal de que está caminhando na direção certa. Não pare! Se você está pelo menos um pouco interessado nisso e isso lhe é dado, então não conheço um único ponto que possa me convencer de que você não é digno disso. "Estou dominado pela preguiça" A preguiça é simplesmente falta de motivação. Se você perceber que na maior parte do seu tempo livre, em vez de estudar e se manter no caminho certo, você está fazendo lixo estupidamente - apresso-me em avisar que, muito provavelmente, ser programador não é para você. Pelo menos não agora. Alguns chamam a preguiça de pecado, de doença, de cólera da era moderna junto com obesidade. Deixe esse assunto para os histéricos profissionais. Na minha opinião, tudo nesta vida está imbuído da ilusão de luta e competição: quem é mais alto, quem é mais forte, quem é mais rico. Quem tem carro mais bacana, quem no time tem salário maior, quem faz supino mais pesado na academia, qual das meninas se casou mais cedo e teve filhos - isso te deixa doente, como um fast food fedorento. As pessoas deixaram de viver e aproveitar a vida, de seguir seus sonhos, trocando sua zona de conforto pela escolha entre Pepsi e Coca-Cola. Para mim a preguiça é boa, é simplesmente maravilhosa. Esta é uma função protetora comum do seu corpo para economizar energia e tempo em coisas que são inúteis para ele. O homem foi criado para ser livre, então se você é preguiçoso, pare de tentar levantar a bunda do sofá - talvez agora ela esteja no lugar :). “Estou indo para lá por causa do dinheiro” Se você reunir desenvolvedores e disser: de agora em diante seu salário será de 3 a 4 mil hryvnias para qualquer nível, e os testadores continuarão recebendo as mesmas taxas, então a questão será diferente: não quantos é uma bomba, mas quantos programadores permanecerão programadores após esta notícia. Muitas pessoas entram em TI por causa do dinheiro. Salário traduzido em dólares, queijo e uma DSLR cara. Por mais que eu trabalhasse com pessoas, sempre havia conversas sobre isso. Não estou dizendo que isso seja ruim, só quero que você não tente se convencer de que está vindo com propósitos puramente espirituais para mudar o mundo para melhor. Antes de conseguir um emprego como júnior, eu sabia quais eram os salários dos seniores, dos líderes técnicos e até dos gerentes de nível médio, e esses pensamentos apenas me inspiraram: na época antes de trabalhar como programador, eu só podia sonhar com esses números. Chame essas coisas pelos seus nomes próprios e pare de ter vergonha disso. “Parece-me que isto não é meu.” De quem então? Você sabe, é fácil verificar. Abra o primeiro volume de Hortsmann e comece a ler e escrever código a partir dos exemplos. Se você não está entediado e não está marcando o mesmo capítulo para a segunda semana, deixe de lado suas dúvidas. Estudar especialidades técnicas é uma coisa sequencial. Você não pode passar para B sem conhecer A, mas sempre terá a chance de voltar um capítulo e fortalecer sua base. Vá em frente. “Há muitos como eu” Sempre há competição por uma vaga. Não discuto, por exemplo, agora existem 300-400 testadores sem experiência, ou até mais por local. Sim, esta é a amarga verdade, mas, por outro lado, mesmo com tais indicadores não consigo encontrar um ponto suficientemente sério. Sim, pelo menos 100.500 por local!! Você sempre tem a oportunidade de ganhar experiência em seus projetos: construir algum tipo de serviço, um programa desktop, usar todo o stack que você conhece - e você já está avançando, enquanto o resto, além de enviar seu currículo, faz nada mais. “Ninguém responde ao meu currículo” Continuação do ponto acima. Muito provavelmente, para futuros especialistas em TI sem experiência, saber escrever um currículo bonito é bom, mas quando há muita gente para uma vaga, muitos currículos são muito parecidos entre si: você, claro, pode enviar uma foto com decote (se for menina) ou escrever muitas tecnologias, que você só conhece na Wikipedia. Em ambos os casos, o RH simplesmente não se importará: se a vaga do projeto incluir uma pessoa que, por exemplo, conheça AWS, então eles procurarão AWS no currículo. Leve em consideração outro ponto importante, como as recomendações dos colegas. Essa é a dor de quem não tem esses conhecidos, porque a maior parte dos juniores é tirada de lá (se a pessoa for recomendada - não é um idiota, claro). Normalmente, para o cargo júnior, contratam, enfatizo, uma pessoa adequada, ativa e pronta para aprender e até para se alimentar. E se tal candidato falhar, provavelmente você será o próximo. Bem, enquanto o resto está sendo entrevistado, você tem muitas áreas onde pode melhorar suas habilidades: código aberto, tarefas na Internet e talvez freelancer. “Não vou passar na entrevista/Quero ingressar em uma empresa específica” Sim, muito provavelmente, a primeira entrevista será um fracasso, mas a experiência que você ganhará não tem preço. A cada entrevista subsequente, você se tornará mais confiante e engenhoso. Ainda me lembro do meu primeiro... Deus, que bobagem eu estava falando?! Foi uma pena ir embora depois disso (lembrei-me daquele ghoul que sorriu na minha cara), mas quando cheguei em casa e pensei sobre isso, percebi que era uma lição maravilhosa. Depois dele, todos os eventos subsequentes foram imbuídos de facilidade e confiança. Ninguém morreu, estão procurando gente como eu, o que significa que irei subir. Acredite em si mesmo! Se você deseja ingressar especificamente em uma determinada empresa, então acho que não vou lhe contar um hack de vida que é popular em nosso ambiente, mas ainda assim: antes de organizar uma reunião com esta empresa, faça uma entrevista com os concorrentes. Talvez lhe seja oferecido algo que você não pode recusar ou as condições sejam mais difíceis. De uma coisa eu tenho certeza: você não vai se arrepender. “Também me sinto bem neste trabalho” Você sabe, há um velho ditado: Le mieux est I'enneini du bien (“O melhor é inimigo do bom”). Talvez o seu trabalho não seja o pior lugar para se estar, mas sim, o chefe é um idiota, e daí? Ou, por exemplo, o terceiro ano sem bônus, mas com salário estável, principalmente porque já tenho mais de 30 anos. Até certo ponto, isso pode ser verdade, basta lembrar que você tem uma vida, e ela não deve ser desperdiçada. decepções, para conforto imaginário, quando há tantas coisas interessantes por aí, e toda a sua vida não é suficiente para entender. Não tenha medo de ser melhor, não tenha medo de ser o melhor. Não dê ouvidos a ninguém, vá em direção ao seu objetivo com persistência se você sabe que é isso que você realmente quer fazer. Não tenha medo de mudar!

Entrevista

De modo geral, você pode encontrar tudo isso na Internet ou perguntar aos seus amigos, mas acho que não será supérfluo. Abaixo está um exemplo de entrevista para um desenvolvedor Java júnior, como seria agora se eu fosse o entrevistador. As perguntas podem ser qualquer coisa, só tentei coletar algo mediano sobre o hospital. Vamos imaginar que você tem sorte. Esquema padrão Passo 1. Uma recrutadora liga para você e você marca uma entrevista com ela, por exemplo, amanhã às 11h. Passo 2. Você chega mais cedo, já que 11h provavelmente não é o horário para você, mas sim para os desenvolvedores, que reservaram algum tipo de sala onde irão torturá-lo. Seria uma boa prática para qualquer recrutador alertar sobre isso. Passo 3. Na verdade, a partir do passo 3, todos os pontos podem se confundir, pois as entrevistas podem ser diferentes. Por exemplo, aqui você pode ser questionado sobre coisas básicas, de onde você é, por que está aqui e assim por diante. É possível que o próprio RH faça isso e, claro, é possível que em inglês. Na verdade, depende da empresa. Passo 4. Você é convidado para uma sala de reunião, onde terá uma conversa com uma, duas, três pessoas, uma das quais será um sênior ou um líder técnico que trabalhará com você no futuro, entre os demais. pode ser um Scrum Master, outros desenvolvedores ou RH. Eles entrevistam você por um tempo, depois apertam sua mão e deixam você ir. Passo 5. Talvez seja no dia seguinte, ou talvez imediatamente após o passo 4 - você terá uma conversa com o cliente estrangeiro (se houver), ou talvez ele mesmo conduza a entrevista. Como você pode ver, existem muitas opções. Em algum lugar há clientes, em algum lugar também há uma entrevista por telefone. Este é apenas um exemplo. Exemplo de entrevista técnica para um desenvolvedor Junior Java Sinto muito pelos subdesenvolvedores que leem algo inteligente com o objetivo de se afogar/esmagar/se exibir na frente do candidato na entrevista. Se você vir uma pessoa assim na sua frente e sentir pressão e tensão da parte dela, mande-a imediatamente para três divertidas, pois após a conclusão bem-sucedida você terá que trabalhar com esse idiota. Não desperdice seus preciosos nervos. A entrevista, antes de mais nada, deve ser realizada com o objetivo de saber o que o candidato sabe, e não o que ele não sabe. Naturalmente, se você precisa de uma pessoa que saiba algo específico, pergunte a ela, não a incomode com coisas inúteis que você não utiliza no projeto. Afinal, seja humano! Abaixo estão perguntas aproximadas que podem surgir em uma entrevista. 5 perguntas para cada tecnologia. POO 1. Dê um exemplo real de polimorfismo? Quais são as vantagens? Imperfeições? Escreva algum código simples. 2. O que é uma interface? Classe abstrata? Por que precisamos de interfaces se podemos escrever tudo estupidamente nas aulas (uma pequena provocação)? O mesmo vale para a classe abstrata. Quais são os métodos padrão em Java 8? 3. Construir uma hierarquia de classes usando um exemplo específico de banco de dados ou programa imaginário (há uma lista de diferentes classes de trabalhadores no banco de dados) e a interação entre eles (agregação, composição). 4. Como a composição difere da agregação (é-a, tem-a)? 5. Como você pode contornar a proibição de herança múltipla em Java? JDK/JRE 1. Qual a diferença entre o JDK e o JRE? O que é JVM? 2. O que é classpath e para que serve? Como, por exemplo, carregar outras classes no classpath? 3. O que você sabe sobre o carregador de classe? 4. Conte-nos sobre o javadoc? Para que serve? 5. O que é JAR, GUERRA? Java Common 1. Qual é a diferença entre métodos estáticos e não estáticos? O que é definitivo? 2. O que é boxe-unboxing? byte b = 127, b++, qual é o resultado e por quê? 3. O que são invólucros e para que servem? 4. O que preciso fazer para criar minha anotação? O que é substituição/sobrecarga? 5. Por que a classe String é final? O que o método intern() faz? Estruturas de dados 1. Explique a estrutura da API de coleções em Java? Você já trabalhou com a API Stream? 2. Qual é a diferença entre ArrayList e LinkedList? Onde é melhor usar ArrayList e onde está LinkedList? 3. Conte-nos como funciona o HashMap? Quais são os recursos de trabalhar com TreeSet, HashSet? Você tem experiência com coleções Guava? 4. Arrays em Java, exemplo de array bidimensional. 5. hashCode, é igual a usar HashMap como exemplo? Simultaneidade 1. O que é um processo? Fluxo? Como criar um tópico? O que é sincronizado? Como entender este ou aquele pedaço de código thread-safe? 2. O que é Thread.sleep e também esperar, notificar, render? 3. Dê um exemplo de impasse? 4. Coleções ao trabalhar com multithreading. 5. Operações ThreadLocal e Atomic SQL/JDBC 1. Usando um exemplo específico, obtenha do banco de dados de Usuários aquele cujo salário é maior que 5000. 2. Exemplos INNER JOIN, OUTER JOIN, Order By, Group By. 3. Por que você precisa de um driver JDBC? Exemplos. 4. Conte-nos tudo o que você sabe sobre ResultSet, alguns exemplos. 5. Escreva um DAO simples usando RS. JPA/Hibernate 1. Quais são as desvantagens e vantagens do JPA? 2. O que é EntityManager? Entidade? 3. Critérios em JPA/Hibernate. 4. Um para um, muitos para muitos no JPA/Hibernate 5. Como você faria um JOIN no Hibernate? HQL? Primavera 1. O que é DI/IoC? Vantagens. 2. O que é contexto de aplicação? Feijão? 3. Quais são os tipos de inicialização do IoC? 4. Singleton, protótipo na primavera? Spring baseado em anotação? 5. Ciclo de vida do feijão? Método de inicialização, método de destruição? @PostConstruct, @PostDeploy? Maven 1. Principais fases do maven, ciclo de vida. 2. Como executar o maven com testes, sem testes? O que é arquétipo, dependência mvn? 3. Perfis no maven, como criar, como lançar. 4. O que é instantâneo no maven? Repositórios centrais/remotos? 5. Plugins no mvn, como funcionam, alguns exemplos. Algo 1. O conceito de algoritmo, sua velocidade, Big-O-Notation. 2. Como encontrar o elemento intermediário no LinkedList de uma só vez? 3. Escreva uma pilha primitiva? Qual é a diferença entre Pilha e Fila? LIFO, FIFO? 4. Classificação rápida, classificação por mesclagem. 5. Escreva um programa que verifique se um número é um palíndromo. Concordo, talvez a barra esteja um pouco mais dobrada para o meio do que a júnior, mas acho que essa preparação com certeza não vai te machucar. Tente se aprofundar em cada questão. A propósito, muitas áreas em Java não estão indicadas aqui, leve-as em consideração.

Durante o trabalho

Aqui estão algumas pequenas recomendações para os desenvolvedores juniores/médios que já se estabeleceram. Essas dicas simples podem ajudá-lo assim como me ajudaram. Não seja teimoso. Pare de tentar provar seu ponto de vista, mesmo que esteja tentadoramente próximo da verdade. Você já percebeu que está discutindo há muito tempo, o que significa que do outro lado das barricadas está um burro comum que só tem duas opiniões na vida: a dele e a errada. Temos um número incrivelmente grande de pessoas teimosas que se mantêm firmes até o fim, apenas para que seu ego não seja abalado. E estes não são apenas seus colegas, eles estão simplesmente em toda parte - no microônibus, na loja, parentes, amigos próximos - você não pode fugir ou se esconder deles. Você precisa interagir de alguma forma com eles, mesmo que entenda que a pessoa está falando bobagens abertamente. Além disso, a mesma coisa pode acontecer com você. Concordo, coisas simples podem ser explicadas até para uma pessoa teimosa, mas e se estivermos falando de questões arquitetônicas em um projeto ou opinião pessoal? Esqueça esse lixo – seja flexível. Tenho muito respeito pelas pessoas que admitem que cometeram um erro na frente de todos. Essa é justamente a qualidade que será útil para você como especialista júnior - é difícil entrar em confronto com uma pessoa aberta, principalmente quando ela admite que está aprendendo e tem o direito de cometer erros. Não se atrase Não importa se é período probatório ou apenas uma sexta-feira, quando todo mundo esquece e chega às 11. Outra coisa é importante: a pontualidade é uma característica de um profissional que ganha pontos extras para si do nada . E pontos extras não farão mal a uma pessoa sem experiência, certo? Tente não se atrasar e saia do trabalho depois de trabalhar honestamente por 8 horas. Não abuse das estimativas Infelizmente, esta é uma situação muito comum em que já me meti no passado. O desenvolvedor definiu de 8 a 16 horas para concluir a tarefa e a concluiu inesperadamente em 3 a 4 horas. Ele passa as horas restantes em seu tempo pessoal praticando tênis de mesa, como foi o meu caso, ou assistindo YouTube e outros entretenimentos. Do ponto de vista jurídico parece que concordamos, mas do ponto de vista humano você está se privando de coisas muito importantes: 1. Você está parado, porque está preenchendo seu tempo extra com coisas desnecessárias; 2. Você não está se desenvolvendo porque não informa sua gestão sobre seu rápido progresso, ninguém sabe que você está concluindo tarefas mais rápido do que o esperado; 3. Você começa a superestimar constantemente o tempo médio dos valores, isso é apenas um caminho para lugar nenhum. Reserve um tempo para estudar A chance de ficar para trás em relação à locomotiva é absurdamente alta, então tenha em mente que a tecnologia e novas versões estão se desenvolvendo muito rapidamente. Assine os evangelistas Java de nossos dias, leia resumos de Java e, em geral, tenha interesse em aprender coisas novas. Isso o ajudará a manter sua marca e se desenvolver. Ajude outros Não tenha medo de ajudar os outros, mesmo que eles sejam tão verdes quanto você. Em primeiro lugar, você fortalecerá muito o seu conhecimento e, em segundo lugar, ganhará respeito aos olhos dos outros e, ao mesmo tempo, eles o ajudarão. Nesse ambiente nascem as melhores equipes e um crescimento técnico e pessoal muito rápido. Praticar esportes. Tenha um hobby Não, sério. As pessoas que praticam exercícios não apenas parecem e se sentem melhor, mas sua função cerebral também é melhor! Escoliose, região lombar, excesso de peso, diversos problemas de órgãos internos - ficar sentado diante do computador o tempo todo, mesmo fora do trabalho, contribuem para isso. Se você não pode praticar esportes (o que duvido), use pequenos truques: trabalhe em pé de vez em quando, desça duas paradas antes e vá a pé para o trabalho. E em geral, ande mais. Também existe o risco de esgotamento se a programação ocupar muito mais tempo do que 40 horas por semana. Os hobbies pessoais virão em socorro - por exemplo, fotografia, música, etc. Reserve tempo para a espiritualidade regularmente. Equilibre sua vida pessoal Quando sua namorada/esposa diz: “o laptop ou eu”, você precisa pensar bem sobre o lugar que a programação ocupa em sua vida. Por outro lado, ao iniciar sua jornada em TI, você precisa explicar claramente ao seu parceiro que agora você precisa estudar muito para conseguir mais. Espero que eles entendam. Pois bem, procure equilibrar e distribuir seu tempo corretamente. Vá além Seja proativo, se você sente, por exemplo, que pode compartilhar conhecimentos ou ter temas interessantes, por que não organizar pequenos cursos dentro da empresa para outras pessoas? Não tenha medo de participar de grandes projetos de código aberto se souber como pode ajudar. Se você quer escrever um jogo, um projeto social ou outra ideia - faça, faça, faça! Não fique parado, procure sempre formas de se desenvolver. Seja competitivo Acompanhe as novas tendências, fique atualizado com as tendências que estão acontecendo na comunidade Java. Por exemplo, não fará mal se você ocasionalmente, de vez em quando, monitorar as vagas de Java no DOU, mas não para fugir do trabalho, mas para saber quais tecnologias continuam relevantes e quais estão desaparecendo lentamente do mercado . Procure também fazer cursos no Coursera, Udacity, etc., explore novos horizontes. E até inglês: experimente assistir seus filmes/séries favoritos no original com legendas para melhorar sua fala, baixe alguns aplicativos interessantes para aprender o idioma (por exemplo LinguaLeo) e, no final, faça cursos.

Conclusão

Bom, meu pequeno projeto no DOU está chegando ao fim. Queridos amigos, desejo sinceramente que vocês consigam um emprego e espero que tudo o que descrevi nestes 7 artigos seja um guia valioso para vocês, mesmo para quem já trabalha como desenvolvedor Java. Futuros juniores, lembrem-se de que nada é impossível e, se vocês realmente se esforçarem, certamente terão sucesso. Quero que você finalmente decida se é para você ou não, desenvolva um plano de treinamento detalhado e siga-o com calma. Não fique chateado se receber silêncio em troca - tudo isso é temporário, o principal é acreditar e em nenhum caso se desviar do curso, mas sim estudar, estudar e estudar novamente. Gostaria de agradecer imensamente à equipe do DOU por editar grande parte do material e me dar horário nobre às segundas-feiras. DOU é uma comunidade legal que deixou de ser apenas um site para especialistas em TI ucranianos. Gostaria também de agradecer a todos os comentaristas que leram meus artigos na diagonal e interpretaram frases fora de contexto. Sem você os artigos não pareceriam tão interessantes :) Que a Força esteja com você! Artigo original retirado do DOU
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION