Après avoir travaillé pendant deux ans après avoir obtenu mon diplôme, je ne savais pas ce que je faisais et je n'ai appris aucun travail technique. Plus tard, j'ai entendu parler du poste de programmeur grâce à mes amis, et ils me l'ont dit. le salaire était si élevé, alors je suis allé en ligne pour en savoir plus, et j'étais très excité et je voulais rejoindre la grande famille des programmeurs. Après six mois d'études approfondies, j'ai trouvé ce qu'on appelle. travail en tant que programmeur Java. Après cela, j'ai lentement accumulé de l'expérience, et maintenant ce n'est qu'alors que je pourrai partager mon expérience et mes idées avec vous ici, hehe~ Je n'entrerai pas dans les détails des bêtises, passons rapidement aux points clés. apache php mysql
commencez !
Parlons d'abord de ce que demandent les entretiens de recrutement social d'Alibaba. En fait, ce sujet n'est pas un secret. Tous les étudiants qui ont passé un entretien chez Alibaba peuvent répondre à une ou deux questions.
La première étape est la langue principale et la deuxième étape est le projet.
Je crois que de nombreuses personnes ont déjà vécu cela au cours du processus d'entretien. La plupart des entretiens sont divisés en deux étapes, mais pour différentes entreprises et postes, chacun Le niveau de difficulté des entretiens par étapes varie, et le niveau de difficulté des entretiens par étapes varie. L’éventail des questions posées variera naturellement.
En parlant de la difficulté de l'interview, je dois bavarder D'après un commentaire que j'ai vu quelque part en ligne, en termes de difficulté technique de l'interview, l'ordre de BAT est le suivant, Alibaba>Baidu> Tencent.
À cet égard, les sentiments réels de l'auteur sont cohérents avec ce qui précède, car j'ai participé à des entretiens avec Baidu et Alibaba. En termes de sentiments personnels, Alibaba est plus difficile que Baidu.
Cependant, l'auteur a déclaré qu'Alibaba est plus difficile que Baidu. En fait, cela se limite à l'entretien spécifique de l'auteur. En fait, la difficulté spécifique des entretiens entre les deux sociétés ne peut pas être comparée aussi simplement.
La difficulté de l'entretien dépend du poste (comme un ingénieur de bas niveau ou un senior), du département (comme un service commercial ou un service R&D pur), de la différence des besoins d'emploi (comme un besoin urgent ou réserve de talents), l'intervieweur. En fonction de vos préférences (par exemple si vous êtes du genre frimeur ou du genre doux) et d'autres facteurs, même dans la même entreprise, la difficulté sera différente, vous ne pouvez donc pas simplement comparer la difficulté de entretiens entre deux entreprises.
Que ce soit difficile ou non, vous ne le saurez que si vous l'essayez !
Alors, l'équipe middleware d'Alibaba vous souhaite la bienvenue ! (Ahem, ne me demandez pas pourquoi j'ai ajouté cette phrase, je ne peux pas dire, 0-0)
LZ sera divisé en quatre parties pour discuter de cette question. Puisque LZ lui-même est originaire de Java, les questions sur le langage principal sont toutes liées à Java et aux étudiants d'autres langages peut l’ignorer de manière sélective. De plus, au cours de l'entretien, les questions de l'intervieweur s'emboîtent généralement et s'approfondissent progressivement. Cela se ressent plus clairement ci-dessous.
1. Le langage principal lui-même et ses fonctionnalités avancées.
Bien sûr, la langue principale est celle que vous utilisez pour gagner de l'argent en semaine. Ne dites pas à LZ que vous n'avez pas de langue principale, que vous connaissez N plusieurs langues ou que vous maîtrisez N plusieurs langues. Si vous insistez pour le dire, vous pouvez venir à Hangzhou et essayer. LZ promet de ne pas vous battre à mort, mais tout au plus de vous paralyser.
Le langage principal de LZ est évidemment Java. Alors pour Java, quels sont son langage lui-même et ses fonctionnalités avancées les plus faciles à poser en entretien ?
Dans des circonstances normales, les principaux points de connaissance suivants sont faciles à poser. (PS : voici quelques points de connaissances relativement avancés sur Java, car nous parlons de recrutement social, pas de recrutement scolaire)
1) Structure de données Java Principes d'implémentation de classe pertinents, tels que LinkedList, ArrayList , HashMap et TreeMap. Ce qui suit simule simplement un canon en série d'une structure de données.
Par exemple, l'intervieweur vous demande d'abord si le HashMap est en ordre ?
Vous devez répondre que ce n'est pas recevable. Ensuite, l'intervieweur continuera à vous demander : existe-t-il un cours d'implémentation séquentielle de Map ?
Si vous dites que vous ne savez pas pour le moment, alors cette question s'arrêtera ici. Si vous dites qu'il existe TreeMap et LinkedHashMap.
Ensuite, l'intervieweur peut vous demander ensuite, comment TreeMap et LinkedHashMap garantissent-ils leur commande ?
Si vous ne pouvez pas répondre, arrêtez-vous ici. Si vous répondez quand même, l'intervieweur continuera à vous demander lequel des deux, selon vous, a une mise en œuvre la plus ordonnée ?
Si vous pouvez toujours répondre, l'intervieweur continuera à vous demander, pensez-vous qu'il existe un moyen meilleur ou plus efficace de le mettre en œuvre ?
Si vous pouvez encore le dire, alors je peux certainement encore vous poser beaucoup de questions sur la méthode de mise en œuvre que vous avez mentionnée.
Ce qui précède est un exemple de l'intervieweur posant des questions étape par étape. Par conséquent, si vous ne savez pas grand-chose, ne soyez pas superficiel, car vous pourriez être exposé à la question suivante. Il est préférable de simplement dire non, de mettre fin au problème et de passer rapidement à un domaine que vous connaissez.
2) Les classes du package concurrent Java, quelles sont leurs fonctions et leurs principes d'implémentation. Ces classes sont sous le package java.concurrent. Comme ci-dessus, nous simulons également simplement un canon en série de packages simultanés.
Par exemple, l'intervieweur peut vous demander d'abord, si vous voulez réaliser que tous les threads attendent qu'un événement se produise ensemble, et lorsqu'un événement se produit, tous les threads commencent à s'exécuter ensemble, qu'est-ce que le problème ? Est-ce une bonne idée ?
A ce moment, vous pouvez dire que vous pouvez utiliser une barrière (CyclicBarrier dans le package de concurrence de Java), alors l'intervieweur continuera à vous demander, connaissez-vous son principe de mise en œuvre ?
Si vous continuez à répondre, l'intervieweur peut continuer à vous demander, connaissez-vous d'autres méthodes de mise en œuvre ?
Si vous pouvez encore citer de nombreuses façons d'y parvenir, continuez à vous demander, laquelle de ces façons vous semble-t-elle la meilleure ?
Si vous dites qu'une certaine manière est meilleure, l'intervieweur peut toujours continuer à vous demander. Si on vous demande de l'écrire, pensez-vous qu'il existe une meilleure façon d'y parvenir ?
Si vous pouvez encore indiquer votre propre meilleure méthode de mise en œuvre à ce moment-là, alors l'intervieweur continuera certainement à vous poser des questions à ce sujet.
C'est la raison pour laquelle vous devez guider l'intervieweur pendant l'entretien. Parce que les questions de l'intervieweur sont souvent traçables. Si vous captez sa trajectoire et pouvez deviner ce qu'il est susceptible de demander ensuite, vous pouvez alors aller dans la direction dans laquelle vous souhaitez parler lorsque vous répondez. De cette façon, vous paraîtrez plus calme et à l’aise lors de l’entretien.
3) Contenu des packages IO et des packages NIO. NIO sera au centre de cette partie. La plupart des packages IO vous seront familiers, vous pouvez donc les ignorer et vous poser directement des questions sur le contenu de NIO.
Le contenu du package IO et du package NIO est relativement petit. Tout d'abord, vous devez être familier avec le modèle NIO. En particulier, le sélecteur doit être très clair sur ses responsabilités et ses principes de mise en œuvre. En fait, le cœur de NIO est le pool de threads IO. Ce point clé doit être rappelé. Parfois, l'intervieweur peut également vous poser des questions sur le modèle de conception du package IO (modèle de décorateur). Pourquoi est-il conçu comme ça ?
Certains intervieweurs vous demanderont également si vous avez un meilleur design. Pour le moment, si vous ne le savez pas, veuillez dire de manière décisive que votre niveau actuel est limité et que vous ne pouvez pas penser à un meilleur design. Ne parlez pas avec désinvolture.
4) Contenu de la machine virtuelle Java. Cette partie comprend principalement trois parties, GC, mécanisme de chargement de classe et mémoire.
Un simple canon en série pour la partie GC.
L'enquêteur peut d'abord vous demander quand un objet sera-t-il GCed ?
Continuez ensuite à vous demander pourquoi l'objet sera GCed à ce moment-là ?
Alors continuez à vous demander quelles sont les classifications des stratégies GC ?
Si vous prenez la parole, laissez-moi continuer de vous demander quels sont les avantages et les inconvénients de chacune de ces stratégies ? À quels scénarios sont-ils applicables ?
Après avoir continué à vous exprimer, vous donner un scénario pratique et vous laisser choisir une stratégie GC ?
Si vous l'avez choisi, laissez-moi continuer à vous demander, pourquoi avez-vous choisi cette stratégie ?
Ce qui suit est une simple série de plans sur le mécanisme de chargement des classes.
Tout d'abord, je dois vous demander quels sont les chargeurs de classes de Java ?
Après avoir répondu à ces questions, on vous demandera peut-être quelles classes sont chargées par chaque chargeur de classe ?
Après avoir fini de parler, on vous demandera peut-être quelle est la relation parent-enfant entre ces chargements de classe ?
Vous pouvez mentionner le modèle de délégation parentale lorsque vous répondez, afin de pouvoir continuer à vous demander quel est le modèle de délégation parentale ?
Après avoir fini d'expliquer, vous pouvez continuer à vous demander pourquoi le chargeur de classe Java utilise-t-il le modèle de délégation parent ?
Après avoir répondu, vous pouvez continuer à demander comment personnaliser votre propre chargeur de classe et comment gérer la relation entre votre propre chargeur de classe et le chargeur de classe fourni avec Java ?
Encore une série sur la mémoire.
Tout d'abord, je dois vous demander en quelles parties la mémoire est divisée, et quelles données sont stockées dans ces parties ?
Alors continuez à vous demander comment un objet survit et est transféré dans ces pièces de la création à la destruction ?
Ensuite, on vous demandera peut-être, quelles parties de la mémoire participeront au recyclage des GC ?
Après avoir terminé, je peux vous demander comment le modèle de mémoire de Java est conçu ?
Après votre réponse, ils continueront à vous demander pourquoi vous l'avez conçu de cette façon ?
Après avoir posé la question, il vous sera peut-être également demandé de parler du rôle du mot-clé volatile en conjonction avec la conception du modèle de mémoire ?
Lorsque vous parlez, vous mentionnerez certainement la visibilité, donc après les trois mots visibilité, vous pourrez continuer à poser des questions sur le contenu simultané.
Fondamentalement, le langage Java lui-même et le contenu légèrement plus avancé du langage sont les parties ci-dessus Si vous pouvez bien comprendre les quatre parties ci-dessus, alors fondamentalement, il n'y aura aucun problème avec cette partie de Java. , car Le contenu ci-dessus suffit à lui seul pour que vous puissiez discuter longtemps avec l'intervieweur. Si vous parlez de ces choses pendant longtemps, le temps nécessaire pour vous poser d'autres questions sera naturellement plus court.
Vous devriez également pouvoir le ressentir à partir du processus de rédaction de ces questions par LZ. Plusieurs fois, l'intervieweur posera des questions dans le même sens. Si vous sentez que vous n'êtes pas familier avec cette ligne, vous devriez le faire. posez-le à temps. Retournez-vous et guidez l'intervieweur pour qu'il pose d'autres questions. Ne continuez pas à avancer jusqu'à ce que vous ne puissiez plus sauter, sinon ce sera embarrassant.
2. Parlez de votre projet et intercalez les questions
Cette partie est l'entretien que vous devez poser See More pendant le processus, et c’est aussi l’étape où vous discutez le plus longtemps. À moins que votre partie linguistique précédente soit très solide, si solide que l’intervieweur demande depuis une heure ou deux et n’a toujours pas découvert à quel point vous comprenez la langue elle-même. Sinon, vous ne pourrez certainement pas échapper à l'obstacle de votre propre projet, et généralement la conversation ne sera pas trop courte.
Le schéma général pour cette partie est que vous parlez des projets que vous avez réalisés, puis l'intervieweur vous demandera soudainement d'en expliquer une certaine partie, par exemple en vous demandant d'expliquer pourquoi vous avez fait ce que vous faisiez à ce moment-là, ou demandez si vous pensez qu'il existe une meilleure solution maintenant. La plupart de ces questions entrecoupées sont liées à la technologie utilisée dans votre projet. Ce que vous devez faire est de résumer de manière complète et complète les projets que vous avez réalisés (en particulier le ou les deux projets récents), et d'en extraire un, voire N points forts, afin que vous puissiez donner à l'intervieweur une impression particulière le moment venu. .Sensation lumineuse. Si vous parvenez à obtenir cet effet, vous n’êtes fondamentalement pas loin du succès.
Cette partie du contenu étant étroitement liée à la propre expérience de chacun, il est impossible de lister ici les questions possibles. Cet article « Expérience d'entretien avec le programmeur : devez-vous répondre aux questions avant l'entretien et comment vous préparer avant l'entretien » a déjà été rédigé par LZ. Il explique brièvement comment résumer avant l'entretien. Si vous êtes intéressé, vous pouvez le consulter.
3. Points supplémentaires
Les deux étapes ci-dessus sont fondamentalement requises, et il y a quelques points supplémentaires. Parmi ces points bonus, l'intervieweur vous posera également des questions sur certains contenus (comme le protocole TCP/IP, l'algorithme), mais la plupart d'entre eux vous demanderont d'abord si vous le comprenez. Si vous le comprenez, continuez la conversation. Si vous ne le comprenez pas, sautez-le. Si vous le réussissez, vous ne serez pas jeté directement en enfer à cause de ce genre de problème.
Désormais, LZ listera ces points bonus Si possible, ces points bonus doivent encore être combattus.
1. Principes des systèmes informatiques.
2. Protocole de communication réseau (TCP/IP, HTTP, etc.).
3. Structure des données et algorithme.
4. Code source de projets open source célèbres.
5. Vous avez votre propre projet open source.
6. Votre blog personnel.
7. A ajouter dans la zone commentaire.
Parmi ces éléments, pour les 1 à 3 premiers éléments, si vous le saviez bien avant mais que vous l'avez oublié en raison de problèmes de temps, vous pouvez toujours le faire temporairement. Quant aux 4 à 6 éléments suivants, ils nécessitent une accumulation quotidienne et ne peuvent pas être réalisés en peu de temps. Si vous n'accumulez pas d'argent quotidiennement, les trois points bonus suivants ne peuvent être que supprimés.
4. Contenu lié à votre poste
En fait, ce dernier élément est un complément aux trois précédents, vous devriez essayer de vous concentrer dessus Contenu pertinent au poste pour lequel vous passez un entretien. Par exemple, si vous passez un entretien pour un poste en informatique en temps réel, votre algorithme doit être puissant, vous devez être familier avec les célèbres projets open source d'informatique en temps réel, il est préférable d'avoir lu le code source et vous devez avoir certaines connaissances sur les systèmes distribués.
Il n'y a donc pas de contenu spécifique dans cette partie 4. Elle vous rappelle juste que si vous êtes très clair sur votre poste d'entretien, il est préférable d'essayer de vous rapprocher des exigences du poste lors de la préparation avant l’entretien. De cette façon, vous aurez plus de chances de réussir.
Après avoir lu ceci, je voudrais ajouter quelques mots simples sur la partie canon en série. La raison pour laquelle j'ai donné autant d'exemples de canons en série ci-dessus n'est en fait pas pour que tout le monde la mémorise. Je veux que vous fassiez l’expérience de la routine des entretiens de recrutement social.
En dernière analyse, ces exemples de canons en série visent à tester votre compréhension d'un certain point de connaissance. En ce qui concerne l'expérience personnelle de l'auteur, en fait, vous n'avez pas besoin de comprendre profondément chacun des canons en série mentionnés ci-dessus. Il vous suffit d'avoir un ou deux points relativement profonds, voire dépassant la compréhension de l'intervieweur. Les exigences ont été remplies.
Souvent, l'intervieweur n'a pas besoin que vous approfondissiez chaque point de connaissance. Il vérifie simplement votre capacité de compréhension et si vous avez accumulé certaines compétences.
Si un intervieweur vous rejette simplement à cause d'un ou deux points de connaissances techniques, alors il n'y a que deux possibilités. La première est que ce point peut effectivement être le poste pour lequel vous passez un entretien. Par exemple, si vous passez un entretien pour des postes algorithmiques, cela ne fonctionnera pas si vous n'avez pas de bons algorithmes. Ou si vous passez un entretien pour des postes techniques favorisant l'exploitation et la maintenance, vous ne pourrez pas bien jouer à Linux.
La deuxième possibilité est - il s'exhibe, -_-.
Les programmeurs ont de nombreux points communs que «l'armée régulière» de programmeurs n'a pas. L'un des points communs les plus typiques est que les programmeurs passeront par une étape d'apprentissage et d'entrée de gamme après leur entrée dans la société.
C'est précisément à cause de cela qu'un grand nombre d'établissements de formation sont apparus dans la société. Par conséquent, la première question à laquelle les programmeurs « sauvages » sont souvent confrontés lorsqu'ils entrent dans l'industrie est de savoir s'ils doivent étudier par eux-mêmes ou choisir. un établissement de formation ?
L'auteur a reçu d'innombrables questions de ce genre. En fait, ce problème ne peut pas être généralisé. Il nécessite une analyse spécifique de la situation spécifique. Mais si vous voulez le formuler simplement et grossièrement, en supposant que votre famille. ne manque pas de frais de formation, alors allez dans les établissements de formation, sinon n'y allez pas.
Après tout, si vous dépensez de l'argent, vous disposerez toujours de plus de ressources d'apprentissage, ce qui est au moins mieux que rien.
Donc, en termes simples, cette question est : Partez si vous avez de l'argent, et étudiez par vous-même si vous n'avez pas d'argent.
Tout comme la blague classique, les étudiants qui disent avoir une phobie lorsqu'ils achètent des choses n'ont pas vraiment de phobie. La seule raison est la pauvreté, hahaha.
En plus du point commun ci-dessus, les programmeurs « sauvages » ont un autre point commun, c'est-à-dire que la courbe d'apprentissage sera différente de celle des programmeurs « de l'armée régulière ». Le premier va de la pratique à la théorie, et le second. va de théorie en théorie. Dans la pratique, cela conduira au fait que les programmeurs « sauvages » n'ont généralement pas de compétences de base très solides, telles que les algorithmes, les principes des systèmes informatiques, les réseaux informatiques, etc.
En privé, d'innombrables camarades de classe m'ont posé la même question : l'algorithme est-il important ? L’algorithme sera-t-il testé lors de l’interview d’Alibaba ?
En fait, à la première question, à savoir si les algorithmes sont importants ou non, j'ai ici deux réponses. Si les étudiants qui viennent poser cette question se confrontent, ils découvriront peut-être que la réponse de l'auteur à tout le monde est. légèrement différent.
Si un étudiant le demande, l'auteur lui dira que les algorithmes sont très importants et qu'il doit étudier dur.
Si quelqu'un qui travaille sur le lieu de travail depuis de nombreuses années lui demande, l'auteur lui dira généralement que vous pouvez simplement étudier selon vos besoins. Si le travail que vous faites a beaucoup à voir avec les algorithmes, alors naturellement vous. devriez étudier dur. Par exemple, si vous êtes un ingénieur en algorithmes, pourriez-vous me dire si les algorithmes sont importants ? Bien sûr, c'est important !
Et si vous écrivez des ajouts, des suppressions, des modifications et des requêtes chaque jour et que vous accordez plus d'attention aux affaires, ne dépensez pas cette énergie. Si vous avez l'énergie d'apprendre des algorithmes, étudiez davantage les affaires. et réfléchir davantage à la technologie et aux affaires. Combiner ce type de problèmes peut être plus efficace que d'apprendre des algorithmes.
Quant à la deuxième question, à savoir si les algorithmes seront testés lors de l'interview d'Alibaba, l'auteur se souvient clairement que l'intervieweur a posé une telle question : « Connaissez-vous beaucoup de choses sur les algorithmes ? l'auteur La réponse à ce moment-là était : « Désolé, je ne sais pas comment faire ça. »
En voyant cela, certains étudiants peuvent avoir des questions : « Auteur, ce n'est pas bien pour vous de faire ça. Vous ne voulez pas dire à tout le monde que les algorithmes ne sont pas importants. Puis-je entrer dans Alibaba sans apprendre les algorithmes ? dépenser de l'énergie pour les apprendre, il n'y a pas de relation directe avec les œufs.
De plus, il est normal d'entrer dans Alibaba sans connaître les algorithmes. Pensez-vous que tous les milliers d'ingénieurs d'Alibaba sont familiers avec les algorithmes ? J'ose le dire, oses-tu le croire ?
Il y a aussi un malentendu que beaucoup de gens ont, à savoir que "les personnes avec de bons algorithmes ont des salaires beaucoup plus élevés
À ce sujet, l'auteur veut juste dire que si cette personne elle-même". S'il est engagé dans un travail algorithmique, il n'y a rien de mal à cela. Mais s'il s'occupe d'ajouts, de suppressions, de modifications et de vérifications, l'auteur peut dire avec certitude que s'il apprend autre chose pendant qu'il étudie les algorithmes, son salaire peut être plus élevé.
Alors, ne vous laissez pas tromper par cette apparence. Son salaire élevé est essentiellement dû au fait qu'il étudie pendant son temps libre, pas parce qu'il apprend les algorithmes.
Comme le dit le proverbe, appliquez ce que vous apprenez. Non seulement vous devez dépenser de l'argent judicieusement, mais vous devez également apprendre judicieusement, car le temps est plus précieux que l'argent
.
Bien sûr, l'argument ci-dessus selon lequel les algorithmes doivent être appris à la demande ne convient qu'aux étudiants diplômés il y a de nombreuses années et entrés sur le marché du travail. Si vous êtes étudiant, alors il n'y a qu'un seul mot pour. algorithme - -étude ! Apprenez de la mort ! Comment les programmeurs Java apprennent
Après avoir fini de parler de la routine quotidienne, parlons du vrai business, de la façon dont les programmeurs « sauvages » passent leurs études et leur carrière.
Avant que tout le monde ne le lise, LZ souhaite faire deux remarques.
1. Puisque LZ lui-même est un développeur back-end Java, le contenu d'apprentissage recommandé est la voie du développement Java Web et Java back-end. Les étudiants qui ne sont pas impliqués dans le développement Java Web et Java back-end doivent se référer. ses idées d'apprentissage de manière appropriée, ne les copiez pas.
2. Le contenu recommandé suivant pour la [Partie 1] est destiné à vous aider à devenir un développeur Java capable de travailler le plus rapidement possible. Il convient mieux aux étudiants au chômage et se préparant à passer à Java. Si vous êtes étudiant à l'école, assurez-vous d'apprendre les bases (comme les systèmes informatiques, les algorithmes, les principes de compilation, etc.) avant d'envisager les études suivantes.
1. Les bases de Java
Trouvez d'abord un programmeur Java Apprenez le tutoriel de base. Vous pouvez recommander une adresse ici, ou vous pouvez vous référer à cette adresse pour trouver la vidéo correspondante. L'adresse est http://www.php.cn/course/884.html.
Lorsque vous apprenez les bases de Java, vous devriez essayer d'en faire autant que possible. Plusieurs fois, lorsque vous écrivez et exécutez les choses que vous considérez comme acquises, vous constaterez que ce n'est pas le cas. vous n'y croyez pas, essayez-le.
Après avoir appris le contenu ci-dessus, vous devez avoir une compréhension de base de Java. Vous pouvez écrire quelques programmes simples en langage Java et utiliser l'éditeur le plus simple, tel que le Bloc-notes.
Pour le moment, ne vous précipitez pas dans la partie suivante. Laissez quelques jours pour écrire quelques programmes et vous familiariser le plus possible avec ces contenus de base.
2. Développement Web
Après avoir écrit un programme pendant quelques jours, vous vous sentirez souvent confus car ce que vous écrivez semble inutile, comme Implémenter une simple calculatrice , lire un fichier, etc. À ce stade, vous devriez apprendre à écrire quelque chose que vous trouvez intéressant, vous devriez donc acquérir davantage de connaissances.
Ces contenus sont principalement liés au développement Web, incluant les connaissances liées au HTML/CSS/JS (page front-end), au Servlet/JSP (J2EE) et à Mysql (base de données).
L'ordre d'apprentissage doit être d'avant en arrière, donc la première chose à apprendre doit être HTML/CSS/JS (page frontale). Vous pouvez trouver cette partie du contenu sur le site runoob. au-dessus de. Vous pouvez essayer d'écrire quelques pages vous-même, et bien sûr, vous pouvez faire de votre mieux pour les rendre les plus belles. Cette partie du contenu n'est pas particulièrement importante en théorie pour le back-end Java, mais elle doit au moins atteindre un niveau où vous pouvez écrire quelques pages simples par vous-même.
Ensuite, ce que vous devez apprendre, c'est la partie Servlet/JSP (J2EE). Cette partie est la partie dans laquelle le développement back-end Java doit être très maîtrisé, donc cette partie nécessite le plus d'énergie parmi les trois. pièces, et À ce stade, vous devez apprendre à utiliser les outils de développement au lieu d'utiliser le Bloc-notes. Vous pouvez choisir Eclipse.
Après avoir téléchargé et installé Eclipse, veuillez suivre le didacticiel de la vidéo étape par étape et assurez-vous de le faire davantage. Concernant la sélection de vidéos Servlet/Jsp, l'industrie reconnaît les vidéos de Ma Soldier, nous les recommandons donc à tout le monde. Bien sûr, LZ lui-même n’a pas regardé ses vidéos, il est donc difficile de le dire de manière absolue. Si vous avez un meilleur choix, vous pouvez vous en tenir au vôtre et ne pas être gêné par LZ.
À l'origine, LZ avait également prévu de publier une vidéo pédagogique, mais en raison de problèmes de temps, il a décidé d'abandonner. Mais si vous rencontrez des problèmes en regardant la vidéo, vous êtes invités à venir au groupe de communication de LZ pour poser des questions, ou à vous rendre à Douyu pour regarder la diffusion en direct de LZ et poser vos questions. L'adresse de diffusion en direct et le numéro de groupe se trouvent sur le côté gauche de. Le blog personnel de LZ.
La dernière étape consiste à apprendre à utiliser une base de données. MySQL est un bon choix d'entrée, et la base de données relationnelle dominante dans le domaine Java est MySQL. Cette partie est généralement exposée lorsque vous apprenez Servlet/Jsp. La partie JDBC est la partie liée à la base de données. Vous devez non seulement apprendre à utiliser JDBC pour faire fonctionner la base de données, mais également apprendre à utiliser les outils clients de base de données, tels que navicat et sqlyog. Choisissez simplement l'un des deux.
3. Cadre de développement
Après avoir appris le contenu ci-dessus, vous n'êtes pas assez pour travailler en ce moment, vous devez toujours continuer vos études. Afin d'améliorer l'efficacité du développement, les entreprises utiliseront certains frameworks Web Java, vous devez donc également apprendre certains frameworks de développement.
Actuellement, les frameworks SSM les plus courants sont, à savoir spring, springmvc et mybatis. Vous devez apprendre à créer ces trois frameworks et à les utiliser pour créer un projet Web simple d'ajout, de suppression, de modification et d'interrogation. Vous n'avez pas besoin de comprendre ce que signifient ces configurations et pourquoi vous devez les effectuer. Vous pourrez les apprendre plus tard. Mais vous devez être capable d'utiliser rapidement ces trois éléments pour créer un framework Web. Vous pouvez enregistrer votre premier processus de construction, croyez-moi, vous l'utiliserez certainement.
Il convient également de mentionner que lors du processus de création de SSM, vous pouvez souvent entrer en contact avec un outil appelé maven. Cet outil est également un outil que vous devrez presque utiliser dans votre travail futur, vous pourrez donc également en apprendre davantage sur Maven tout en créant SSM. À votre stade actuel, il vous suffit de vous renseigner sur l'utilisation de base de maven sur Internet. Au fur et à mesure que votre expérience professionnelle augmente, vous entrerez progressivement en contact avec certains usages haut de gamme.
Je voudrais recommander une adresse pour que tout le monde puisse en savoir plus sur le framework SSM. Il contient une vidéo. Vous pouvez la regarder. L'adresse est http://edu.51cto.com/lesson/id-76468. html.
4. Trouver un emploi
Après avoir terminé vos études sur le cadre de développement, vous devriez chercher un emploi, soit un stage si vous êtes à l'école, soit un emploi complet. - un travail à temps si vous obtenez votre diplôme. En même temps, vous ne devriez pas arrêter vos études pendant que vous cherchez un emploi. Pour être précis, vous ne devriez pas arrêter vos études à l’avenir.
Vous venez d'apprendre à utiliser le contenu ci-dessus. Vous pouvez progressivement essayer d'en apprendre davantage. Internet est votre professeur le plus important.
Deux ans se sont écoulés. En fait, ce parcours d'apprentissage n'a pas beaucoup changé. Le seul changement est la popularité de spring-boot, qui permet d'économiser beaucoup de travail d'intégration de framework précédent.
En repensant à la formation de l'auteur en 2011, si je voulais construire un framework SSH, je devais trier moi-même les packages jar et intégrer beaucoup de configurations. Si je ne faisais pas attention, j'en obtiendrais diverses. les erreurs, et les exceptions n'étaient souvent pas simples, sans parler de la misère.
Alors, étudiants, chérissez votre vie maintenant, hahaha.
Cette étape est une étape que tout le monde passera par les programmeurs à ce stade qui ont souvent le cœur très compliqué. travail et assis dans un bureau lumineux, vous vous sentirez comme si vous étiez devenu le protagoniste d'une série télévisée. Vous vous sentirez inévitablement plein d'entrain, mais en même temps, vous ressentirez inévitablement un peu de peur dans votre cœur, craignant cela. vous retrouverez votre forme originale si vous ne faites pas attention.
Si vous ressentez cela, ne soyez pas nerveux. C'est ce que tout le monde doit vivre. Tout ce que vous avez à faire est de vous immerger complètement dans le travail et les études. La raison est très simple, car à cela. temps ——Tu es toujours célibataire, -_-.
Félicitations, à ce moment-là, vous avez déjà un travail Java. Cette étape est celle où vous grandissez extrêmement vite et où vous pouvez souvent faire des heures supplémentaires.
Mais faire des heures supplémentaires ne signifie pas que vous pouvez vous détendre. Rappelez-vous toujours ce que LZ a dit, à partir du moment où vous entrez dans l'industrie, vous devez continuer à apprendre. Au cours de cette année, vous devez au moins lire le livre "Java Programming Thoughts". Le contenu de ce livre est de vous aider à mieux comprendre Java. Il s'agit d'une version améliorée des bases de Java.
Ce livre est très épais. Il a fallu trois mois complets à LZ pour lire ce livre. À vitesse normale, je devrais pouvoir le terminer dans environ six mois. LZ n’a pas d’exigences trop élevées ici, à condition que vous ayez fini de lire ce livre dans un délai d’un an. Bien sûr, ce que LZ a dit après avoir lu, c'est de l'absorber complètement, plutôt que de le lire une fois, vous pouvez donc lire certains contenus plus d'une fois.
Dans l'ensemble, l'idée principale de l'apprentissage à ce stade est de s'entraîner au travail et d'avoir une compréhension plus approfondie des bases de Java.
Je voudrais ajouter que lorsque vous lisez un livre, ne vous contentez pas de lire le livre, vous devez toujours y penser, par exemple en vous demandant si le code que vous avez écrit est lié au contenu de le livre.
Pour donner un exemple pratique, lorsque vous verrez la partie statique, parcourrez-vous le projet que vous développez actuellement pour voir s'il y a un endroit où la statique est utilisée ? il a été utilisé correctement ?
Ce n'est qu'en lisant de cette manière que vous pourrez vraiment comprendre le livre. Vous devez y prêter attention. Le but ultime de la lecture est de déclencher votre propre réflexion. Si vous lisez seulement sans réfléchir, c'est ce qu'on appelle. approbation, pas lecture .
En parlant de cela, de nombreux étudiants ont posé cette question à l'auteur : « Que dois-je faire si je ne sais pas lire ? Existe-t-il un bon moyen
L'auteur peut être très utile ? ici, je vais vous dire de manière responsable qu'il n'y a pas de temps calme, c'est juste que quelqu'un porte la charge à votre place.
Par conséquent, ne vous attendez pas à être heureux et à lire le livre avec bonheur. Ce que vous trouvez est assez beau, hahaha.
Il n'y a pas de bonne façon de faire cela. Il faut juste s'appuyer sur sa croyance intérieure et se forcer à le voir. Surtout au début, c'est le plus difficile. Après cette période, ce sera le cas. mieux paraître plus tard. Ce sera relativement lisse.
Tout est difficile au début, et cela s'applique également à la lecture et aux études.
A cette étape, vous faites généralement des ajouts, des suppressions, des modifications et des révisions depuis un an. le plein d'entrain lorsque vous avez rejoint le poste pour la première fois, vous commencerez à réfléchir au chemin que vous souhaitez emprunter à l'avenir, mais généralement à ce moment-là, il vous est difficile de voir clairement le chemin à parcourir, vous pouvez donc être un peu anxieux.
Si vous ressentez une telle anxiété, ne vous inquiétez pas, rappelez-vous simplement que sur le chemin du programmeur, apprendre peut vous rendre plus épanouissant et continuer à vous immerger dans l'océan de l'apprentissage.
Les étudiants de cette période ont déjà eu une compréhension plus approfondie de Java. Cependant, l'expérience de l'orientation objet n'est peut-être pas assez approfondie. Lors de la programmation, elle reste encore au niveau de l'exécution des fonctions et prend rarement en compte les problèmes de conception.
Donc, à ce moment-là, le modèle de conception arrive. À cette époque, LZ lisait le livre « Dahua Design Patterns » et écrivait une version complète du blog sur les modèles de conception. Par conséquent, LZ exige que tout le monde commence à bloguer après avoir travaillé pendant un an au maximum, et le modèle de conception est le début de votre blog.
N'oubliez pas que ce que LZ propose sont essentiellement les exigences minimales, alors n'ayez aucun répit, sinon, après cinq ans, vous ne devriez pas envier les autres dont le salaire est supérieur au vôtre, ni envier les autres. qui sont entrés dans l’industrie.
De plus, les modèles de conception ne sont pas votre seule tâche cette année. Vous devez également lire quelques livres sur l'optimisation de l'écriture de code. Par exemple, « Refactoring pour améliorer la conception du code existant » et « Java efficace ».
Dans l'ensemble, à ce stade, votre tâche principale est d'améliorer vos capacités de codage et d'être capable d'écrire du code élégant.
À ce stade, les trois livres recommandés par l'auteur vous apprennent en fait à mieux écrire et concevoir votre code. De plus, la série de modèles de conception vous forme également à la capacité d'abstraire les problèmes.
Lorsque vous utilisez un langage orienté objet comme Java, la capacité d'abstraction est une capacité très importante. Comme ci-dessus, l'auteur recommande qu'après avoir lu les livres sur les modèles de conception, la refactorisation et Java efficace, vous devez réfléchir profondément. en fonction de vos propres projets.
Une vie sans réflexion est incomplète. Les gens qui ne travaillent que sans réfléchir peuvent paraître assidus, mais en fait ce ne sont que des machines. Puisqu'elles sont des machines, elles seront remplacées tôt ou tard.
Seuls ceux qui continuent de réfléchir, de résumer le passé et de guider l'avenir finiront par devenir les dirigeants de cette société.
Cette étape est une étape très importante pour les programmeurs. Dans le plan de parcours d'apprentissage de l'auteur, le but de cette étape d'apprentissage est de permettre de passer d'un niveau d'ingénieur junior et intermédiaire à un niveau supérieur et de réaliser une amélioration qualitative. Cette partie de l'apprentissage sera donc plus difficile que les deux précédentes. années.
Mais maintenant que vous avez mis le pied sur cette route, il n’y a plus de marge de manœuvre et vous ne pouvez qu’avancer.
Alors, soyez prêt mentalement à relever le défi.
Certains étudiants sentent qu'ils sont déjà très bons à ce moment-là, ils ne peuvent donc s'empêcher de commencer à se détendre. N'oubliez pas que vous êtes encore beaucoup plus jeune.
À ce stade, il y a un livre que vous devez lire. Il s'appelle "Compréhension approfondie de la machine virtuelle Java". Ce livre est certainement le livre le plus important pour les développeurs Java, sans exception. Aux yeux de LZ, ce livre est plus important que "Java Programming Thoughts".
De plus, au cours des deux dernières années de travail, vous devez avoir été exposé dans une certaine mesure à la concurrence. À ce stade, vous devriez avoir une compréhension plus approfondie des connaissances liées à la concurrence, et pour cette partie, LZ recommande le livre "Java Concurrent Programming in Practice". Tant que vous lirez ce livre, vous comprendrez essentiellement la partie concurrence.
En même temps, vous avez encore beaucoup à faire à ce stade. À ce stade, vous devriez avoir une compréhension plus approfondie du framework que vous utilisez et une compréhension plus approfondie de la bibliothèque de classes Java. Par conséquent, vous devez examiner le code source de certaines classes du JDK, y compris le code source du framework que vous utilisez.
Le prérequis pour comprendre ces codes sources est que vous devez avoir une bonne compréhension des modèles de conception. Sinon, lorsque vous regardez le code source, vous vous poserez toujours des questions telles que : pourquoi ce code est-il écrit ainsi ? Pourquoi définir cette interface, elle semble redondante ?
Cela montre également que ces processus d'apprentissage sont imbriqués. Si vous échouez à un moment donné, vous ne pouvez vraiment pas suivre le rythme, ou on peut dire que vous avancez étape par étape. . lent. Et LZ a la responsabilité de vous dire qu'à ce stade, LZ a appris bien plus que ce qui est indiqué ici. Par conséquent, ne pensez pas que vous avez appris beaucoup. Ce que LZ a dit ne sont que les exigences minimales. Non seulement LZ, de nombreuses personnes ont appris bien plus au cours de cette période que le cadre de cet article.
Si vous n'arrivez pas à suivre le rythme, après quelques années, si le marché des programmeurs n'est pas bon, vous risquez non seulement d'avoir un salaire inférieur à celui des autres, mais l'entreprise n'est pas aussi bonne que les autres, mais vous ne pourrez trouver personne du tout.
En bref, à ce stade, ce que vous devez faire est d'avoir une compréhension approfondie des bibliothèques de classes Java et Java sous-jacentes (par exemple, le livre sur la concurrence est le contenu du package Java concurrent java. concurrent), c'est-à-dire le contenu associé de la JVM et du JDK. Et vous devez avoir une compréhension plus approfondie du framework que vous utilisez. Il est recommandé de lire le code source ou de lire la documentation officielle.
De plus, il existe une autre manière d'apprendre qui devrait également être utilisée au stade des 2 ans, à savoir fabriquer des roues.
N’écoutez pas l’argument « ne réinventez pas la roue ». Il est inventé par les entreprises pour gagner du temps et de l’argent. Réinventer la roue peut ne pas avoir de valeur pour les autres, car la roue que vous créez a peut-être déjà existé et, en général, la roue que vous créez n'est pas aussi bonne que celle existante. Mais ne pas avoir de valeur pour les autres ne veut pas dire que cela n’a aucune valeur pour vous-même.
Le processus de fabrication d'une roue est un processus à partir de zéro. Ce processus peut vous donner un exercice systématique. Il teste non seulement votre capacité de codage, mais également votre capacité de conception de framework. Vous devez rendre votre roue suffisamment évolutive et robuste.
Et dans le processus de fabrication des roues, vous rencontrerez divers problèmes, et ces problèmes sont souvent pour vous des occasions d'apprendre. Lorsque vous construisez la roue, vous constaterez certainement que vous avez réellement gagné beaucoup.
Par conséquent, à ce stade, en plus de comprendre le code source de la JVM, du JDK et du framework mentionnés ci-dessus, il vous est également demandé de construire n'importe quelle roue que vous pouvez imaginer sur la base de l'excellent code source d'autres personnes.
Comme vous pouvez le voir, l'auteur a de nombreuses tâches répertoriées à ce stade. Non seulement il doit comprendre la JVM, la concurrence et les bibliothèques de classes JDK, mais il doit également essayer de construire la roue lui-même. .
Si vous lisez attentivement cet article, vous constaterez que la plupart des armes en série utilisées par l'auteur lors de l'entretien de recrutement d'Alibaba ont été apprises à ce stade. Ces armes en série sont essentiellement des JVM, la concurrence et le contenu de. certaines bibliothèques de classes JDK.
Par coïncidence, la plupart des exigences de recrutement d'Alibaba sont de 3 ans ou plus.
Qu'est-ce que cela signifie ?
Je crois que les étudiants qui répondent rapidement ont compris que si vous pouvez terminer le plan d'étude de l'auteur en 3 ans, alors lorsque vous atteindrez 3 ans, vous pourrez venir à Alibaba pour tester vos résultats d'apprentissage.
Alors, le middleware Alibaba vous souhaite la bienvenue ! (J'ai été implanté deux fois sans aucun sentiment de violation. Cette année j'aurai 3,75, -_-)
Les étudiants de à ce stade, beaucoup ont atteint le plafond. Avant cela, tant que vous étudiiez étape par étape et n'aviez aucun défaut dans votre QI, plus de 90 % des étudiants (quelqu'un a demandé, où sont les 10 % restants ? Je veux juste le faire). disons, comment puis-je le savoir ? / Embarrassant ), après avoir travaillé pendant 3 ans, le salaire annuel peut atteindre environ 30W (ne concerne que les villes de premier rang de Pékin, Shanghai et Shenzhen en 2015 ou après).
Et si vous souhaitez faire passer votre salaire annuel au niveau supérieur (généralement 10W est un niveau, comme 40W, 50W, etc.), il ne suffit pas de vous fier uniquement à l'accumulation précédente. construisez votre force de concurrence de base.
Il est déjà difficile pour les élèves de s'améliorer à ce stade, et l'apprentissage à ce stade est souvent plus diversifié.
Parce qu'au cours des trois dernières années, vous avez dû être plus ou moins exposé à d'autres technologies, comme le big data, la mise en cache distribuée, les services de messagerie distribués, l'informatique distribuée, le soft Load Balancing, etc. Si vous maîtrisez l'une de ces technologies, cela constituera un énorme avantage pour vous lors des futurs entretiens, donc si vous êtes intéressé par une certaine technologie, vous pouvez l'étudier en profondeur à ce moment-là. La technologie ne doit pas nécessairement être celle que vous utilisez dans votre travail, mais elle doit être pertinente.
Et lorsque vous recherchez une nouvelle technologie, veillez à ne pas agir au hasard. Certains étudiants sont allés travailler sur le Big Data aujourd'hui, en travaillant sur des choses comme Hadoop et hbase. Au bout d'un moment, j'ai trouvé que c'était ennuyeux et j'ai commencé à étudier le cache distribué, comme Redis. Puis après un certain temps, j'ai recommencé à étudier l'informatique distribuée, comme MapReduce ou Storm.
En fin de compte, j'avais l'impression de tout savoir. Je me vantais dans mon CV de tout savoir sur le Big Data, la mise en cache distribuée et l'informatique distribuée. En fait, chacun d'entre eux était simplement superficiel. Le moment venu, l’intervieweur le découvrira avec juste une question informelle.
Vous devez vous rappeler qu'en tant que programmeur, vous pouvez être exposé à de nombreuses technologies dans la vie quotidienne, mais si vous voulez faire d'une technologie votre avantage, vous devez alors avoir une meilleure compréhension de cette technologie. peut le faire.
Par conséquent, à ce stade, vous ne pouvez plus simplement étudier le contenu des 3 premières années, même si l'étude précédente doit encore être poursuivie si elle n'est pas suffisamment approfondie, à ce moment-là, vous devriez réfléchir. en savoir plus sur la construction de votre Les avantages peuvent aussi être appelés différences.
Je crois que la différence n'est pas difficile à comprendre, il s'agit de se rendre unique. Vos études au cours des trois premières années suffisent pour que vous deveniez un développeur Java essentiellement qualifié, mais vous êtes encore loin de devenir un excellent développeur Java.
La soi-disant excellence signifie être capable de faire ce que les autres ne peuvent pas faire. Ce que vous avez appris au cours des trois premières années peut être maîtrisé par ceux qui développent Java depuis plusieurs années. Donc, pour vous différencier, vous devez trouver une autre voie et trouver une direction pour étudier en profondeur, en espérant qu'à l'avenir, vous pourrez devenir un expert dans ce domaine, comme un expert dans le domaine de l'informatique distribuée, un expert dans le domaine du big data, et un expert dans le domaine de la concurrence, etc.
De plus, en plus d'établir votre différence, vous devez également combler vos lacunes fondamentales. Jusqu'à présent, LZ n'a pas évoqué les connaissances de base. La raison en est que les bases sont très ennuyeuses. L'apprendre trop tôt est non seulement facile à vous rendre confus, mais aussi facile à provoquer une ombre psychologique lorsque vous êtes confus, de sorte que vous ne vouliez pas étudier ces bases à l'avenir. Mais les bases sont ce que vous devez maîtriser lorsque vous vous plongez dans certains domaines. Par exemple, si vous voulez étudier l’informatique distribuée, si vous ne comprenez pas les algorithmes, pourquoi ne pas simplement jouer avec ? Par exemple, si vous souhaitez effectuer une mise en cache distribuée, mais que vous ne comprenez pas la mémoire du système informatique, comment pouvez-vous effectuer une mise en cache ?
Si votre fondation est déjà très solide, alors félicitations, je crois que vous avez pleinement réalisé l'aide de ces fondations dans vos travaux précédents. Mais LZ estime que les bases de la plupart des gens sont très faibles. Même ceux qui sont diplômés d'une spécialisation, beaucoup de gens n'osent pas dire à quel point leurs connaissances de base d'origine sont solides, telles que les algorithmes, les principes des systèmes informatiques et les principes de compilation.
Mais le temps de chacun est limité, et chacun de ces livres de base ne peut être lu pendant plus d'un an et demi, il faut donc encore faire un choix. Bien que l'art ne soit pas un fardeau, le problème est que l'art a un prix, qui demande du temps et de l'énergie, et LZ préfère personnellement obtenir le maximum de gain au même prix.
Tout d'abord, il existe trois livres de base que LZ recommande fortement, à savoir « Compréhension approfondie des systèmes informatiques », « Explication détaillée TCP/IP Volume 1, 2 et 3 » et « Structure des données et algorithme". Parmi eux, il y a trois livres sur TCP/IP, mais nous considérons ici ces trois livres comme un seul gros livre.
Ces trois livres conviennent respectivement à trois types de personnes. "Compréhension approfondie des systèmes informatiques" est plus adapté aux personnes qui ont été engagées dans le développement Web Java et le développement back-end d'APP. "Explication détaillée de TCP/IP Volume 1, 2 et 3" est plus adapté aux personnes qui font de la programmation réseau. Par exemple, si vous utilisez netty pour développer, vous devez avoir une compréhension plus approfondie de TCP/IP. Le livre "Data Structures and Algorithms" est plus adapté aux personnes effectuant des recherches en informatique, comme l'informatique distribuée mentionnée tout à l'heure.
De plus, LZ tient à souligner que l'adéquation mentionnée ici ne signifie pas que les deux autres livres vous sont inutiles. Par exemple, si vous faites du développement back-end Java Web et APP, le livre « Explication détaillée TCP/IP Volume 1, 2 et 3 » vous sera également d'une grande utilité. Ceci n’est qu’un classement de priorités. Si vous disposez de suffisamment de temps, il serait préférable de lire intensivement les trois livres. Mais si le temps est limité, choisissez le livre qui vous aidera le plus et lisez-le en premier.
Théoriquement parlant, si vous parvenez à lire intensivement un de ces trois livres cette année, il sera très puissant. Avec les bases et l’expérience professionnelle antérieure, vous pouvez explorer votre propre domaine.
Au cours de cette année, vous devez planifier votre propre terrain, établir vos propres avantages et créer des différences. Si vous n'êtes pas assez clair sur votre domaine, à mesure que vous travaillez de plus en plus longtemps, vous serez exposé à de plus en plus de technologies. À cette époque, vous pouvez facilement vous noyer dans l'océan de la technologie. exposé, plus vous êtes exposé à la technologie. Plus vous l’utilisez, plus vous l’utiliserez, mais vous n’avez aucun avantage.
Certains étudiants peuvent demander : « LZ, je ne sais pas quel est mon domaine ? Que dois-je faire ? »
Pour ce genre de personne, LZ veut juste dire : « Putain » "Hé, pourquoi ne me demandes-tu pas ? Et si je l'apprenais pour toi ?"
On voit qu'à ce stade, l'auteur a mentionné trois livres de base (principes du système d'exploitation, réseau Protocoles, algorithmes), ces trois livres vous rapprocheront de la couche inférieure.
Si vous goûtez attentivement le parcours d'apprentissage mentionné dans cet article, vous remarquerez que l'auteur vous a laissé apprendre du moins profond au plus profond, c'est-à-dire que je vous ai laissé améliorer la profondeur des connaissances, plutôt que l'étendue des connaissances.
Cela répond à la question que de nombreux étudiants ont posée à l'auteur : "Est-il préférable d'avoir d'abord la largeur, puis la profondeur, ou est-il préférable d'avoir la profondeur d'abord, puis la largeur ?
D'abord ? » De tous, beaucoup Quand les gens réfléchissent à ce problème, il y a un malentendu, c'est-à-dire qu'ils ont été aux prises avec le problème lui-même. Certaines personnes disent que vous devez d'abord apprendre en profondeur avant de pouvoir améliorer votre ampleur, tandis que d'autres disent que vous devez le faire. apprenez d’abord davantage. Ce n’est qu’en élargissant vos horizons que vous pourrez mieux améliorer votre profondeur.
En fait, cette discussion a mis la charrue avant les bœufs. La réponse à cette question est très simple. La meilleure option dépend de la catégorie recherchée sur le marché.
Par conséquent, si vous modifiez la question ci-dessus, vous pouvez facilement obtenir la réponse : "Si on vous demande d'interviewer un programmeur avec moins de 5 ans d'expérience, vous aimeriez quelqu'un qui a étudié en profondeur dans un certain domaine. Ou est-ce que tout le monde sait quelque chose ? "
La réponse est évidente. Je pense que la plupart des gens choisiront des personnes qui ont des recherches approfondies dans un certain domaine, en particulier certains Internet de premier et deuxième niveaux. entreprises.
Peut-être qu'à cette époque, certains étudiants utiliseront le concept d'« ingénieur full-stack » pour tenter de le réfuter. Après tout, le concept d'ingénieur full-stack est très populaire depuis un moment, et beaucoup. les entreprises l’ont inclus dans leur recrutement. Voici une chose : les ingénieurs full-stack sont prioritaires.
Le concept d'ingénieur full-stack est en fait une belle fabrication réalisée par de petites entreprises (ou de petits départements de grandes entreprises) afin de réduire les coûts de main-d'œuvre et de vouloir que les programmeurs fassent des corvées, mais sont gênés de le dire. Ce qui est ridicule et triste, c'est que certains programmeurs qui ne connaissent pas la véritable signification du full stack sont toujours fiers d'être full stack et estiment qu'ils ont suivi la tendance. Ils sont vraiment vendus et aident toujours les gens à gagner de l'argent.
L'auteur peut dire ici de manière responsable : Au cours des premières années d'entrée sur le lieu de travail, la bonne façon est de se concentrer sur l'amélioration de la profondeur La tendance des ingénieurs full-stack est comme récemment. , certaines célébrités d'Internet qui ont adopté des moyens non conventionnels pour devenir célèbres sont vouées à être de courte durée. Une seule compétence peut être une solution à long terme.
4 à 5 ans est en réalité une étape relativement importante.
Après l'expérience de l'année précédente, je pense que vous avez déjà acquis quelques connaissances dans le domaine que vous étudiez. À ce moment-là, vous devriez avoir rencontré un goulot d'étranglement technique.
Ne vous précipitez pas pour améliorer vos compétences en ce moment. Il est temps d'améliorer votre influence. Vous pouvez essayer de vous adresser à des entreprises bien connues pour améliorer votre expérience. Vous pouvez publier des articles pour influencer plus de personnes. . Bien sûr, vous pouvez également accéder à Github pour créer votre propre projet open source afin de créer vos propres produits. Ce projet open source est différent du précédent projet de fabrication de roues. À l'heure actuelle, vous devez vraiment faire de votre mieux pour créer une roue qui soit vraiment précieuse pour les autres.
A ce stade de l'apprentissage technique, il est facile de rencontrer des goulots d'étranglement, et souvent après avoir atteint un certain niveau, l'effet d'un approfondissement plus approfondi est vraiment minime, à moins d'être spécialisé dans la recherche académique. Malheureusement, la plupart des programmeurs ne peuvent pas faire cela.
À l'heure actuelle, augmenter l'influence n'est pas seulement dû au fait qu'il est facile de rencontrer des goulots d'étranglement techniques, mais aussi parce que l'influence peut créer plus d'opportunités pour vous. Les programmeurs ressemblent dans une certaine mesure aux célébrités. Une bonne série télévisée ou un bon film peut créer un groupe de stars. Les programmeurs font parfois la même chose.
Par exemple, il existe plusieurs projets populaires en Chine, tels que Taobao, Alipay, QQ, Baidu, WeChat, etc. Chacun de ces projets a créé un groupe de programmeurs. LZ ose dire que si vous êtes le développeur principal d'un projet ici, le simple fait d'avoir un tel titre est déjà un énorme avantage pour vous. De plus, ce n'est pas seulement ça. Le titre n'est qu'un titre après tout, plus important encore, lorsque vous réalisez ce genre de projet, il doit être très puissant pour votre expérience.
Et si vous souhaitez participer à un tel projet, en plus de compter sur la chance, l'influence est aussi un moyen très important. Par exemple, si vous avez une certaine influence dans le domaine de l'informatique distribuée, alors s'il existe de bons projets liés à l'informatique distribuée, l'autre partie vous invitera probablement. Même si quelqu'un ne vous invite pas et que vous prenez l'initiative d'aller à un entretien, si l'autre partie connaît votre influence dans ce domaine, elle jouera certainement un grand rôle, et ce rôle pourra même dépasser vos capacités techniques actuelles.
Par conséquent, à ce stade, votre plus grande tâche est d'améliorer votre influence et de préparer ce jour dans votre carrière professionnelle pour les dix prochaines années. Si vous pouvez compter sur votre influence et les compétences que vous avez accumulées dans le passé pour participer à un grand projet, alors vous réussirez au cours des cinq prochaines années.
Bien entendu, LZ est désormais parfaitement préparé et n'est programmeur que depuis moins de 4 ans et demi. Par conséquent, concernant la partie 4 à 5 ans, l'avis de LZ n'est pas forcément correct, même s'il l'est. c'est vrai, ce n'est pas le cas. Il doit y en avoir pour tous les goûts. Par conséquent, j’espère que chacun pourra utiliser son propre jugement pour décider comment dépenser cette année.
Parmi les suggestions données par l'auteur, il y a déjà des choix, comme les trois livres sur les principes du système d'exploitation, les protocoles réseau et les algorithmes, ainsi que les domaines que vous envisagez d'approfondir, tous parmi lesquels vous pouvez choisir, au lieu que l'auteur vous dise directement quel livre vous devriez lire et quel domaine vous devriez étudier.
Cela s'inscrit en fait dans le parcours d'apprentissage conventionnel. Lorsque vous êtes ingénieur junior et intermédiaire, tout le monde apprend la même chose. Après 3 ans, lorsque vous passez au rang d'ingénieur senior, tout le monde évoluera naturellement vers un domaine différent. champs.
C'est comme aller à l'école. Quand j'étais jeune, j'ai appris les mêmes choses. Au lycée, j'ai commencé à suivre des cours d'arts libéraux, j'ai commencé à choisir une spécialisation. études supérieures...
Euh, tout à coup, je me suis rappelé que je n'étais jamais allé dans une école supérieure, donc je n'étais pas sûr, mais le cheminement des études a dû être plus subdivisé, non ?
Par conséquent, à ce stade de 4 à 5 ans, il n'y a en fait pas de chemin fixe à suivre. La raison pour laquelle j'ai suggéré à chacun d'améliorer son « influence » avant est que, rétrospectivement, la raison la plus profonde est, je l'espère. tout le monde ira dans des entreprises bien connues, comme... hum... vous savez (c'est un indice parfait, je pense qu'un 4 n'est pas de trop).
En fait, durant la 3ème à la 5ème année, le meilleur choix est d'améliorer votre cœur de compétitivité tout en commençant à entrer dans une entreprise qui peut « blanchir », ou en d'autres termes, améliorer une entreprise « influente ».
Qu'est-ce que le « blanchiment à la chaux » ?
Mais quand vous voulez gravir les échelons, c'est-à-dire lorsque vous devenez responsable technique senior, vous n'avez pas une certaine expérience. Peu importe votre puissance, cela ne vous aidera pas. L'auteur appelle « influence » et peut en fait être appelé « convincibilité ».
Avez-vous déjà entendu parler d'une entreprise où le CTO ou le directeur technique est un pauvre universitaire sans diplôme universitaire et n'est jamais entré dans une grande entreprise ?
Certaines personnes peuvent lever la main pour parler à ce moment-là : « Auteur, vous vous trompez, j'ai vu une telle personne ! Il n'a aucun diplôme universitaire et n'a jamais été dans une grande entreprise, mais il est le CTO. C'est tellement génial. "
Il n'y a que deux situations. La première est que la personne dont vous parlez est trop puissante et n'entre pas dans le cadre de cet article Hahaha. La seconde est que ce CTO est un chef de projet qui gère dix personnes. . Il y a vingt faux CTO, car il n'y a qu'un nombre limité de personnes dans l'entreprise, -_-.
En bref, après tout ce qui a été dit, le « blanchiment » signifie que si vos diplômes universitaires ne sont pas suffisamment remarquables, essayez de trouver des moyens d'améliorer l'expérience de votre entreprise.
À tout le moins, si un jour vous occupez réellement le poste de CTO, vous pourrez ajouter cette phrase à votre profil : "J'ai déjà travaillé pour une célèbre entreprise XXXX et j'ai occupé le poste de XXX
Est-ce que c'est plus convaincant ? Alors, encore une fois, le middleware Alibaba vous souhaite la bienvenue ! Ça fait 5 ans, camarade de classe, il est temps pour toi de rentrer chez toi ! (Patron, je veux avoir 5 ans cette année, -_-) Septième étape - les étudiants qui ont travaillé plus de 5 ans Pour les étudiants à ce stade, c'est différent de ceux qui est entré sur le marché du travail il y a 5 ans. En comparaison, outre les différences dans le travail, la plus grande possibilité vient des changements dans la vie. Alors, à ce stade, ne parlons pas de travail ou de parcours d’études, parlons de la vie. Il y a 5 ans, vous étiez peut-être célibataire, vous étiez libre, vous travailliez dur, vous changeiez de métier, vous erriez, mais 5 ans ont passé, vous étiez peut-être marié et même eu des enfants. temps Vous devez considérer certaines questions pratiques. Acheter une voiture ? Acheter une maison ? Réglé? Chacun de ces éléments est comme une grande montagne, pesant sur les employés de bureau en difficulté dans les villes de premier rang. Surtout lorsqu'il s'agit d'acheter une maison, même si on a déjà un salaire annuel de 50W, il est encore très difficile d'acheter une maison dans les villes de premier rang. Puisque 50 W sont déduits de toutes sortes de choses, on estime qu'ils seront réduits de 15 W, ce qui signifie que vous n'obtiendrez qu'environ 35 W en ajoutant vos dépenses et que vous pourrez économiser 20 W par an. C'est très bien, et un ensemble de première ligne Pour une maison, l'acompte minimum est en gros d'un million (c'est-à-dire que le prix total est de 300 W, ce qui est déjà un prix de chou de première ligne. Cela nécessite une économie de 5 ans). , sans parler du nombre de personnes qui ont actuellement moins d'un salaire annuel de 50W. De plus, pouvez-vous garantir que les prix de l’immobilier n’augmenteront pas au cours des cinq prochaines années ? Pouvez-vous garantir que vous n’aurez pas de grosses dépenses au cours des cinq dernières années ? Certains étudiants voudront peut-être lever la main et dire : « Mes parents m'ont acheté une maison dans le 2e périphérique de Pékin Alors l'auteur ne peut que dire : « Ce camarade de classe. , S'il vous plaît, sortez ! Haha..." Ce dont nous discutons ici, ce sont principalement des étudiants non de deuxième génération. Concernant les étudiants de deuxième génération, je n'ai qu'une suggestion à vous faire. Mangez et amusez-vous. . Arrêtez d'essayer de récupérer des emplois, -_-. Bon, revenons au sujet. Acheter une maison n'est en fait que la première difficulté. Je ne connais pas les autres villes, mais à Pékin, s'installer est plus difficile que d'acheter une maison. en gros, on dit qu'il n'y a pas d'issue. Bien qu'il y ait eu un récent Les points sont réglés, mais peu importe la façon dont vous les regardez, ils sont tous bons et inutiles. En parlant de ça, l'auteur doit mentionner un article que j'ai déjà écrit, intitulé "Programmeurs, il sera trop tard si vous n'agissez pas !" 》, en fait, il explique comment les programmeurs peuvent s'installer. Je n'entrerai pas dans les détails ici. Les étudiants intéressés peuvent le lire par eux-mêmes. Voici juste une citation de l'article -Les villes de premier rang s'efforcent d'économiser de l'argent, et les villes de second rang vivent. et travaillez dans la paix et le contentement.
Une phrase indique déjà la destination finale des programmeurs, et parmi les villes de second rang, Hangzhou est actuellement la plus appropriée. L'industrie Internet à Hangzhou est assez développée. Le salaire n'est pas beaucoup plus bas que celui des travailleurs de premier niveau, et peut même être plus élevé. Cependant, le prix moyen de l'immobilier est inférieur à la moitié de celui des travailleurs de premier rang. Les travailleurs de premier niveau. De plus, Hangzhou a de beaux paysages. La ville est certainement l'endroit le plus approprié pour les programmeurs « sauvages » qui travaillent dur à l'extérieur pour vivre et travailler dans la paix et le contentement. Et quand on passe de la ligne de front à Hangzhou, il faut toujours une entreprise pour faire la transition Inutile de dire que c'est l'entreprise la plus adaptée, hum... tu sais... (Implantée sans aucune. sentiment de violation, -_-) La plupart des autres sociétés Internet bien connues sont situées à Pékin, Shanghai et Shenzhen Même si le salaire est plus élevé, en termes de pression de la vie et de bonheur, je crois que. Elle ne peut pas être comparée à une ville où il fait bon vivre comme Hangzhou. Cela fait 5 ans, quel est le but de 5 ans de lutte ? Peut-être que lorsque vous êtes entré sur le marché du travail, vous étiez plein d'entrain et vouliez changer le monde, mais après vous être marié et avoir des enfants, vous découvrirez qu'avant de pouvoir changer le monde, vous devez d'abord vivre et travailler dans la paix et le contentement. , -_-. Alors, encore une fois, toux toux... Le middleware Alibaba vous souhaite la bienvenue ! Un résumé du parcours d'apprentissage des programmeurs Java En fait, ce dont l'auteur a parlé aujourd'hui, c'est comment des programmeurs Java « sauvages », grâce à leurs études et leur travail acharné, sont entrés à Alibaba et ont acheté une maison à Hangzhou. Oui, le but de ce parcours d'apprentissage n'est pas de vous aider à devenir un expert technique, mais de vous apprendre à vivre et à travailler dans la paix et le contentement. Après tout, quand on travaille à l’extérieur, n’a-t-on pas simplement envie de s’enraciner et de s’installer dans une grande ville ? Quant à votre rêve originel de changer le monde, il n'est pas trop tard pour parler de changer le monde une fois que vous avez réglé votre vie.Bien sûr, il faut souligner une chose. La partie sur l'apprentissage (c'est-à-dire les 4 premières années) est relativement courante, au fond, tous les apprenants Java peuvent se référer à l'étude de l'auteur à cette époque, même à l'extrême. Dans certains cas, il n'est pas impossible de copier. (Avertissement : l'auteur n'est pas responsable de ce que vous apprendrez, -_-)
Cependant, pour cette partie de l'installation (c'est-à-dire après 4 ans), cela peut ne pas s'appliquer à tout le monde, comme Certains Puisque ma ville natale est dans une ville de premier rang comme Shenzhen, il n'est pas nécessaire de venir à Hangzhou. Après tout, il y a aussi un Ali Center à Shenzhen, -_-.
Ainsi, dans les premières années de travail, vous pouvez suivre le parcours d'apprentissage de l'auteur, mais lorsque vous travaillez jusqu'au stade de 3-4 ans (ou lorsque vous trouvez une femme, - _-), tandis que Si vous travaillez et étudiez, vous devez également planifier dans quelle ville vous vous installerez à l'avenir et quelle entreprise vous rejoindrez.
Après avoir identifié votre cible, vous devez étudier attentivement les prix des logements de la ville, les politiques d'achat de logements, les politiques d'installation, etc., et également étudier les entretiens de l'entreprise et les aspects qu'elle a tendance à préférer (comme le contenu dans la première partie de cet article, -_-), puis attendez que l'argent soit presque économisé...
D'accord, la raison pour laquelle j'utilise les points de suspension après c'est parce que j'ai peur que votre Le patron actuel viendra à Hangzhou pour me combattre après l'avoir vu, mais je crois que vous comprenez, -_-.
fin :
Enfin, je vais dire quelques mots. Apprendre en soi est une chose très difficile, et. apprendre Java est encore plus difficile. C'est une chose douloureuse, mais puisque vous avez choisi cette voie, serrez les dents et persévérez, vous constaterez que l'avenir est vraiment prometteur.
Articles connexes :
La route vers l'apprentissage Java
Vidéos associées :
Tutoriel vidéo JAVA pour débutants
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!