De quelles compétences professionnelles avez-vous besoin pour devenir un programmeur ou un ingénieur Java qualifié ? Que doivent préparer les intervieweurs avant l'entretien ? Le contenu affiché dans cet article peut être utilisé comme contenu dans votre CV ou comme élément de discussion avec l'intervieweur pendant l'entretien. Vous pouvez écrire ce contenu dans votre CV. Bien sûr, ce qui est plus important est que vous parliez à l'intervieweur pendant l'entretien. l’entretien. L’intervieweur démontre ces compétences professionnelles. Je pense que cet article sera utile aux étudiants de première année qui recherchent des postes de programmeur Java (ingénieur Java), ainsi qu'aux juniors qui souhaitent devenir développeurs Java intermédiaires et seniors.
Maîtrise de l'utilisation du langage Java pour la programmation orientée objet, bonnes habitudes de programmation et familiarité avec les API Java couramment utilisées, notamment Framework de collection, multi-threading (programmation simultanée), E/S (NIO), Socket, JDBC, XML, réflexion, etc.
Familier avec le développement Web Java basé sur JSP et Servlet, avoir une compréhension approfondie des principes de fonctionnement et des cycles de vie de Servlet et JSP, maîtriser l'utilisation de JSTL et EL pour écrire des dynamiques sans script pages et avoir la possibilité d'utiliser l'expérience dans le développement de projets Web Java avec des composants Web tels que des écouteurs et des filtres, ainsi que le modèle d'architecture MVC.
Avoir une compréhension approfondie du conteneur IoC et des principes AOP de Spring, utiliser habilement le framework Spring pour gérer divers composants Web et leurs dépendances, et utiliser habilement Spring pour les transactions, la journalisation et la sécurité. La direction, etc., a de l'expérience dans l'utilisation de Spring MVC comme technologie de couche de présentation et dans l'utilisation du support de persistance fourni par Spring pour le développement de projets Web, et est familiarisée avec l'intégration d'autres frameworks par Spring.
Maîtrise de l'utilisation des frameworks ORM tels que Hibernate et MyBatis, familier avec les API de base d'Hibernate et MyBatis, et familier avec le mappage d'association, le mappage d'héritage, le mappage de composants, le mécanisme de mise en cache et les transactions d'Hibernate. gestion et réglage des performances. Excellente compréhension.
Maîtrise de l'utilisation de HTML, CSS et JavaScript pour le développement Web front-end, familier avec jQuery et Bootstrap, ayant une compréhension approfondie de l'application de la technologie Ajax dans les projets Web et utilisant le framework MVC frontal (AngularJS) et le moteur de modèles JavaScript (HandleBars) pour l'expérience de développement de projets.
Familier avec les produits de bases de données relationnelles couramment utilisés (MySQL, Oracle) et maîtrise de l'utilisation de SQL et PL/SQL pour la programmation de bases de données.
Familière avec les principes de conception orientée objet, avec une compréhension approfondie des modèles de conception du GoF et des modèles d'architecture d'applications d'entreprise, ainsi qu'une expérience pertinente en développement pratique et une utilisation compétente d'UML pour l'orientation objet. analyse et conception, avec une expérience en TDD (Test Driven Development) et DDD (Domain Driven Design).
Familier avec l'utilisation de serveurs Web et de serveurs d'applications tels qu'Apache, NginX, Tomcat, WildFly, Weblogic, etc., et familier avec la configuration de l'intégration, du clustering et du chargement de plusieurs serveurs équilibrage.
Maîtrise de l'outil de prototypage de produits Axure, maîtrise de l'utilisation des outils de modélisation de conception PowerDesigner et Enterprise Architect, maîtrise de l'environnement de développement Java Eclipse et IntelliJ, maîtrise de l'environnement de développement front-end WebStorm , Maîtrise de l'utilisation des outils de contrôle de version de logiciels SVN et Git, et maîtrise de l'utilisation des outils de construction et de gestion de projets Maven et Gradle.
Remarque : Toutes les choses énumérées ci-dessus ne doivent pas nécessairement vous être familières. Vous pouvez le faire en fonction des exigences de recrutement spécifiques du. entreprise. Personnellement, je pense que les 6 premiers éléments devraient constituer les exigences minimales et les compétences professionnelles qu'un développeur Java doit posséder.
Ce système est un système développé par X confié par Y pour Z. Le système comprend A et B , C, D et autres modules. Le système utilise le framework open source Java E au niveau de l'entreprise et la technologie frontale F. La couche de présentation utilise l'architecture G, utilise H comme vue, I comme contrôleur et implémente les requêtes de style REST ; la couche de logique métier utilise le modèle J et implémente des fonctions telles que les transactions, les journaux et la sécurité via K, et implémente le cache. services via L ; La couche de persistance utilise M pour encapsuler les opérations CRUD et la couche inférieure utilise N pour implémenter l'accès aux données. L'ensemble du projet a adopté le modèle de développement P.
Remarque : Dans la description ci-dessus, E fait généralement référence à Spring (un choix unique pour le développement d'entreprise Java) F est très probablement la bibliothèque jQuery et ses plug-ins ou le ; Framework Bootstrap. Bien sûr, si vous souhaitez créer une application monopage (SPA), la meilleure solution est un framework MVC frontal (tel qu'AngularJS) et un moteur de modèle JavaScript (tel que HandleBars) ; (Model-View-Control), et le cadre d'implémentation le plus probable est Spring MVC, en plus de Struts 2, JSF et de l'implémentation MyFaces fournie par Apache pour JSF, vous pouvez utiliser JSP comme V dans MVC, vous pouvez également utiliser un modèle (tels que Freemarker et Velocity) pour générer des vues, ou vous pouvez utiliser divers documents ou rapports (tels qu'Excel et PDF, etc.), et les servlets et les contrôleurs personnalisés sont en C dans MVC. Bien sûr, Spring MVC fournit DispatcherServlet en tant que. contrôleur frontal ; J est généralement un script de transaction et K devrait être une technologie AOP (programmation orientée aspect), L est actuellement largement utilisé avec Memcached et M a de nombreuses options, les plus probables sont Hibernate et MyBatis Both. Les technologies peuvent également être utilisées en même temps, mais les ajouts, les suppressions et les modifications sont généralement gérés par Hibernate et les requêtes complexes sont complétées par MyBatis. De plus, TopLink et jOOQ sont également d'excellentes solutions de couche de persistance que l'accès aux données sous-jacentes utilise traditionnellement. bases de données relationnelles, qui peuvent être MySQL, Oracle, SQLServer, DB2, etc., avec l'avènement du big data Avec l'avènement de l'ère, NoSQL (comme MongoDB, MemBase, BigTable, etc.) et d'autres solutions d'accès au big data ( tels que GFS, HDFS, etc.) peuvent également être utilisés ; le modèle de développement P du projet peut être un modèle en cascade, un modèle de prototype rapide, un modèle incrémental, un modèle Spiral, un modèle fontaine, un modèle RAD, etc.
Analyse de faisabilité>>>
Serveur HTTP : Apache, NginX (HTTP, proxy inverse, serveur proxy de messagerie)
Conteneur de servlets : Tomcat, Resin
Conteneur EJB : WildFly (JBoss Application Server), GlassFish, Weblogic, Websphere
Serveur de base de données : MySQL, Oracle
Outils de graphiques : plug-ins de graphiques basés sur jQuery (tels que jQchart, Flot , Charted, etc.), Chart.js, Highcharts, etc.
Outils de reporting : Pentaho Reporting, iReport, DynamicReports, etc.
Traitement des documents : POI, iText, etc.
Moteurs de workflow : jBPM, OpenWFE, Snaker, SWAMP, etc.
Planification des tâches : Quartz, JobServer, Oddjob, etc.
Services de mise en cache : EhCache, memcached, SwarmCache, etc.
File d'attente de messages : Open-MQ, ZeroMQ, etc.
Cadre de sécurité : Shiro, PicketBox, etc.
Moteurs de recherche : IndexTank, Lucene, ElasticSearch, etc.
Framework Ajax : jQuery, ExtJS, DWR, etc.
Plug-ins d'interface utilisateur : EasyUI, MiniUI, etc.
Zone de texte enrichi : UEditor, CKEditor, etc.
Pour quelle entreprise le projet a-t-il été développé ? Quel est l'investissement dans le projet ?
Combien de personnes ont participé au développement du projet ? Quelle est la proportion de testeurs, de développeurs et de chefs de projet dans l’ensemble de l’équipe ?
Depuis combien de temps le projet est-il développé ? Quel est le volume total de code du projet ? Combien de code as-tu ?
Quel modèle de développement ou processus de développement le projet adopte-t-il ? Quelle est la structure du projet ? Quelle est la sélection technologique pour le projet ?
Quelles responsabilités aviez-vous dans le projet ? Avez-vous des réunions fréquentes ou faites-vous des heures supplémentaires ? Quels sont les gains ou les leçons apprises après la réalisation du projet ?
Quelle a été la partie la plus difficile du projet ? Comment résoudre les différents conflits rencontrés lors du développement d’une équipe ?
Remarque : Pour ceux qui n'ont pas d'expérience réelle en matière de projet, vous pouvez rechercher et recruter des programmeurs Java sur des sites Web tels que 51job, Zhaopin.com et Lagou. com Company, trouvez leur site officiel pour en savoir plus sur les projets qu'ils réalisent, vérifiez l'introduction détaillée du projet, puis essayez de remplir certaines fonctions. Il est préférable de demander à un expert de voir si votre conception et votre code sont appropriés. Cela équivaut à accumuler une certaine expérience en matière de projet.
Les questions d'entretien Java courantes ont été résumées dans "Collection de questions d'entretien Java", "Collection complète de questions d'entretien Java" et "Questions de programmation d'entretien Collection" 》 et d'autres articles seront publiés sur mon blog les uns après les autres. Je continuerai à compiler et à publier des questions d'entretien avec de grandes entreprises.
Pratique uniquement sur ordinateur
Ne pas pratiquer les questions d'entretien comportemental
Ne pas suivre de formation aux entretiens simulés
Essayer de mémoriser les réponses
N'exprimez pas à haute voix vos idées de résolution de problèmes
Le code n'est pas assez rigoureux
N'écrivez pas de code de test
Abandonnez facilement
J'ai remarqué que vous utilisez la technologie With X, comment résolvez-vous le problème Y ?
Pourquoi votre produit utilise-t-il la technologie X au lieu de la technologie Y ? Pour autant que je sache, bien que la technologie X présente les avantages A, B, C, etc., elle présente également les problèmes D et E, et la technologie Y peut résoudre les problèmes D et E.
Je ne connais pas trop la technologie X dont vous parlez, mais je pense que c'est une bonne solution. Pouvez-vous m'en dire plus sur son fonctionnement ?
Comment votre équipe planifie-t-elle le projet ? Combien de réunions régulières y a-t-il par semaine ? Quelle est la quantité approximative de code par semaine ?
La seule solution à laquelle je puisse penser pour le problème X est Y. Comment résoudriez-vous ce problème ?
La règle S.A.R consiste à décrire d'abord le scénario problématique, puis à expliquer les actions que vous avez entreprises et enfin à énoncer les résultats.
Exemple de méthode : Découvrez les règles générales en donnant des exemples.
Exemple : Quelle est la probabilité qu'un triangle inscrit dans un cercle soit un triangle aigu ? Il s'agit d'une question d'entretien de Sogou. Vous pouvez connaître la réponse en dessinant au hasard trois points sur le cercle et en les reliant pour former un triangle.
Méthode de correspondance de modèles
Exemple : Les éléments d'un tableau ordonné sont déplacés dans une boucle, et l'ordre des éléments devient "3 4 5 6 1 2". Comment trouver le plus petit élément d'un tableau, en supposant que les éléments du tableau sont différents. Cette question ressemble tellement à la recherche binaire, nous pouvons donc apprendre de l'algorithme de recherche binaire. Le plus petit élément apparaît évidemment au tournant de "milieu > droite".
Méthode de généralisation simplifiée
Explication : Simplifiez la taille du problème et le type de données, puis découvrez une solution universelle.
Méthode de construction simple
Exemple : Trouver toutes les permutations et combinaisons possibles de "abcde". Considérons d’abord le cas de « a » uniquement, puis considérons le cas de « ab », et ainsi de suite. Vous pourriez vous retrouver avec une formule récursive. Cette approche évolue souvent vers une approche récursive.
Méthode de brainstorming sur la structure des données
Exemple : Générez aléatoirement des nombres et trouvez leur médiane. Pour ce genre de question, vous pouvez parcourir les structures de données que vous connaissez dans votre esprit et voir laquelle est la structure de données la plus appropriée. La question ci-dessus peut créer deux tas, un grand tas racine et un petit tas racine. Les éléments plus petits sont placés dans le grand tas racine, et les éléments plus gros sont placés dans le petit tas racine. Si les deux tas sont déséquilibrés, ils peuvent être pris. hors de l'un des tas. Mettez simplement l'élément dans un autre tas. Le terre-plein final doit être l'une des racines des deux tas.
Soyez confiant et proposez des exigences salariales précises
Proposez un prix légèrement plus élevé que prévu
Ne vous concentrez pas uniquement sur le salaire (de nombreuses entreprises sont plus disposées à faire des compromis sur des conditions autres que le salaire)
Utilisez la méthode la plus appropriée (vous pouvez essayer de négocier le traitement par téléphone ou par email)
Capacité d'apprentissage (les gens de l'industrie informatique doivent constamment comprendre les nouvelles technologies, outils et méthodes)
Conscience de l'équipe (par rapport à l'héroïsme individuel, l'informatique industrie Plus prône le travail d'équipe)
Résistance au stress (l'intensité de travail de nombreuses entreprises informatiques est relativement élevée)
Attention, étudiants apprenant Java ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!