Parcours d'apprentissage C++ de niveau nounou

La semaine dernière, un ami a laissé un message demandant un parcours d'apprentissage direct du C/C++. Cette semaine, un arrangement de langage C++ de niveau nounou est disponible !

image

J'ai déjà écrit sur le parcours d'apprentissage du langage C : c'est peut-être le meilleur parcours d'apprentissage du langage C base zéro dans l'hémisphère nord . Cette fois, j'ai également organisé le parcours d'apprentissage du C++. J'ai passé plus d'un mois à écrire ce parcours d'apprentissage. Le texte intégral dépasse les 8 000 mots, le texte a été longuement peaufiné et tous les supports ont été retrouvés.

1. Quelques mots d’abord

Ce parcours d'apprentissage est principalement composé de cinq étapes. Pour chaque étape, je recommande des livres et des vidéos correspondants, et le contenu est également balisé, divisé en deux types : incontournable et facultatif .

Certains contenus sont incontournables, vous devez les lire et ne pouvez pas les ignorer ; certains contenus sont facultatifs, alors lisez-les simplement si vous avez le temps. Si vous n'avez pas le temps, n'oubliez pas de le rattraper plus tard ! Cela ne veut pas dire que je n’ai pas besoin de lire ce que je n’ai pas écrit, c’est faux !

2. Parcours d'apprentissage

Pour en revenir au sujet, j'ai en fait écrit ce parcours d'apprentissage pendant environ un mois.

N'en doutez pas, cela fait vraiment un mois, principalement parce que le chef du département a récemment pris en charge de nouveaux projets et que nous faisons également des heures supplémentaires.

Je ne peux donc utiliser que divers temps fragmentés pour écrire ce parcours d'apprentissage. Cet article s'adresse principalement à certains novices et acteurs non scientifiques. Si vous changez de carrière, vous pouvez suivre ce parcours d'apprentissage.

Ce parcours d'apprentissage du C++ est principalement destiné à la recherche d'emploi . Réaliser soigneusement les trois premières étapes vous aidera certainement à trouver un bon emploi.

Après avoir terminé les cinq étapes , vous pouvez dire que vous êtes un ingénieur R&D C++ qualifié.

Pour les livres recommandés dans cet article, les versions papier correspondantes sont disponibles sur Dangdang et JD. Les PDF électroniques gratuits correspondants peuvent être trouvés dans les deux entrepôts suivants. Si vous ne pouvez pas accéder à github, vous pouvez visiter Code Cloud :

Adresse github : https://github.com/GrindGold/pdf

Adresse du nuage de codes : https://gitee.com/grindgold/pdf

De plus, cet article recommandera également quelques vidéos. Je les ai mises en arrière-plan du compte officiel. Les méthodes d'acquisition ou adresses vidéo se trouvent sous les vidéos recommandées correspondantes. Vous pouvez simplement y prêter attention.

Voici les grandes lignes de cet article :

image

Parcours d'apprentissage C++ (version recherche d'emploi)

Phase 1, démarrage

J'ai toujours conseillé à certains joueurs débutants de ne pas lire de livres directement au début, et surtout de ne pas lire certains livres noirs au tout début !

Ces livres sont-ils bons ?

D’accord , mais cela ne convient pas à vous qui êtes encore novice.

Si vous allez directement lire ces contenus alors que vous êtes novice, il devrait vous être conseillé d'arrêter.

1. Tutoriel sur le langage C du professeur Hao Bin (facultatif)

image

2433224

Adresse : https://www.bilibili.com/video/BV1os411h77o

Si vous disposez d'autres bases de langage, telles que Java, Python, etc., ignorez simplement le didacticiel sur le langage C de M. Hao Bin.

Si vous n'avez aucune autre base linguistique, vous devriez jeter un œil au tutoriel de M. Hao Bin.

Si vous ne disposez pas des bases les plus élémentaires du langage C, vous ne savez peut-être même pas ce qu'est un pointeur.

Ainsi, lorsque vous apprenez le C++, par exemple, la partie du pointeur intelligent sera très mignonne, mais vous sentez qu'une partie du contenu semble déroutante, la préface ne correspond pas au suiveur et vous êtes confus.

2. Tutoriel C++ du cours de formation Dark Horse (à lire absolument)

image

Adresse : https://www.bilibili.com/video/BV1Tb411j7uM

Celui-ci est à voir absolument! Ce que j'ai lu était la version 2017 de Dark Horse C++, et certains amis répondent encore à mes commentaires en 2019. .

image

Il est préférable de taper avec la vidéo. Peut-être que vous étiez très lent lorsque vous avez commencé à taper et que vous n'avez pas compris une partie du contenu. Cela n'a pas d'importance, suivez simplement.

Tout comme lorsque je regardais cette vidéo auparavant, j'ai tapé mot par mot.

image

Notes C++ de Dark Horse

Concernant la façon de regarder certaines vidéos de programmation, j'ai également partagé comment je regarde des vidéos auparavant. Si vous êtes intéressé, vous pouvez y jeter un œil.

Adresse de l'article : Quelques conseils pour regarder des vidéos

La deuxième étape, montante

Il s’agit de l’étape la plus importante de tout le parcours d’apprentissage du C++, et nous partons toujours à la fois de livres et de vidéos.

Si la première étape consiste à vous aider à démarrer, la deuxième étape consiste à vous aider à établir des bases solides afin que vous puissiez être sur la bonne voie dans vos études ultérieures sans avoir de bases instables.

1. "C++ Primer Cinquième Édition" ou "C++ Primer Plus Sixième Édition"

Ce sont deux livres complètement différents.

Le premier, c'est-à-dire "C++ Primer Fifth Edition", convient à certains lecteurs de base. La couverture est la suivante :

image

Ceux qui choisissent ce livre doivent avoir des connaissances de base du langage C, c'est-à-dire ceux qui peuvent sauter la première étape du didacticiel du langage C de M. Hao Bin et lire uniquement le didacticiel du cheval noir.

Bien sûr, ce serait mieux si vous aviez des bases dans d’autres langues.

Lorsque vous lisez ce livre, n'oubliez pas de ne pas sauter les exercices après les cours . Il n'est pas nécessaire de répondre soigneusement à chaque question, mais vous devez absolument répondre aux 2-3 premières questions après chaque section.

Ne sautez pas les questions après les cours parce que vous pensez avoir bien appris. Quand j'ai lu ce livre auparavant, j'ai senti que j'avais tout compris.

Je me suis retourné et j'ai posé quelques questions après l'école, pour me rendre compte que je comprenais un marteau. . .

Les 8 premiers chapitres de ce livre constituent la partie de base et doivent être lus attentivement ; les chapitres 9 à 12 concernent les conteneurs et les algorithmes ; les chapitres 13 à 19 concernent des points de connaissances plus avancés tels que la copie, le rechargement, etc.

Pour le contenu entre les chapitres 13 à 19, vous ne le comprendrez peut-être pas du premier coup. Cela n'a pas d'importance. Si vous rencontrez des problèmes plus tard, vous pouvez revenir aux points de connaissance correspondants.

Parce que c'est comme ça que je suis arrivé ici, comme les parties du constructeur de copie et du pointeur intelligent. Je me souviens que je l'ai lu d'avant en arrière au moins trois ou quatre fois avant de le comprendre clairement. . .

Je sais que j'ai également besoin d'une série d'exercices correspondant au "C++ Primer 5th". La couverture est la suivante :

image

Ensemble de problèmes

Beaucoup de gens m'ont demandé s'il était nécessaire d'acheter ce livre ? Personnellement, je pense que les questions à la fin du cours "C++ Primer 5th" sont suffisantes.

Ce n'est pas une question de quantité, c'est une question de précision. Si vous ne comprenez pas quelque chose, comprenez-le simplement à temps. Il n'est pas nécessaire d'acheter ce cahier d'exercices.

Parfois, trop de choix peut être une mauvaise chose. Trop d’options peuvent rendre le démarrage difficile et vous ne savez pas laquelle choisir.

Ce dernier, c'est-à-dire "C++ Primer Plus Sixth Edition", convient aux joueurs débutants, c'est-à-dire aux joueurs sans aucune base linguistique. La couverture est la suivante :

image

Cela devrait être C++PrimerPlus

Ce livre est un livre complet pour débutants, et on peut même dire qu'il est trop détaillé.

Les personnes qui choisissent ce livre suggèrent que vous devez lire la première étape du "Tutoriel de langage C du professeur Hao Bin" et de la "Vidéo du cours d'entraînement Dark Horse" avant d'acheter ce livre. N'achetez jamais l'édition "C++ Primer Fifth Edition" de ce livre.

N'oubliez pas de choisir différents livres en fonction de votre propre situation.

2. Jetez un coup d’œil rapide à trois vidéos du professeur Hou Jie

La lecture est une chose ennuyeuse, surtout ces gros livres noirs, qui ont l'air ennuyeux, donc certaines vidéos sont entrecoupées de sujets.

Dans la deuxième étape, je vous recommande de jeter un coup d'œil rapide aux trois vidéos incontournables de la troisième étape, qui sont les trois cours de programmation générique STL, les nouvelles fonctionnalités C++11 et la gestion et analyse de la mémoire par M. Hou Jie. .

Tous les cours du professeur Hou Jie peuvent être obtenus en répondant « Hou Jie » en arrière-plan du compte officiel.

Je sais qu'après avoir lu ceci, certains étudiants peuvent soupçonner que je dis des bêtises, et peuvent même me critiquer pour avoir mal enseigné aux étudiants plus jeunes, pour avoir lu des choses aussi avancées lorsqu'ils ont commencé leurs études. . .

Pourquoi faut-il regarder quelques vidéos de la troisième phase à l'avance ?

Tout d'abord , je vous recommande de regarder les vidéos dans la deuxième étape, mais cela ne signifie pas que vous pouvez lire le livre directement dans la deuxième étape. La condition préalable pour regarder ces vidéos est que vous ayez au moins appris et lu les connaissances de base du C++. , comme "C++" Les huit premiers chapitres de "Primer Fifth Edition", lisez au moins les huit premiers chapitres avant de regarder la vidéo.

Deuxièmement , comme mentionné ci-dessus, la lecture est une chose très ennuyeuse. Si vous changez la forme de réception des connaissances et revenez ensuite à la lecture, l'efficacité sera généralement grandement améliorée. Après m'être habitué à manger des raviolis au porc et aux oignons verts, j'ai toujours envie de manger des raviolis aux poireaux et aux œufs. .

Troisièmement , ces vidéos de M. Hou Jie devraient être regardées attentivement plusieurs fois par tous ceux qui apprennent le C++, et on ne s'en souviendra jamais après les avoir regardées une seule fois.

Vous pouvez donc jeter un œil à ces vidéos incontournables dans la deuxième étape, et regarder ces vidéos de plus près dans la troisième étape.

J'ai déjà partagé avec vous certaines de mes méthodes lorsque je regarde des vidéos, à savoir l'article suivant :

Cependant, ces méthodes ne sont pas applicables à ces vidéos du professeur Hou Jie. Il vous suffit de regarder attentivement ces cours du professeur Hou Jie. Si vous êtes déterminé à suivre les instructions, ce n'est pas grave. Si vous ne prévoyez pas de suivre les instructions instructions, tout va bien. Prenez-le au sérieux. Regardez simplement.

Vous pourriez vous sentir confus et confus en regardant ces trois vidéos, pas de panique, c’est normal.

Je ne me sens pas confus, mais plutôt anormal. . .

Si vous ne comprenez pas certains points de connaissance de la vidéo, cela n’a pas d’importance, continuez simplement à regarder.

Vous n'avez pas besoin de bien le comprendre, il vous suffit d'avoir une impression générale des noms qui y apparaissent.

La troisième étape, peaufinée

1. 2 livres incontournables et 2 livres optionnels

Plus précisément, les deux livres à lire absolument, ou en d'autres termes, les deux livres à lire absolument et un chapitre sont l'analyse du code source STL, Effective C++ et l'exploration approfondie du modèle objet C++, chapitre 3.

Les deux livres que j'ai choisi de lire : More Effective C++ et Deep Exploration of C++ Beyond Chapter 3

Pourquoi devrais-je lire ces deux livres et un chapitre ?

Pour le dire plus précisément, l'intervieweur demandera, c'est une réponse très réelle, il n'y a aucun moyen, demandera l'intervieweur.

Oui, les entretiens poseront des questions. Un entretien C++ légèrement plus formel posera certainement des questions sur la bibliothèque STL, et ils pourront également décider s'il convient de creuser plus profondément en fonction de votre réponse.

Par exemple, qu'est-ce que le mécanisme d'expansion vectorielle, quelles sont les structures de données sous-jacentes de unordered_map et map, et comment résoudre les conflits de hachage ?

Pour aller plus loin ,

Le livre "STL Source Code Analysis" vous emmène dans la couche inférieure de la bibliothèque la plus célèbre en C++ et explore ses secrets. Grâce à ce livre et à la vidéo sur le code source STL du professeur Hou Jie, vous aurez une compréhension complètement différente de STL.

Ces conteneurs et fonctions de bibliothèque vous fourniront deux fois plus de résultats avec moitié moins d'effort pour écrire du code et répondre aux questions, ce qui vaut la peine d'être regardé .

"Effective C++" est écrit pour ceux qui pensent avoir "maîtrisé" le C++. Croyez-moi, le C++ est définitivement un langage énigmatique. Ce livre ne vous donne qu'un aperçu de ses mystères. À regarder .

"Exploration approfondie des objets C++" est un bon livre, mais le contenu est trop compliqué. Le plus important est la partie fonction virtuelle du chapitre 3.

J'ai déjà partagé que l'un des meilleurs moyens de distinguer le niveau des candidats C++ est de leur poser des questions sur les fonctions virtuelles et certains points de connaissances STL.

Si le candidat peut bien répondre à ces deux parties de connaissances, cela peut signifier qu'il a appris un peu de C++ et qu'il n'y a pas de gros problème avec les compétences de base du langage C++.

Donc la partie sur les fonctions virtuelles du chapitre 3 mérite d'être lue .

Les deux livres que vous avez choisis pour lire ne sont-ils pas de bons livres ? Cela ne vaut pas la peine d'être regardé ?

Non, ce sont aussi de bons livres de C++, mais la priorité peut être mise plus tard jusqu'à ce que vous trouviez un emploi.

Lisez d'abord les deux livres incontournables les plus importants, et les deux livres sélectionnés pourront être lus plus tard.

2. Trois vidéos incontournables et une vidéo facultative

M. Hou Jie est un maître C++ à Taiwan, il ne devrait y avoir personne qui apprend le C++ sans connaître M. Hou Jie.

J'ai eu la chance de regarder la diffusion vidéo en direct de M. Hou Jie auparavant, haha.

Pour aller plus loin, les vidéos incontournables sont la programmation générique STL du professeur Hou Jie, les nouvelles fonctionnalités de C++11, ainsi que la gestion et l'analyse de la mémoire.

La vidéo sélectionnée est la vie et la mort du programme de M. Hou Jie.

Tous les cours du professeur Hou Jie peuvent être obtenus en répondant "Hou Jie" en arrière-plan.

L'importance des trois vidéos incontournables est par ordre décroissant : la plus importante est la programmation générique STL et la dernière est la gestion et l'analyse de contenu.

Parmi eux, la programmation générique STL vous aide à comprendre le livre « STL Source Code Analysis » ; les nouvelles fonctionnalités C++11 vous aident à comprendre les nouvelles fonctionnalités C++11 de « C++ Primer Fifth Edition ».

Après tout, il est facile de s'égarer ou d'avoir des ennuis en lisant et en comprenant simplement certains points de connaissances par soi-même. Il est bien mieux d'avoir quelqu'un avec soi.

La quatrième étape, le combat réel

En fait, il suffit presque d'étudier sérieusement les trois premières étapes, puis de trouver un projet sur lequel travailler et d'y réfléchir.

Vous n'aurez aucun problème avec le langage de base C++. Si vous avez une certaine connaissance des structures de données et des algorithmes, des systèmes d'exploitation, des réseaux informatiques et des bases de données, vous pouvez sortir et trouver un emploi.

Si vous souhaitez emprunter la voie du C++, vous pouvez continuer à lire ci-dessous.

Un bon ingénieur de développement C++ doit être très familier et comprendre la programmation réseau. Après tout, apprendre le C++ n'est pas comme apprendre Java. Vous pouvez obtenir de l'autosatisfaction en créant votre propre site Web ou en faisant quelques petites démonstrations pendant le processus d'apprentissage.

Normalement, lorsque vous apprenez le C++, vous serez accompagné pendant longtemps par une boîte de commande sombre. L'étape de programmation réseau est l'une des rares étapes où vous pouvez obtenir une certaine satisfaction.

Il est recommandé d'approfondir votre compréhension de la programmation réseau en développant un serveur de manière indépendante à ce stade.

Je pense que beaucoup de gens diront dans leur cœur : « Quoi ? Un projet de serveur merdique ? Frère Xiu, avez-vous raison ? Comment me recommandez-vous d'apprendre cela ?

En fait, ce n’est pas parce que quelque chose est nul que cela n’en vaut pas la peine.

Il y a aussi beaucoup de gens qui écrivent des projets de serveur web sur leur CV, mais en fait ce sont des projets open source directement copiés sur github, ils peuvent dire que ce sont leurs propres projets sans même les comprendre.

Il y a tellement de gens comme ça. . .

1. Deux livres incontournables et un livre facultatif

Pour apprendre la programmation réseau liée à C/C++ Linux, les deux livres incontournables sont « Programmation réseau TCP/IP » et « Programmation serveur Linux haute performance ».

Le premier est un très bon livre car il vous apprend à écrire du code étape par étape. Il vous apprend vraiment à écrire du code étape par étape. . Le seul inconvénient est qu'une grande partie des connaissances contenues dans le livre sont trop superficielles et que de nombreuses fonctions et principes ne sont que brièvement mentionnés, ce qui est beaucoup moins approfondi que "Programmation de serveur Linux haute performance".

Le livre dont je me souviens semble avoir un total d'environ 24 chapitres, et chaque chapitre est un exemple. Peut-être que vous pourriez être trompé par le slogan « Apprenez-vous XXX étape par étape » dans certaines publicités.

Ne vous inquiétez pas, ce livre vous apprend vraiment des exemples étape par étape d'écriture de diverses communications réseau. . .

Quand je lisais ce livre, je suis allé sur  GitHub  pour trouver les notes des autres. J'ai lu le livre en lisant les notes des autres. Enfin, j'ai supprimé, supprimé et modifié les notes des autres pour former mes propres notes et incorporé le contenu du livre dans le mien. L'exemple est également renversé encore et encore.

image

Notes de programmation réseau TCPIP

Après avoir lu « Programmation réseau TCPIP », vous devriez lire « Programmation de serveur Linux haute performance » de Youyi Youshuang.

Ce livre est plutôt bon et constitue un incontournable pour tous ceux qui sont engagés dans le développement côté serveur. Le livre "Programmation réseau TCPIP" vous explique le comment, et ce livre vous explique le pourquoi.

Un autre livre que j'ai choisi de lire est « Mudo : Linux Multi-Threaded Server Programming » de M. Chen Shuo de l'Université normale de Pékin.

Ce livre est bon, mais un peu avancé, et peu de gens dans l'industrie utilisent Mudo. Si vous n'êtes pas engagé dans la R&D côté serveur, vous pouvez sauter la lecture de ce livre ou le lire plus tard si vous en avez besoin.

2. Choisissez une vidéo à regarder

L'enseignant Chen Shuo a également enregistré une vidéo accompagnant « Mudo : Linux Multi-Threaded Server Programming » sur Expo.com.

La vidéo du professeur Chen Shuo peut être obtenue en répondant « Chen Shuo » en arrière-plan du compte officiel.

Tout comme son livre, le seuil pour regarder cette vidéo est relativement élevé. Si vous n'êtes pas un spécialiste C++ spécialisé dans le développement côté serveur, vous n'avez pas besoin de regarder cette vidéo.

3. Un mur payant

Si vous avez une forte capacité d'auto-apprentissage, vous pouvez lire les deux livres « Programmation réseau TCPIP » et « Programmation serveur Linux haute performance » en toute sérénité.

Si ce n'est pas le cas, ou si vous avez encore l'habitude d'apprendre à travers des vidéos, vous pouvez essayer une rubrique de développement de serveur Linux C/C++ sur Niuke.com, mais elle est payante.

Il existe de nombreuses ressources gratuites en ligne, mais la qualité des ressources gratuites varie. Il est préférable de regarder quelques vidéos classiques ou reconnues.

Relativement parlant, la qualité des ressources payantes est plus garantie. Lorsque j'ai partagé ma recherche d'emploi sur Niuke.com, j'ai lu leur rubrique sur le développement de serveurs Linux C/C++ ainsi que le calendrier des cours et le contenu principal. Que faut-il couvrir ? En gros, tout est couvert En gros, les deux livres "TCPIP Network Programming" et "Linux High-Performance Server Programming" ont couvert certains des points de connaissances les plus importants. La qualité n'est pas mauvaise.

Le plus important est que quelqu'un vous aide à apprendre, ce qui est bien mieux que d'étudier dur tout seul.

Adresse : https://www.nowcoder.com/courses/cover/live/504?coupon=AcNi2gn

Bien sûr, si vous souhaitez comprendre plus en profondeur, je vous recommande tout de même de lire les deux livres « TCPIP Network Programming » et « Linux High-Performance Server Programming ».

La cinquième étape, Dacheng

1. Livres

Les éléments de la cinquième étape sont en fait plus souvent utilisés au travail, comme la programmation simultanée, les méta-modèles, etc. Les livres correspondants incluent "C++ Meditations", "C++ Template Metaprogramming" et "C++ Concurrent Programming in Practice".

Il n'est fondamentalement pas nécessaire de lire ces livres lorsque vous postulez à un emploi. Ils sont tous à un stade ultérieur. Attendez d'avoir reçu l'offre et décidez de vous engager dans un travail lié au C++ avant de lire ces livres, en particulier la programmation simultanée C++. Il n'y a actuellement rien de bon en Chine. Le livre sur la programmation simultanée C++, "C++ Concurrent Programming in Practice" peut être considéré comme le meilleur parmi les nains.

De plus, je vous suggère de revenir à l'origine du langage C++, c'est-à-dire de lire "C++ Primer Fifth Edition" depuis le début ou de l'utiliser comme dictionnaire et de le mettre sur votre poste de travail lorsque vous rencontrez une incertitude. .

2. Vidéo

Si vous parvenez à apprendre la cinquième étape, vous êtes déjà très fort, du moins bien meilleur que moi. . .

Ensuite, je vous recommanderai quelques excellentes vidéos que j'ai rassemblées. Il s'agit essentiellement de vidéos liées aux principes du système et à sa distribution. Dans l'article suivant :

J'ai appris la programmation entièrement grâce à Bilibili, c'est tellement délicieux - Overseas Chapter (Troisième numéro)

Conclusion

Les bons développeurs C++ n'ont jamais peur de ne pas trouver d'emploi. Même si vous travaillez en Java/Go à l'avenir, puisque les principes du langage sont les mêmes, votre coût d'apprentissage sera bien inférieur à celui des autres.

J'ai soigneusement réfléchi à mon histoire linguistique au fil des années : j'ai écrit le langage C et VB pendant un an à l'université, et C# pendant trois ans ; j'ai écrit Python pendant un an et C++ pendant deux ans en tant qu'étudiant diplômé ; j'ai commencé à écrire du JavaScript, Go, et Vue quand j'ai commencé à travailler. , Réagissez à ces frameworks.

Vous voulez me demander quelle est ma langue préférée ?

Il ne fait aucun doute qu’il s’agit de C++ !

Aucune raison, j'aime juste sa rigueur !

image

Le C++ est numéro un au monde ! ! !

Le meilleur moment pour planter un arbre était il y a dix ans, et le deuxième meilleur moment est maintenant. J'espère sincèrement que les camarades étudiants et amis qui souhaitent passer à l'ordinateur feront de leur mieux !

Je suppose que tu aimes

Origine blog.csdn.net/liuxing__jacker/article/details/132031987
conseillé
Classement