Rejoindre un projet open-source est certainement un moyen de commencer. Cependant, j'utilise des logiciels à code source ouvert depuis des années et, très franchement, la qualité de presque tous ces projets est généralement aux toilettes. Si vous apprenez entièrement vos compétences en programmation et en conception, vous en obtiendrez probablement de très mauvaises avec les bonnes, sans aucun moyen de faire la différence.
Que voulez-vous apprendre la programmation ? La réponse à cette question déterminera ce que vous devez rechercher et où. Voici quelques réponses communes, et mon opinion professionnelle sur la façon de les poursuivre (garder à l' esprit qu'il est d' avis que, bien que mon humble avis, précis):
Juste pour dire que vous savez comment le faire.
Dans ce cas, vous n'avez pas vraiment besoin d'un mentor et C ++ est un mauvais point de départ. J'aime le C ++, c'est mon premier choix pour la programmation générale, mais je préfère jouer avec un autre langage. Je suggérerais Python; sa courbe d'apprentissage est beaucoup plus douce que celle du C ++ et, contrairement à certaines langues (aucun nom mentionné, je ne porte pas mes sous-vêtements en amiante aujourd'hui), vous apprendrez tout de même quelques compétences utiles au cas où vous souhaiteriez y entrer plus tard. De nombreux concepts peuvent être directement traduits en C ++ si vous décidez de continuer sur cette route.
Juste pour essayer et voir si vous l'aimez.
Un projet open source pourrait suffire à cela. Choisissez un programme que vous aimez, mais avec lequel vous avez rencontré des problèmes ou des irritations, et offrez votre aide à celui qui l’exécute. La plupart des projets open source sont ouverts aux contributions, c'est généralement pourquoi ils sont open source.
Cependant, dans ce cas, n'essayez pas d' utiliser C ++ comme premier langage de programmation. Il n’est pas difficile de maîtriser les bases, mais C ++ est suffisamment bas pour que vous puissiez obtenir des bogues sérieux et très difficiles à trouver dans vos programmes. À moins que vous ne sachiez déjà que vous aimez programmer, ou que vous soyez aussi obstiné que le proverbe, ou que vous ayez déjà trouvé un mentor qui puisse vous orienter dans la bonne direction, cela détruira tout intérêt naissant que vous pourriez avoir sur le terrain. Voir la réponse ci-dessus à propos de Python, il convient mieux pour cela.
Parce que vous avez une idée pour un programme spécifique que vous voulez écrire.
(Je ne pense pas que le PO entre dans cette catégorie, je le mets aux lecteurs suivants.)
Avez-vous une idée du temps nécessaire pour maîtriser la conception et la mise en œuvre du programme? Comme indice, il est mesuré en années. Si vous êtes malin et extrêmement chanceux, vous pourrez peut-être proposer un modèle plutôt décent après seulement quelques mois d’études, mais quiconque a un peu d’expérience et doit travailler dessus (y compris vous-même plus tard) souhaite que tu ne sois jamais né - je parle d'expérience. :-) À moins que l'idée ne soit tellement super secrète que personne ne puisse la connaître jusqu'à ce que ce soit fait, ne vous embêtez pas. Embauchez un programmeur expérimenté pour le faire pour vous, ou si vous ne pouvez pas vous le permettre, mais souhaitez tout de même le programme, proposez de vous associer à un programme - vous gérez le côté professionnel et le laissez gérer la partie programmation. La plupart des bons développeurs préféreraient programmer, de sorte que ce type d’offre leur en vaut la peine.
Parce que vous savez déjà que vous êtes fasciné par la programmation et que vous souhaitez en savoir plus.
Alors vous êtes sur la bonne voie. :-) Que ce soit comme passe-temps ou comme activité que vous pourriez transformer en carrière plus tard, si vous avez le genre de personnalité qui la fascine sans cesse, la meilleure chose à faire est de vous y immerger. Dans ce cas, le C ++ est une langue aussi efficace que tout autre, et un mentor vous aidera (et avec plus que le simple développement de vos compétences; il peut se sentir seul sans amis qui partagent votre passion).