Quais habilidades profissionais você precisa para se tornar um programador ou engenheiro qualificado e o que você deve preparar antes da entrevista? Durante a entrevista, o entrevistador quer saber quais habilidades profissionais você tem. A seguir, é necessário o que um engenheiro de software Java qualificado precisa.
1. Habilidades profissionais
1. Proficiente em programação orientada a objetos usando a linguagem Java, possui bons hábitos de programação e conhece as APIs Java comumente usadas, incluindo estruturas de coleção, multi-threading (programação simultânea), E/O (NIO), Socket, JDBC, XML, reflexão, etc.
2. Familiarizados com o desenvolvimento da Web Java com base em JSP e servlets, têm uma compreensão profunda dos princípios de trabalho e ciclos de vida de servlets e JSP, são proficientes no uso de JSTL e EL para escrever páginas dinâmicas sem scripts e ter experiência no desenvolvimento de projetos da Web Java usando ouvintes, arquivos e outros componentes da Web e padrões de arquitetura MVC.
3. Tenha um profundo entendimento dos contêineres do COI da primavera e dos princípios da AOP, seja proficiente no uso da estrutura da primavera para gerenciar vários componentes da Web e suas dependências, seja proficiente no uso da primavera para transações, logs, segurança etc., têm experiência em usar o SpringMVC como a integração da spring e o uso do suporte à primavera fornecido pelo Spring.
4. Proficiente no uso de estruturas de ORM, como hibernato e mybatis, familiarizadas com as APIs principais de Hibernate e Mybatis, e têm um entendimento profundo do mapeamento da associação de hibernato, mapeamento de herança, mapeamento de componentes, mecanismo de emconte, gerenciamento de transações e tunção de desempenho.
5 Proficiente no uso de HTML, CSS e JavaScript para o desenvolvimento do front-end da Web, familiarizados com o jQuery e o bootstrap, têm uma compreensão aprofundada da aplicação da tecnologia Ajax em projetos da Web e tem experiência no desenvolvimento de projetos usando a estrutura MVC front-end (AngularJS) e Javascript Matplas Motor (HolloBars).
6. Familiarize -se com os produtos de banco de dados relacionais comumente usados (MySQL, Oracle) e seja proficiente na programação do banco de dados usando SQL e PL/SQL.
7. Familiarize-se com os princípios de design orientados a objetos, têm um entendimento aprofundado dos padrões de design do GOF e padrões de arquitetura de aplicativos corporativos e experiência relevante no desenvolvimento real, seja proficiente em análise e design orientados a objetos usando UML e têm experiência em TDD (desenvolvimento acionado por teste) e DDD (design de domínio).
8. Familiarizada com o uso de servidores da Web e servidores de aplicativos, como Apache, Nginx, Tomcat, Wildfly, WebLogic e familiarizados com a configuração da integração, agrupamento e balanceamento de carga de múltiplos servidores.
9. Proficiente no uso do protótipo do produto Axure, proficiente no uso de ferramentas de modelagem de design PowerDesigner e arquiteto corporativo, proficiente no uso de ambientes de desenvolvimento de Java Eclipse e Intellij, proficiente no uso da Front-end de desenvolvimento de ferramentas de ambiente de desenvolvimento e de uso de ferramentas de gerenciamento de software e GIT, usando o uso de ferramentas de gerenciamento e gerenciamento de ferramentas de gerenciamento e MAV MAVM MAVEN MAVEN MAVEN e GIT. Nota: Você deve estar familiarizado com nem todos os itens listados acima. Você pode fazer os preparativos direcionados correspondentes com base nos requisitos específicos do recrutamento corporativo. No entanto, os 6 primeiros itens devem ser os requisitos mínimos e são as habilidades profissionais que um engenheiro de software Java deve possuir.
2. Experiência do projeto
Introdução ao projeto
Este sistema é um sistema para z encomendado por x e é usado para Z. O sistema inclui A, B, C, D e outros módulos. O sistema usa a estrutura de código aberto Java em nível corporativo e a tecnologia front-end F. A camada de apresentação usa a arquitetura G, usa H como View I como controlador e implementa solicitações de estilo de repouso; A camada lógica de negócios usa o modo J e implementa as funções de transação, log e segurança através de K e implementa os serviços de cache por meio de L; A camada de persistência usa m para encapsular operações do CRUD e a camada subjacente usa n para implementar o acesso aos dados. Todo o projeto adota um modelo de desenvolvimento P.
ilustrar:
E geralmente se refere à primavera (uma opção de um balcão para o desenvolvimento de nível empresarial Java);
F é mais provável que seja uma biblioteca jQuery, sua estrutura de plug-in ou bootstrap. Obviamente, se você deseja criar um aplicativo de página única (SPA), a melhor solução é a estrutura MVC front-end (como AngularJS) e Javascript Model Motor (como guidão); G é obviamente MVC (Model-View-Control), e a estrutura de implementação mais provável é o Spring MVC. Além disso, existem implementações de Struts 2, JSF e MyFaces fornecidas pelo Apache para JSF.
H é jsp. JSP é V em MVC. Você também pode usar motores de modelo (como Freemarker e Velocity) para gerar visualizações ou vários documentos ou relatórios (como Excel e PDF, etc.).
Eu sou um servlet ou um controlador personalizado. Eles são C em MVC. Obviamente, o Spring MVC fornece DispatcheserServlet como um controlador front-end;
J geralmente é um script de transação.
K deve ser a tecnologia AOP (programação orientada para a seção).
L é atualmente amplamente utilizado por memcach e redis;
Existem muitas opções para M. Os mais prováveis são Hibernate e Mybatis. Ambas as tecnologias também podem ser usadas ao mesmo tempo, mas geralmente adicionam, excluem e modificam a adição, a exclusão e a modificação são entregues para hibernar para o processamento, enquanto as consultas complexas são concluídas pelo Mybatis. Além disso, Toplink e Jooq também são excelentes soluções de camada de persistência;
O acesso de dados na parte inferior de N é tradicionalmente usado para usar bancos de dados relacionais, que podem ser MySQL, Oracle, SQLServer, DB2, etc. Com o advento da era do big data, o NOSQL (como MongoDB, Membase, Bigtable, etc.) e outras soluções de acesso a dados;
P é o modelo de desenvolvimento de projetos, que pode ser um modelo de cascata, um modelo de protótipo rápido, um modelo incremental, um modelo em espiral, um modelo de fonte, um modelo RAD, etc.
Processo de Desenvolvimento de Projetos:
1. Análise de viabilidade: Relatório de Análise de Viabilidade, Plano de Desenvolvimento do Projeto
2. Análise de requisitos: especificações de requisitos
Ooad (diagrama de casos de uso, diagrama de tempo, diagrama de atividades)
Protótipo da interface: ajuda a entender os requisitos e deduzir scripts de transação ao projetar a camada de negócios
3. Projeto: Manual de Design Resumo e Manual de Design detalhado para extrair entidades comerciais (objetos de domínio): Diagrama de classe, diagrama de ER (estágio de design de conceito)
Arquitetura hierárquica: determine as soluções de implementação técnica de cada camada (especificamente para as estruturas usadas, servidores de banco de dados, servidores de aplicativos etc.).
Projeto da camada de negócios: Modo de script de transação (transação: uma transação é uma transação quando um usuário envia uma solicitação; script: um método ou uma função; script de transação: encapsula uma solicitação em um método ou função; modo de script de transação: uma transação começa com a abertura do script e termina com o fechamento do script).
Existem três tipos de objetos envolvidos na camada de negócios: classe de script de transação (encapsula o processo de negócios), o objeto de acesso a dados (DAO, encapsula operações persistentes) e o objeto de transmissão de dados (DTO, encapsula objetos de perda de sangue/anemia de campo). A relação entre os três é o objeto de acesso a dados da classe de scripts de transação (agregação). Ambos dependem de engenharia avançada (os diagramas de classe UML geram código Java) e engenharia reversa (o código Java gera diagramas de classe UML) Projeto físico do banco de dados (os diagramas de ER convertem em diagramas de relacionamento entre tabelas, construção da biblioteca e construção de tabela e usam ferramentas para inserir dados de teste)
4. Codificação
5. Teste: Relatório de teste, teste de unidade de relatório de defeito: Verifique e verifique a unidade mínima testável no software. No Java, os métodos nas classes podem ser testados e implementados usando ferramentas JUNIT.
Teste de integração: o teste de integração também é chamado de teste de montagem ou teste de articulação. Com base nos testes de unidade, todos os módulos são montados em subsistemas para teste de acordo com os requisitos de projeto.
Teste do sistema: combinando software, hardware, periféricos, rede e outros elementos confirmados para realizar vários testes de montagem e confirmação do sistema de informações. O teste do sistema é um teste realizado para todo o sistema de produtos. O objetivo é verificar se o sistema atende à definição das especificações de requisitos, descubra o que é inconsistente ou contradiz as especificações dos requisitos e, assim, propõe uma solução mais completa. Teste de aceitação: atividades de teste de software realizadas antes que o produto seja liberado após a conclusão do produto de software, testes de unidade, teste de integração e teste do sistema. É a última etapa dos testes técnicos, também conhecida como teste de entrega. O objetivo do teste de aceitação é garantir que o software esteja pronto e que possa ser usado pelo usuário final para executar funções e tarefas estabelecidas do software.
6. Entrega e manutenção: manual do usuário, manual de operação
Iii. Gerenciamento de projetos
1. Controle da versão: CVS/SVN/GIT
2. Construção automática: Ant/Maven/Ivy/Gradle
3. Integração contínua: Hudson/Jenkins
4. Arquitetura do sistema
1. Servidor de balanceamento de carga: F5, A10
2. Servidor de aplicativos:
Servidor http: apache, nginx (http, proxy reverso, servidor de proxy de email)
Contêiner de servlet: tomcat, resina
Recipientes EJB: Wildfly (JBoss Application Server), Glassfish, WebLogic, Websphere
3. Servidor de banco de dados: MySQL, Eclipse, Oracle
5 Aplicativos de Terceiros (plugins) de terceiros (plugins)
1. Ferramentas de gráfico: plug-ins de gráfico baseado em jQuery (como jqchart, flot, mapeado etc.), Chart.js, HighCharts, etc.
2. Ferramentas de relatório: Relatórios Pentaho, Ireport, DynamicReports, etc.
3. Processamento de documentos: POI, ITEXT, etc.
4. Motor de fluxo de trabalho: JBPM, OpenWFE, Snoker, Swamp, etc.
5. AGENÇÃO DE TRABALHO: Quartz, Jobserver, Oddjob, etc.
6. Serviços de cache: ehcache, memcached, swarmcache, etc.
7. Fila de mensagens: Open-MQ, Zeromq, etc.
8. Estrutura de segurança: Shiro, Picketbox, etc.
9. Motores de pesquisa: INDEXANK, Lucene, Elasticsearch, etc.
10. AJAX Framework: jQuery, extjs, dwr, etc.
11. Plug-ins de interface do usuário: easyui, miniui, etc.
12. Caixas de texto ricas: Ueditor, ckeditor, etc.
6. Faça perguntas na entrevista
1. Para qual empresa foi desenvolvida para o projeto? Quanto é o investimento no projeto?
2. Quantas pessoas participaram do desenvolvimento do projeto? Qual é a proporção de testadores, desenvolvedores e gerentes de projeto em toda a equipe?
3. Há quanto tempo o projeto foi desenvolvido? Quanto código existe no projeto total? Quanto código existe?
4. Que tipo de modelo de desenvolvimento ou processo de desenvolvimento o projeto adota? Qual é a arquitetura do projeto? Qual é a seleção técnica do projeto?
5. Que responsabilidades você assumiu no projeto? Você tem reuniões ou horas extras com frequência? Quais são os ganhos ou lições aprendidas após a conclusão do projeto?
6. Qual é a parte mais difícil do projeto? Como resolver vários conflitos encontrados durante o desenvolvimento da equipe?
7. Você pode fazer as perguntas do entrevistador durante a entrevista
1. Percebi que você usou a tecnologia X. Como você resolveu o problema Y?
2. Por que seus produtos usam a tecnologia X em vez da tecnologia Y? Até onde eu sei, embora a tecnologia X tenha benefícios como A, B, C, etc., ela também tem problemas com D e E, enquanto a tecnologia Y pode resolver problemas d e E.
3. Não estou muito familiarizado com a tecnologia X que você mencionou, mas sinto que é uma boa solução. Você pode me contar mais sobre como funciona?
4. Como sua equipe planeja o projeto? Quantas reuniões regulares estarão lá em uma semana? Qual é a quantidade aproximada de código por semana?
5. A solução em que posso pensar para o Problema X é atualmente Y. Como você resolverá esse problema?
8. Regras de SAR
A regra da SAR refere -se a descrever primeiro o cenário do problema, depois explicando as ações que você tomou e finalmente declarando os resultados.
9. Princípio da entrevista
1. Voz moderada, fala clara, sorridente, imagem pessoal e polidez.
2. Tome a iniciativa de conversar com o entrevistador sobre tópicos em que ele está interessado em deixar o entrevistador satisfeito.
3. Tome a iniciativa e converse com ousadia com o entrevistador sobre conteúdo familiar e experiente: projetos, pontos técnicos etc., de modo a jogar com seus pontos fortes e evitar fraquezas.
4. Você deve expressar que realmente deseja obter essa posição e que está disposto a aprender técnicas que não entende.
5. Faça requisitos de tratamento razoáveis com base no seu nível real.
10. Auto-avaliação
1. Capacidade de aprendizado (as pessoas na indústria de TI precisam entender constantemente novas tecnologias, ferramentas e métodos)
2. Consciência da equipe (em comparação com o heroísmo pessoal, o setor de TI defende mais o trabalho em equipe)
3. Resistência à pressão (a intensidade do trabalho de muitas empresas de TI é relativamente alta)
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.