Maison  >  Article  >  Java  >  De quelles compétences professionnelles les programmeurs Java ont-ils besoin ?

De quelles compétences professionnelles les programmeurs Java ont-ils besoin ?

零下一度
零下一度original
2017-06-27 09:16:191873parcourir

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.

Compétences professionnelles

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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).

  8. 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.

  9. 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.

Expérience du projet

Introduction au projet

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.

Processus de développement du projet

  1. Analyse de faisabilité>>>

  2. Analyse des exigences>>> Spécification des exigences
    OOAD (diagramme de cas d'utilisation, diagramme de séquence, diagramme d'activité)
  • Prototype d'interface : aide à comprendre les exigences et à dériver des scripts de transaction lors de la conception de la couche métier
Conception>>> Résumé des instructions/détails de conception
    • Extraire les entités métiers (objets de domaine) : diagrammes de classes, diagrammes E-R (étape de conception conceptuelle)
    • Architecture hiérarchique : Déterminer le plan de mise en œuvre technique pour chaque couche (propre au framework utilisé, au serveur de base de données, au serveur d'applications, etc.). Conception de la couche métier : mode script de transaction (transaction : un utilisateur envoie une requête est une transaction ; script : une méthode ou une fonction ; script de transaction : encapsule une requête en tant que méthode ou fonction ; mode script de transaction : une transaction démarre avec le script ouverture, se terminant par la fermeture du script). Il existe trois types d'objets impliqués dans la couche métier : les classes de scripts de transaction (encapsulant les processus métier), les objets d'accès aux données (DAO, encapsulant les opérations de persistance) et les objets de transfert de données (DTO, encapsulant les objets de champ de perte de sang/anémie). entre l'objet d'accès aux données de combinaison de classes de script de transaction (agrégation), qui reposent tous deux sur l'objet de transfert de données
    • l'ingénierie directe (diagramme de classes UML pour générer du code Java) et l'ingénierie inverse Ingénierie ( Le code Java génère des diagrammes de classes UML)
    • Conception physique de bases de données (conversion de diagrammes ER en diagrammes de relations inter-tables, construction de bases de données et de tables, utilisation d'outils pour insérer des données de test)
    Codage
  • Test>>>Rapport de test/Rapport de défaut
    • Unité testing : Vérifier et vérifier la plus petite unité testable dans le logiciel. En Java, il s'agit de tester les méthodes de la classe, qui peuvent être implémentées à l'aide de l'outil JUnit.
    • Tests d'intégration : les tests d'intégration sont également appelés tests d'assemblage ou tests conjoints. Sur la base de tests unitaires, tous les modules sont assemblés en sous-systèmes pour être testés conformément aux exigences de conception.
    • Tests du système : combiner les logiciels, le matériel, les périphériques, le réseau et d'autres éléments confirmés pour effectuer divers tests d'assemblage et tests de confirmation du système d'information. Les tests du système sont destinés à l'ensemble du but de. tester le système de produits consiste à vérifier si le système répond à la définition des spécifications de la demande et à découvrir les incohérences ou contradictions avec les spécifications de la demande, afin de proposer une solution plus complète.
    • Tests d'acceptation : une fois que le produit logiciel a terminé les tests unitaires, les tests d'intégration et les tests système, les activités de tests logiciels sont menées avant la sortie du produit. Il s’agit de la dernière étape des tests techniques, également appelés tests de livraison. Le but des tests d'acceptation est de garantir que le logiciel est prêt et peut être utilisé par les utilisateurs finaux pour exécuter les fonctions et tâches prévues du logiciel.
    Livraison et maintenance>>> Manuel d'utilisation/Manuel d'utilisation
  • Gestion de projet

      Contrôle de version : CVS/SVN/Git
    • Build automatisé : Ant/Maven/Ivy/Gradle
    • Intégration continue : Hudson/Jenkins
    Architecture système

      Serveurs d'équilibrage de charge : F5, A10
    • Serveur d'applications :
      • 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

    Application d'outil tiers (plug-in)

    • 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.

    Questions d'entretien

    • 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.

    Questions d'entretien

    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.

    Autres

    Erreurs courantes

    1. Pratique uniquement sur ordinateur

    2. Ne pas pratiquer les questions d'entretien comportemental

    3. Ne pas suivre de formation aux entretiens simulés

    4. Essayer de mémoriser les réponses

    5. N'exprimez pas à haute voix vos idées de résolution de problèmes

    6. Le code n'est pas assez rigoureux

    7. N'écrivez pas de code de test

    8. Abandonnez facilement

    Vous pouvez poser des questions à l'intervieweur pendant l'entretien

    1. J'ai remarqué que vous utilisez la technologie With X, comment résolvez-vous le problème Y ?

    2. 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.

    3. 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 ?

    4. 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 ?

    5. La seule solution à laquelle je puisse penser pour le problème X est Y. Comment résoudriez-vous ce problème ?

    Règle S.A.R.

    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.

    Cinq façons de résoudre des problèmes d'algorithme

    1. 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.

    2. 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".

    3. 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.

    4. 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.

    5. 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.

    Négociation d'emploi

    1. Soyez confiant et proposez des exigences salariales précises

    2. Proposez un prix légèrement plus élevé que prévu

    3. 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)

    4. Utilisez la méthode la plus appropriée (vous pouvez essayer de négocier le traitement par téléphone ou par email)

    Auto-évaluation

    1. Capacité d'apprentissage (les gens de l'industrie informatique doivent constamment comprendre les nouvelles technologies, outils et méthodes)

    2. Conscience de l'équipe (par rapport à l'héroïsme individuel, l'informatique industrie Plus prône le travail d'équipe)

    3. 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!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn