Terceirizando o desenvolvimento de back-end Java por três anos, como lidar com a entrevista depois de dois meses pulando de emprego no final do ano?

Prefácio

Tome a entrevista em java como exemplo. O foco de cada ano é diferente. Pode haver tecnologias que você não usou nos requisitos de recrutamento, como RPC, springboot, docker, etc. Se você for para uma entrevista em 2 meses, sua empresa favorita possui uma tecnologia que você não utilizou nos requisitos de recrutamento, e você não sabe que perguntas o entrevistador fará sobre essa tecnologia. Existem muitas novas tecnologias surgindo a cada ano, mas a maioria delas pertence a estruturas de programação para áreas de aplicação específicas. Por exemplo, várias estruturas de programação da Web há dez anos, estruturas de middleware há dez anos, estruturas de aprendizado profundo nos últimos anos e assim por diante. Para dominar rapidamente uma técnica, o conteúdo que precisa ser aprendido é dividido em duas partes: conhecimento do domínio e estrutura, e alguns exemplos são necessários para praticar com base nisso. O conhecimento de domínio é universal neste campo e pode ser usado até mesmo em uma estrutura diferente. O conhecimento do framework é o encapsulamento do conhecimento do domínio, o que é conveniente para a programação.

O editor aqui resume um método de aprendizagem, desde que você não esteja muito familiarizado, usar este método por dois meses é o suficiente para aprender muitas técnicas, e é o tipo que você pode aprender e usar. Deve-se notar que este método é eficaz para a maioria das tecnologias (como java, spring, Redis, rede, sistema operacional, etc.), mas não é eficaz para algoritmos, estruturas de dados e padrões de design que requerem o acúmulo de dados básicos habilidades.

1. Organize um mapa mental

Acesse a Internet para encontrar uma lista detalhada de perguntas da entrevista, como as do departamento de Ali. Em seguida, tente responder um por um, verifique as informações se não, e organize-as em um mapa mental enquanto responde.

O mapa mental não precisa ser muito detalhado e não existe um formato fixo, apenas pareça confortável por conta própria.

  • Por que a memória da JVM deve ser dividida em nova geração, geração antiga e geração persistente? Por que a nova geração está  dividida em Éden e Sobrevivente?

  •  Por que é dividido em Éden e Sobrevivente? Por que deveria haver duas áreas de Sobrevivente?
  • Você sabe quais tipos de coletores de lixo, suas vantagens e desvantagens, destaque alguns dos cms mais baixos e G1 , o pacote  inclui os princípios, processos, pontos fortes e fracos:

  • Quanto você sabe sobre o conhecimento relevante do modelo de memória JVM , como reordenamento, barreiras de memória, acontecer antes , memória principal, memória de trabalho:

  • Basta falar sobre o carregador de classe que você conhece, ele pode quebrar a delegação dos pais e como quebrá-la:

  • Como imprimir informações da pilha de threads:

  • Qual é a diferença entre referência forte, referência suave, referência fraca e referência fantasma?

O acima é um mapa mental coletado pelo editor para programação simultânea. Se você precisar de um mapa mental detalhado e das perguntas reais da entrevista, pode clicar em mim para obtê-lo .

2. Colete algumas perguntas de entrevistas reais de grandes empresas para responder às suas próprias perguntas

Em seguida, reúna algumas perguntas da entrevista. Coletei alguns artigos de entrevistas aqui. Quem quiser ler pode clicar para descobrir!

Você corrigiu todas essas perguntas da entrevista Java que os principais fabricantes de entrevistas de programação de rede multi-threaded JVM devem fazer?

Quer ser um programador entre dez mil famílias de yuans? Esses pontos técnicos básicos do MySQL devem ser compreendidos!

O livro de entrevistas JAVA de dentro da Ant Financial saiu inesperadamente! 【Coletado】

Perto da Double 11, demorou dois meses para ganhar a oferta de Dachang e mudar para o Alibaba.

Depois de responder a todas as perguntas da entrevista, você obterá um mapa mental aproximado para esta técnica. Em seguida, continue a escrever mais novas perguntas para verificar as deficiências e o mapa mental ficará mais completo.

3. Constantemente repetir e consolidar pontos de conhecimento

Depois de ter um mapa mental, você fica repetindo o conteúdo do mapa em seu cérebro.

Você deve usar uma linguagem específica para expressar os pontos de conhecimento, assim como ensinar outras pessoas, apenas silenciosamente. Esta etapa é mais importante. O nome científico é Little Yellow Duck Learning Method. Somente expressando pontos de conhecimento em uma linguagem específica você saberá quais são suas ambigüidades.

Depois de algumas vezes, uma sólida " memória de cristal " será formada (não preciso do Baidu, é um vocabulário inventado por mim).

4. Aprofunde a espessura da tecnologia

Cada vez que me lembro, me aprofundo nas partes que não entendo, tento entender os princípios subjacentes e atualizo o mapa mental, de modo que o entendimento da tecnologia se torne gradualmente mais profundo.

Esta etapa também é muito importante, permanecer na tecnologia de superfície não o ajudará a obter uma boa oferta.

5. Saia e instale o X

Depois de entender o mapa mental e ter uma certa profundidade, vá para a entrevista.É muito provável que você engane o entrevistador e pense que é um rei oculto. Usei esse método para aprender Redis desde o início até o nível de origem, e os entrevistadores da Ant Financial foram prejudicados por mim.

O que diabos é memória de cristal? Minha sensação é que um sistema de conhecimento foi completamente absorvido pelo cérebro e comprimido em um cristal. Quando você estiver neste estado, pensará que o sistema de conhecimento é um pouco maior, mas quando você realmente expandir suas memórias, descobrirá que existem tantas coisas dentro, e todas elas já estão dominadas.

Golpes de ferro também precisam ser duros por si mesmo (este método não é adequado para todos)

Você também precisa passar a ferro muito, para usar este método rápido é preciso primeiro ter um bom alicerce, caso contrário não conseguirá persistir na etapa de estudar a solução das perguntas da entrevista, por não entender os princípios. Você nunca pode passar em uma entrevista por memorização mecânica.

Guarde esses mapas de conhecimento, eles são sua riqueza. Depois de conseguir um emprego, é melhor pegar um galho para revisar todos os dias. Quando o inverno profundo está congelado, espero que os produtores de código na parte inferior da cadeia alimentar mantenham suas armas sempre afiadas e sejam fortes o suficiente para resistir aos riscos .

Esse método é universal, e estou usando-o para aprender conhecimentos financeiros, e o efeito não é ruim.

Método de aprendizagem do pequeno pato amarelo

Na terceira etapa, precisamos repetir o conteúdo do mapa mental para obter um entendimento completo.Este é, na verdade, o método de aprendizagem do patinho amarelo.

Resumindo, é explicar o conhecimento para outras pessoas, como um patinho amarelo de brinquedo. . . A melhor maneira de testar se você compreende totalmente um conhecimento é ensinando um patinho amarelo.

Este método é baseado na neurologia. Pelo que eu sei, o cérebro humano é muito bom em encontrar uma explicação razoável para coisas irracionais, que é o chamado suplemento do cérebro .

Para o processo de pesquisa específico, você pode olhar os registros experimentais de algumas pessoas com cérebro dividido. Quando emoções negativas aparecem no cérebro direito, o cérebro esquerdo não sabe o que aconteceu (porque o canal de troca de informações entre os cérebros direito e esquerdo é corte), mas o cérebro esquerdo acabará por compensar. Uma explicação "razoável", e acredito que é um fato, mas esta explicação está realmente errada.

Portanto, quando você aprende um ponto de conhecimento, seu cérebro produzirá a ilusão de que "eu aprendi completamente".

No entanto, ao tentar explicar este ponto de conhecimento a outras pessoas, você descobrirá que na verdade existem muitos pontos inexplicáveis.Esta situação ocorrerá basicamente 100%.

Além disso, na prática de programação, o uso desse método pode solucionar falhas rapidamente, compreender códigos complexos e assim por diante.

Por exemplo, se você não entende a lógica de negócios ou os detalhes de implementação por trás de um trecho de código, pode tentar usar algumas frases para descrever com precisão a função e a implementação desse trecho de código. Se você pode fazer isso, você já entendeu.

Não pense que isso é um ato supérfluo.O cérebro humano não pode ficar acordado o tempo todo. No desenvolvimento real, nosso cérebro não usa a linguagem natural para processar o código, mas conduz diretamente a lógica e o pensamento abstrato. Isso produziu muitos suplementos para o cérebro . É muito provável que sua compreensão do código esteja errada e muitas pessoas devem encontrá-lo com frequência.

Este método parece um pouco estúpido, mas na verdade é muito útil.

 Sobre pensamento estruturado

Depois de jogar Zhihu por quase 6 anos, finalmente recebi uma ótima resposta, então vamos conversar sobre isso.

Antes, usávamos alguns meios de pensamento estruturado (mapeamento mental), mas isso é apenas a ponta do iceberg. Para os programadores, ter bons hábitos de pensamento estruturado aumentará significativamente a produtividade, e seu efeito é maior do que o método de aprendizagem do patinho amarelo.Eu já verifiquei isso muitas vezes em mim mesmo.

Você pode pesquisar por "pensamento estruturado" em Zhihu para um estudo aprofundado, e há muitas respostas excelentes. A seguir, falarei apenas sobre várias formas de pensar que costumo usar e sua implementação na programação.

Método 5W1H

Há muitas pessoas neste método. Aqui, apresentamos principalmente como realizar a análise 5W1H na prática de programação. Quando você encontrar um problema ou demanda, siga as etapas abaixo para analisar:

  1. Escreva uma lista, cada item é o quê, por quê, onde, quando, quem, como
  2. O quê: em algumas frases, descreva exatamente qual é o cerne do problema e qual é a natureza do requisito. Este é o programa geral, para garantir que você não irá errar no trabalho de acompanhamento.
  3. Motivo: descreva por que você deseja fazer isso em uma ou duas frases. Isso garante que o que você está fazendo é significativo e que seus objetivos estão corretos.
  4. Onde: Análise estática do problema na dimensão espacial. Em um nível macro, quais componentes estão envolvidos no problema; em um nível micro, quais classes, métodos, configurações, etc. estão envolvidos no problema. Em princípio, você pode jogar quaisquer fatores relacionados ao espaço nesta cesta e, quanto mais abrangente for a análise, melhor.
  5. Quando: Analisa problemas dinamicamente na dimensão do tempo. No nível macro, como os componentes se comunicam entre si; no nível micro, quando o código acima é acionado e assim por diante. Em princípio, você pode adicionar quaisquer fatores relacionados ao tempo nessa cesta e, quanto mais abrangente for a análise, melhor. Onde e quando costuma haver fatores sobrepostos, isso não importa, você pode colocá-los onde quiser.
  6. Quem: Analisa o problema na dimensão do relacionamento do personagem. Geralmente essa etapa é mais intuitiva, basta relacionar as pessoas envolvidas no problema, o relacionamento entre as pessoas e as responsabilidades de cada pessoa. Dessa forma, você pode encontrar a pessoa certa quando encontrar algo.
  7. Como: Use uma lista para descrever como fazer isso. Esta etapa é, na verdade, um resumo. Combine os fatores das cinco dimensões anteriores para encontrar uma solução de alta qualidade e que economize mão de obra e, em seguida, implemente-a de acordo com a solução.

A maior vantagem do método de pensamento 5W1H é que ele força você a pensar em múltiplas dimensões . Como eu disse antes, nossos cérebros gostam de suplementos cerebrais. Se não pudermos analisá-los um por um, nossos cérebros se envolverão em vários pensamentos pulosos, que acabarão por perder muitos fatores. Em um projeto um pouco mais complicado, você pode nem saber o que é o kernel necessário, não me pergunte como eu sei disso.

Método de ligação

Um método que eu mesmo resumi é realizar uma análise causal linear no programa. Quer se trate de um sistema single-threaded, multi-threaded ou complexo, do ponto de vista estático, o programa é linear, que é a base deste método. Passos específicos:

1. Forme um link

Ao encontrar um problema ou demanda, primeiro use o método 5W1H para análise multidimensional e, em seguida, classifique os fatores na cesta Onde de acordo com os fatores Quando e vincule-os um por um. Se você conhece o suficiente sobre seu trabalho, esta etapa deve ser mais rápida.

2. Analise o link

Realize análises diferentes de acordo com o tipo de problema que você encontrar:

  • Se você estiver encontrando um problema de solução de problemas, observe cuidadosamente cada nó do link, verifique e deduza dos nós mais prováveis ​​com base no contexto do problema e estreite o raio do problema até encontrar o problema. Na verdade, muitas pessoas fazem isso ao solucionar problemas.
  • Se você encontrar a necessidade de mudar a montanha de merda ancestral, então você precisa procurar o nó Taiji no código ao realizar a análise de link. O chamado ponto Taiji é a parte chave que pode ser expandida com pequenas dimensões. Todos nós sabemos que quanto mais o código ancestral é alterado, mais fácil é errar. Por uma questão de segurança, devemos tentar o nosso melhor para controlar o escopo das mudanças. Encontre esses pontos de Taiji, você pode completar os requisitos com algumas alterações.
  • Se você encontrar um requisito de teste, poderá realizar uma análise estendida em cada nó do link e listar as possíveis condições de contorno, condições anormais etc. de cada nó e, em seguida, escrever casos de teste para cobrir esses nós.

A maior vantagem do método de link é que você não depende mais da intuição para fazer as coisas e sabe o que está fazendo em todos os estágios . Às vezes, a intuição é importante, especialmente ao solucionar problemas, mas se você confiar apenas na intuição, com certeza perderá muitas informações úteis. Se você confiar apenas na intuição para alterar o código, o resultado final provavelmente não será a solução ideal, o que virtualmente aumentará muitos custos de teste e verificação.

Outros métodos

Método STAR: Este método é freqüentemente usado para descrever um assunto ou problema específico para outras pessoas. Ele é mais usado em comunicação, mas não muito em programação específica, portanto, pesquise você mesmo.

Método da pirâmide: este método é mais comum. Mas para ser honesto, esse método não é fácil de dominar, eu o uso principalmente para relatar trabalhos.

Método PK: Quando você hesita sobre a tomada de decisão (como seleção de tecnologia), você pode encontrar um pedaço de papel e listar todas as vantagens e desvantagens de várias soluções, vantagens e vantagens PK, desvantagens e desvantagens PK e, finalmente, você obterá a resposta.

Método de aprendizagem de algoritmo

Não há atalhos para o algoritmo, mas alguns métodos podem ser usados ​​para melhorar a capacidade do algoritmo mais rapidamente.

"Tao" e "Habilidades":

Na minha opinião, o aprendizado do algoritmo é dividido em "dao" e "shu". "Tao" se refere à estrutura e às ideias, e "shu" se refere à capacidade de transformar ideias em código. Às vezes você não tem uma ideia para resolver um problema de algoritmo, que é a falta da habilidade "Tao"; e às vezes você tem uma ideia, mas não consegue escrever o código, ou existem muitas lacunas, que é a falta de "técnica".

"Tao" e "shu" podem ser praticados separadamente:

Ao praticar "Tao", você pode encontrar um certo número de perguntas algorítmicas todos os dias, como vinte perguntas. Depois de ler as perguntas, apenas pense e lembre-se de ideias e várias soluções sem escrever uma linha de código. Prática repetida dessa maneira, após um período de tempo, você basicamente terá pelo menos uma maneira confiável de pensar quando vir perguntas comuns.

Os exercícios de "habilidades" serão mais intuitivos, ou seja, resolverão alguns problemas de algoritmo todos os dias, escreverão códigos específicos e pensarão sobre várias condições de contorno, habilidades de programação, casos de teste e assim por diante. Se você persistir dessa maneira por um período de tempo, sua habilidade "técnica" irá melhorar naturalmente e você poderá escrever algoritmos simples em uma passagem.

Jin Yuliang

  • "Comunicação" é o cidadão de primeira classe no desenvolvimento de software. Não há engenheiro que possa entender e praticar profundamente esta frase.
  • Para fazer um projeto, você deve primeiro fora e depois dentro, primeiro alto e depois baixo. Resolva primeiro os fatores externos e depois considere seriamente os fatores internos, porque os fatores externos geralmente dificultam significativamente o andamento do projeto. Comece com uma pesquisa de alto nível, como processo de produto e vários detalhes, requisitos completos, arquitetura geral e fluxo de trabalho e, em seguida, vá até o final para estudar implementações específicas, dificuldades técnicas e soluções. Para implementar um projeto ao contrário, no final muitas vezes fazemos um monte de trabalho inútil. Esses casos são frequentemente vistos em pessoas com vários anos de experiência, pensando que são tecnicamente talentosos e que irão implementá-los diretamente. Deve-se notar que um projeto é composto por pessoas, coisas e tecnologia, e pessoas e coisas não podem ser coordenadas e comunicado. Bem, não importa o quão boa seja a tecnologia, o projeto não pode ser bem-sucedido.
  • Quando se trata de resolver problemas emocionais com antecedência, resolva problemas práticos. Resolver problemas com emoções geralmente comete muitos erros de baixo nível.
  • É recomendado que pessoas com visão façam mais pesquisas sobre metacognição, vocês vão se abrir um mundo diferente.
  • A introspecção contínua é uma habilidade extremamente poderosa que o ajudará a se tornar o grupo de pessoas verdadeiramente poderoso. É como a Arte Divina Beiming, permitindo que você aprenda coisas excelentes de várias pessoas para complementar suas próprias deficiências.

Isso conclui o artigo!

O último benefício do editor

A seguir estão dados de uma entrevista compilados pelo editor de uma pergunta real de uma grande fábrica e uma coleção de dados compilados pela mais recente tecnologia de núcleo Java em 2020. Amigos que precisam receber podem clicar em mim para recebê-los gratuitamente . O mundo de programação está sempre aberto a todos aqueles que amam programar.É um mundo livre, igualitário e compartilhado, e sempre acreditei nisso.  

Parte da foto do perfil:

 

Se você gosta do compartilhamento do editor, pode curtir e segui-lo. O editor continuará compartilhando os artigos mais recentes e recebendo benefícios para você.

Acho que você gosta

Origin blog.csdn.net/QLCZ0809/article/details/111395729
Recomendado
Clasificación