Avec le recul, je suis dans le domaine Java depuis près de 15 ans. Même si mes connaissances sont moyennes, partager mon expérience peut aider chacun à éviter des détours.
[Mise en route]
J'étais dans le camp C/C++ avant 2001, avec des bases en C et orienté objet. Plus tard, je suis passé à Java et j'ai découvert que Java sans pointeurs était vraiment. simple De plus, Java La bibliothèque de classes est si facile à utiliser qu'elle fait pleurer les gens.
Plus tard, j'ai lu "Penser en Java" et "Java Core Technology", et je n'ai pas senti que c'était difficile.
Si je n'avais jamais appris une autre langue auparavant, ou si je devenais moine et me tournais vers l'industrie informatique, je ne lirais pas d'abord les deux livres ci-dessus. Au lieu de cela, je choisirais " " Head First Java ", ce livre convient très bien aux novices n'ayant aucune connaissance de base. Il est facile et amusant à lire. Si vous n'y croyez pas, regardez la première page
mais le simple fait de lire le livre est assez ennuyeux, autant le regarder en conjonction avec la vidéo. Je pense que la vidéo Java de base du Chuanzhi Podcast est très bonne (oh, j'ai mis un. publicité pour Chuanzhi). Vous pouvez la trouver en recherchant en ligne. Si vous ne la trouvez pas, venez simplement sur mon groupe QQ (numéro de groupe : 159610322)
Remarque : l'avantage de la vidéo est que vous pouvez. voir le processus de saisie du code. Le code est vivant, ce qui est très cool. Si la vidéo ne parle que de programmation basée sur PPT, jetez-la de manière décisive.
Les livres ont aussi les avantages des livres. Ce qui peut être écrit dans un livre doit être quelque chose que l'auteur peut formuler après une réflexion et un tri systématiques, c'est donc relativement systématique.
Le livre présente également d'autres avantages, comme celui de pouvoir le feuilleter avec désinvolture et retrouver les points clés à lire encore et encore.
Donc, un mélange de lecture de livres classiques + d'excellentes vidéos devrait être la meilleure façon de commencer.
Pour débuter avec Java, je n'irai pas à des cours de formation, ce qui est un gaspillage d'argent, l'auto-apprentissage suffit.
Pendant le processus d'auto-apprentissage, si j'ai un expert avec une riche expérience pratique pour me guider, dessine-moi une carte d'itinéraire, indique la direction de la montée, où se trouvent les pièges et où je ne dois pas gaspiller temps, mon auto-apprentissage peut être réduit. Explorez et évitez les détours,
Malheureusement, je ne l'ai pas rencontré à l'époque. Si je pouvais remonter le temps, j'essaierais de trouver quelqu'un pour me guider.
[Pratique]
L'une des caractéristiques de l'industrie du logiciel est que vous n'apprendrez jamais simplement en regardant et en faisant. Si vous avez moins de 100 000 lignes de codage, vous serez gêné de le faire. sors et dis bonjour.
Alors entraînez-vous, entraînez-vous, entraînez-vous !
Pendant mes études, je ferai toujours de mon mieux pour trouver des projets à réaliser (veuillez vous référer à mon autre article "Enrichissez votre CV à partir de maintenant", répondez à "CV" pour voir), mais je peux vraiment Je ne le trouve pas. Vous pouvez d'abord poser de bonnes bases
Quand j'étais à l'université, j'utilisais "Data Structure" de Yan Weimin, j'ai aussi fait tous les exercices à ce moment-là, et quand j'ai pris le programmeur senior. examen, ma note était très bonne.
Plus tard, j'ai découvert un meilleur livre d'introduction aux algorithmes, "Algorithme". Si je pouvais remonter le temps, j'implémenterais toujours toutes les structures de données et les algorithmes mentionnés dans ce livre en utilisant Java. faire tous les derniers devoirs.
C'est une formation très importante, car je sais que si je la fais vraiment, je découvrirai que tant que je ne concevrai pas d'algorithmes, les structures de données de base ne pourront pas me dérouter.
[Java SE]
Pour le framework de collection Java, non seulement vous devez apprendre à l'utiliser, je vais aussi essayer de l'implémenter, List, ArrayList, Set, HashSet , Map, HashSet, etc. Si vous ne savez pas écrire, regardez simplement le code source du JDK. Il y a les meilleurs professeurs là-bas.
Après l'avoir implémenté, vous pourrez mieux comprendre la conception orientée objet, la relation entre les interfaces, les classes abstraites et les classes concrètes, comment séparer les responsabilités, et vous apprendrez les méthodes de modèle dans les modèles de conception, l'itérateur, etc. .
Il convient de mentionner qu'Iterator est très intéressant. Je me souviens encore clairement de l'enthousiasme lorsque j'ai implémenté Iterator dans le framework de collection cette année-là :-)
Lors de l'implémentation du framework de collection Java En faisant cela. , vous pouvez également apprendre les génériques. Si vous ne l'apprenez pas, vous ne pourrez pas l'implémenter.
Dans le monde Java, tout est objet. Tout le monde connaît l'encapsulation, l'héritage et le polymorphisme, mais les comprendre n'est qu'une introduction, et il est impossible de créer un véritable programme orienté objet.
Il existe un livre classique "Développement logiciel agile, principes, modèles, pratiques", qui explique en détail un cas de paiement de salaire, qui est le meilleur exemple de conception orientée objet à ce jour
Je vais l'implémenter en Java pour vraiment expérimenter OOD et comprendre comment attribuer les responsabilités appropriées aux classes appropriées, ce qu'est la programmation orientée interface plutôt que celle orientée implémentation, et quelle est la priorité d'utiliser la composition plutôt que l'héritage.
Pour les threads Java, l'accent est toujours mis sur la compréhension des concepts, car je sais que dans les travaux futurs (à moins d'être engagé dans la programmation au niveau système), l'opportunité d'écrire mes propres threads/pools de threads est très rare, et ils sont le tout encapsulé par des bibliothèques de classes et des frameworks. Le point clé est donc de comprendre.
Si vous lisez un livre, c'est bien sûr "Java Concurrent Programming in Practice", écrit par de nombreux experts.
Pour Java IO, je pense que la conception de l'architecture est très élégante et typique des universitaires, mais elle n'est pas très pratique. Il faut utiliser le mode décorateur pour ouvrir et lire. un dossier. Viens faire mes valises, je suis tellement fatiguée.
Dans le projet actuel, il s'agit de lire un fichier de propriétés et un fichier XML. Je me concentre toujours sur la compréhension du concept et du design.
Mais ce serait bien d'écrire vous-même un simple analyseur XML.
En ce qui concerne AWT et Swing, jetez-y un coup d'œil. Je n'entrerai pas dans les détails. Java est un langage côté serveur typique, et très peu de programmes côté client y pensent. , vous utilisez Swing/AWT. Lorsqu'un programme de bureau sort, le client doit installer un JRE avant de pouvoir l'exécuter. N'est-ce pas un peu excessif ? Pour autant que je sache, certaines applications dans les banques utilisent Swing et AWT. Certains diront peut-être qu'Applet était autrefois populaire, mais personne ne l'utilise aujourd'hui.
Je ne perdrai donc pas de temps sur Swing et AWT.
Java Reflection ne semble pas aussi éblouissant que les frameworks de collection, les threads, OO, etc., mais c'est la base de nombreux frameworks (SSH) (répondez à "Reflection" pour voir les articles liés), apprenez les bases d'abord, puis Java EE doit l'utiliser.
Si vous voulez vraiment bien apprendre Java, comment est-ce possible si vous ne comprenez pas la machine virtuelle Java ? Vous devez lire "Compréhension approfondie de la machine virtuelle Java". L'objectif après l'avoir lu est d'écrire un simple décompilateur Java.
【Être un codeur Java qualifié】
Je me souviens qu'en 2008, mon responsable IBM a dit que le modèle de conception est une compétence nécessaire, non, nous ne pouvons pas demandez à quelqu’un qui comprend les modèles de conception.
Les modèles de conception sont donc un incontournable. En fait, ils sont beaucoup utilisés en Java. Ils sont simplement un manuel vivant de méthodes d'usine, de singletons, de méthodes de modèles, de décorateurs et de chaîne de responsabilité. sont tous reflétés.
Bien sûr, je lirai d'abord le relaxant "Head First Design", Eric Gamma, l'un des auteurs de "Design Patterns", le recommande vivement et c'est à ne pas manquer.
Quelques années plus tard, mon responsable IBM a déclaré que désormais tout le monde connaît notre modèle de conception par défaut et que la pratique agile est une compétence nécessaire !
Donc, je dois connaître JUnit, je dois connaître le refactoring et je dois connaître les pratiques agiles les plus élémentaires telles que TDD et l'intégration continue, sinon je serai méprisé par les autres.
En tant qu'aspirant codeur Java, je dois suivre les normes de codage Java lors de l'écriture de code, telles que la mise en majuscule de la première lettre des noms de classe, l'enregistrement en minuscules et les noms de méthodes en minuscules... etc.
En tant que passionné de code, je ne supporte pas le code sale, je continuerai à peaufiner mon code jusqu'à ce qu'il ressemble à un artisanat.
Comment pouvez-vous manquer les meilleures pratiques de Java « Java efficace » ? Il regorge des meilleures utilisations de la programmation Java résumées par les auteurs du JDK.
Cependant, la traduction n'est vraiment pas très bonne. De nombreuses phrases doivent être soigneusement étudiées pour savoir ce qu'elles signifient, j'ai donc l'intention d'enregistrer une série de vidéos pour les expliquer, alors restez à l'écoute.
[Java EE]
Après avoir marché jusqu'ici, je suis finalement arrivé à Java EE. Java n'est-il pas uniquement destiné à écrire des applications Web côté serveur ?
J'écrirai moi-même un programme Web. Je pourrais envisager de transformer le cas classique de paiement de salaire mentionné ci-dessus en une version Web, en utilisant la technologie la plus basique Servlet/jsp/jdbc.
Ensuite, étudiez Struts, écrivez vous-même un framework MVC simple et utilisez-le dans votre propre programme Web. C'est ce qu'on appelle manger votre propre nourriture pour chien.
Ensuite, étudiez Hibenete, écrivez vous-même un cadre de cartographie simple en salle d'opération et mangez à nouveau votre propre nourriture pour chien.
Alors lisez le livre classique "Développement J2EE sans EJB". Oui, il a été écrit par Rod Johnson, l'auteur de Spring. Il a bouleversé la compréhension de tout le monde sur les EJB lourds et a ouvert une nouvelle ère.
Avec la base de ce livre, il n'est pas difficile d'écrire vous-même une injection de dépendance simplifiée. Après l'avoir écrite, vous pouvez l'utiliser dans votre propre programme Web et manger votre propre nourriture pour chien pour la dernière fois.
Vous saurez quand vous le ferez. Tout cela repose sur Java Reflection.
À l'avenir, vous devriez trouver de vrais projets sur lesquels travailler, ou trouver des stages. C'est un autre sujet, et nous en reparlerons plus tard.
[Lecture du code]
Vous êtes familier avec trois cents poèmes Tang et pouvez les réciter même si vous ne savez pas comment les composer
L'imitation est le meilleur moyen de apprendre! Examinez de plus près la façon dont les experts écrivent leur code et, ce faisant, vos propres compétences en arts martiaux s'amélioreront également.
Si j'avais un bon maître à mes côtés, que je le suivais et que je le regardais programmer, à quelle vitesse m'améliorerais-je.
Pendant l'apprentissage de Java SE et Java EE, je lirai ces codes sources :
Code source de Java Collection dans JDK : le truc de l'ancêtre est absolument classique
Code source de JUnit : Découvrez comment Eric Gamma et Kent Beck créent des systèmes à travers des modèles (répondez à "JUnit" pour voir)
SpringSide : avec Spring Framework comme noyau, un exemple de référence d'application JavaEE de style pragmatique, qui est la technologie grand public du monde JavaEE sélection, synthèse et démonstration des meilleures pratiques.
Développé par des Chinois, fortement recommandé.
De plus, j'étudierai encore le fameux forum Jive du début de ce siècle Bien qu'il soit très ancien et que le code source soit très académique, c'est simplement le camp de base des design patterns et ils le sont tous. exemples vivants d'application
Il existe un mode proxy pour implémenter le contrôle des autorisations, qui est encore frais dans ma mémoire.
De plus, si vous avez du temps libre et que vous êtes intéressé, vous pouvez bien sûr lire le code source de Struts, Spring et hiberner, et même participer au développement.
Comment apprendre Java, c'est mon sentiment depuis tant d'années, et c'est juste mon discours de famille. Bienvenue à communiquer avec moi.
Apprendre la programmation n'a jamais été facile. Il est impossible d'apprendre en regardant des vidéos ou en lisant des livres. Cela demande beaucoup de programmation et de pratique. Bien que la programmation soit un travail mental et physique extrêmement dur, la joie de la création qu’elle contient est également sans précédent. J'espère que tout le monde pourra apprécier ce processus et en profiter.
Attention aux étudiants qui apprennent Java ! ! !
Si vous rencontrez des problèmes pendant le processus d'apprentissage ou si vous souhaitez obtenir des ressources d'apprentissage, vous êtes invités à rejoindre le groupe d'échange d'apprentissage Java : 159610322 Apprenons Java ensemble !
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!