Chaque programmeur Java doit avoir une compréhension de base du développement logiciel. Voyons donc ce qui est considéré comme "de base".

1. Algorithmes de base

La première chose à faire pour commencer à apprendre la programmation (pas seulement Java) est de comprendre les bases. Par exemple, les algorithmes.

Il en existe un nombre infini, et vous ne devriez pas passer des années entières de votre vie à essayer d'apprendre le plus d'algorithmes possible : la plupart d'entre eux ne vous seront d'aucune utilité. Vous pouvez obtenir le minimum de connaissances nécessaires dans le livre "Grokking Algorithms". C'est suffisant pour démarrer, mais si vous le souhaitez, vous pouvez apprendre du livre "Structures and Algorithms" ou "Algorithms in Java" de Robert Sedgewick et Kevin Wayne.

2. Syntaxe Java

Après avoir appris les bases des algorithmes, nous devons apprendre la syntaxe Java. Après tout, vous étudiez pour devenir programmeur Java, n'est-ce pas ? Le cours CodeGym est parfait pour cela.

Au fur et à mesure que vous effectuerez d'innombrables tâches, vous mettrez la main sur la syntaxe Java puis, sans trop d'hésitation, vous écrirez/lirez du code Java comme s'il s'agissait de votre langue maternelle.

Au-delà de la pratique, vous devez également examiner la théorie pour comprendre ce que vous faites. Pour ce faire, vous pouvez lire des livres. Par exemple, l'un des éléments suivants :

  • "Tête d'abord Java",
  • « Java pour les nuls » de Barry Bird ;
  • « Java : Guide du débutant » par Herbert Schildt.

Après avoir lu ces livres, vous pouvez passer à des livres plus difficiles :

  • « Penser en Java », Bruce Eckel ;
  • « Java efficace » de Joshua Bloch ;
  • « Java : la référence complète » par Herbert Schildt.

Les trois derniers livres ne sont pas faciles à lire pour les débutants, mais ils fournissent une base solide en théorie Java.

3. Modèles de conception

Les modèles de conception sont certains modèles reproductibles qui résolvent des problèmes dans des contextes fréquemment rencontrés. Ils incluent des modèles de base simples que tout programmeur qui se respecte devrait connaître. Pour comprendre ce sujet, prenez le livre "Head First Design Patterns".

Il explique les modèles de conception de base de manière accessible. Mais le livre parle beaucoup de Java, donc lorsque vous lisez ce livre, vous aurez également besoin de maîtriser ce langage de programmation.

Pour une plongée plus approfondie dans les modèles, vous pouvez également lire "Design Patterns : Elements of Reusable Object-Oriented Software" du Gang of Four ( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ). Une fois que vous aurez étudié ce sujet, vous commencerez à voir des modèles pratiquement partout dans votre code.

Faites attention à cela, en particulier aux modèles utilisés au printemps, car il s'agit d'une question d'entrevue populaire.

4. Paradigmes de programmation. Code de propreté

Outre les modèles de conception standard, il existe divers principes et paradigmes à connaître (SOLID, GRASP).

Vous devez également garder votre code propre et lisible. Pour tout ce que vous devez savoir sur ce sujet, consultez Clean Code de Robert Martin ou consultez "Code Complete" de Steve McConnell.

5. SQL

Notre prochaine étape consiste à étudier un langage pour les bases de données relationnelles - SQL.

Les bases de données sont l'endroit où les informations (données) utilisées par une application Web sont stockées. Une base de données se compose de plusieurs tables (le carnet d'adresses de votre téléphone en est un exemple simple).

Les développeurs Java sont responsables non seulement de l'application Java, mais également de la base de données avec laquelle elle interagit et où elle stocke ses données.

Dans les bases de données relationnelles (qui sont le type le plus courant), toutes les interactions se produisent via un langage spécial appelé Structured Query Language, ou SQL.

Pour comprendre ce sujet, il vous suffit de lire l'un de ces livres :

  1. "Apprendre SQL" par Alan Beaulieu ;
  2. « SQL » de Chris Fehily ;
  3. « Head First SQL » par Lynn Beighley.

Mais la pratique sans théorie ne suffit pas, n'est-ce pas ? Et lors des entretiens, vous pouvez vous attendre à un test de vos connaissances en SQL. Les enquêteurs donnent souvent (presque toujours) une ou deux tâches qui impliquent l'écriture d'une requête SQL.

Par conséquent, il est très important de perfectionner vos compétences pratiques en SQL pour vous montrer sous un bon jour.

6. MySQL/PostgreSQL

Après avoir appris le langage SQL, vous devez vous familiariser avec une implémentation de base de données spécifique. Selon la base de données, certaines commandes peuvent varier considérablement. Et il existe des différences assez notables dans les capacités de la base de données.

Les bases de données relationnelles les plus courantes sont MySQL et PostgreSQL. MySQL est beaucoup plus simple, mais PostgreSQL a des capacités beaucoup plus larges. Connaître au moins l'un d'entre eux suffit pour se lancer.

Vous pouvez étudier les implémentations de bases de données si vous utilisez vos compétences en matière de recherche sur Google - trouvez des articles et des didacticiels pertinents sur YouTube. Vous devrez cultiver votre capacité à élaborer des requêtes de recherche appropriées pour les questions auxquelles vous avez besoin de réponses. Après tout, un programmeur est quelqu'un qui a une ceinture noire en googler.

7. Maven/Gradle

Vous devez apprendre le framework Gradle ou Maven. Ils sont destinés à la construction de projets, et pour vous, Java n'est plus seulement pour les tâches impliquant quelques classes, mais aussi un langage pour écrire des applications à part entière.

Vous devez comprendre comment construire un projet, quelles sont les étapes de construction, comment charger les bibliothèques externes nécessaires avec du code tiers, et bien plus encore.

Malgré le fait que Gradle soit plus récent et plus concis, Maven est utilisé dans la plupart des cas. Alors, portez une attention particulière au cycle de vie de la construction Maven.

8. Gite

Git est un système de contrôle de version distribué. Cette technologie permet aux développeurs de collaborer sur une seule application sans interférer les uns avec les autres.

Bien sûr, il existe d'autres systèmes de contrôle de version. Par exemple, Subversion. Mais Git est le plus utilisé et vous devez être capable de travailler avec. En plus des nombreux articles sur Git que vous pouvez trouver en ligne, YouTube a plus qu'assez de vidéos pour vous aider à maîtriser cette technologie, étape par étape.

Au début, il est préférable d'utiliser Git à partir de la ligne de commande plutôt qu'une sorte d'implémentation d'interface graphique, car vous serez obligé de tout faire à l'aide de commandes. Dans les entretiens, les gens aiment souvent poser des questions sur quelques commandes Git, je vous recommande donc de les écrire et de les garder à proximité.

9. JDBC

Cette technologie connecte votre application Java et une base de données relationnelle. Pour les bases, lisez n'importe quel tutoriel JDBC.

Il existe une abondance d'articles qui expliquent JDBC et fournissent des exemples rudimentaires, même si personne n'utilise plus directement JDBC nu.

10. APP. Hiberner

JPA est un moyen d'établir une connexion entre une application Java et une base de données, tout comme JDBC. Mais en même temps, JPA est une technologie de niveau supérieur et donc plus facile à utiliser.

Mais JPA n'est qu'une spécification, pas une implémentation. Il a besoin d'une mise en œuvre concrète. Beaucoup d'entre eux existent, mais le plus proche des idéaux JPA, le plus populaire et le plus développé est Hibernate.

Vous rencontrerez cette technologie plus d'une fois dans votre carrière de développeur de logiciels. Ainsi, en plus de se familiariser avec cette technologie en lisant des articles, il peut être intéressant de penser à lire un livre, par exemple, "Java Persistence API".

11. Printemps

Lorsque vous devenez développeur Java, Spring n'est plus qu'un mot pour vous. Connaître ce framework est maintenant aussi important que connaître la syntaxe Java. On pourrait dire que Spring a un frère, c'est-à-dire Java EE. Mais Java EE est obsolète et n'est plus utilisé sur de nouveaux projets.

L'écrasante majorité des développeurs Java sont désormais des développeurs Java-Spring, il est donc indispensable de connaître certaines technologies Spring de base.

Spring n'est pas qu'un framework, mais tout un framework de frameworks :

Et ce n'est qu'un sous-ensemble des frameworks fournis par Spring. Pour un débutant, n'en connaître que quelques-uns suffit :

Noyau de ressort

Vous devriez mettre cela en premier lieu, afin que vous puissiez comprendre ce qu'est Spring - tout sur les conteneurs Spring, les beans, DI, IoC, etc. Pour comprendre la philosophie même de l'utilisation de Spring, pour ainsi dire. Votre étude plus approfondie des frameworks Spring s'appuiera sur cette base. Peut-être devriez-vous créer votre propre petite application dans laquelle vous pourrez progressivement intégrer toutes les technologies nouvellement apprises.

Printemps JDBC

Plus tôt, nous avons mentionné JDBC comme une technologie permettant de créer une connexion à une base de données. En général, l'utilisation "nue" de la technologie ne se retrouve plus dans les projets, vous pouvez donc en conclure que l'apprentissage de JDBC n'est pas nécessaire. Ce n'est pas tout à fait la bonne attitude.

En explorant l'utilisation nue (directe) de JDBC, vous pouvez voir la technologie à un niveau inférieur et comprendre ses problèmes et ses lacunes. Ensuite, lorsque vous commencerez à apprendre Spring JDBC, vous réaliserez exactement ce que ce framework améliore, optimise et cache.

Hibernation du printemps

Analogue à la situation avec JDBC nu, ce framework exploite une technologie existante, dans ce cas, Hibernate. Si vous envisagez d'utiliser Hibernate sans Spring, vous réaliserez certainement les avantages qu'offre Spring Hibernate.

APP du printemps

Plus tôt, nous avons parlé de JPA et mentionné qu'il ne s'agit que d'une spécification, bien qu'elle ait diverses implémentations. Parmi ces implémentations, Hibernate se rapproche le plus de l'idéal.

Spring a sa propre implémentation JPA idéale qui utilise Hibernate sous le capot. Il est aussi proche que possible de l'idéal de la spécification JPA.

Il s'appelle Spring JPA. En un mot, cela simplifie grandement l'accès à la base de données.

Vous ne pouvez apprendre JPA que sans apprendre JDBC, Hibernate, Spring JDBC ou Spring Hibernate. Mais si vous adoptez cette approche, vos connaissances sur la façon de vous connecter à une base de données seront très superficielles.

MVC de printemps

Cette technologie permet d'afficher l'interface web de notre application aux utilisateurs et de faciliter la communication entre l'interface et le reste de l'application. La technologie peut également être utilisée sans affichage lorsque vous avez une application chargée de gérer l'affichage et que vous interagissez avec l'application à l'aide de la technologie RESTful.

Afin de mieux s'imprégner des informations sur le printemps, en plus des articles et des conférences YouTube, vous pouvez lire plusieurs livres. Par exemple, "Spring in Action" de Craig Walls. Un autre grand livre sur le printemps est "Spring 5 for the Professionals". C'est plus dense. Plus comme une référence qu'il est plus précieux de garder à portée de main que de lire d'un bout à l'autre.

Botte de printemps

Cette technologie simplifie grandement l'utilisation de Spring. Je ne l'ai pas mis en fin de liste sur un coup de tête. En effet, elle cache beaucoup de choses sous le capot, et pour quelqu'un qui ne connaît pas la vanille Spring, de nombreux points peuvent être flous ou incompréhensibles.

Tout d'abord, pour mieux comprendre le fonctionnement des frameworks Spring, vous devez utiliser Spring standard, puis profiter de tous les avantages supérieurs de l'utilisation de Spring Boot.

Vous devez également vous familiariser avec Spring Security et Spring AOP. Mais contrairement aux technologies ci-dessus, une connaissance approfondie de ces deux technologies n'est pas encore nécessaire.

Cette technologie n'est pas pour les débutants. Lors des entretiens, les développeurs juniors ne seront pas interrogés à leur sujet (sauf une question superficielle, peut-être). Lisez un aperçu de ce que sont ces technologies et des principes derrière leur travail.

Plus vous en savez, plus vite vous trouverez votre premier emploi.