Comment trouver un mentor en programmation? [fermé]

46

J'ai décidé d'apprendre la programmation. Cela fait quelques jours que je lis SO et je pense que je vais commencer par C ++, car je lis des articles. Je connais un peu les boucles, les tableaux, la logique de programme et les objets et j'ai besoin de quelqu'un pour me regarder et m'aider avec les petites questions que je reçois lors de mes premiers projets.

Alors voici la question - où puis-je trouver un tel gars? Je n'ai aucun ami qui programme et tout.

EDIT: 2 ans plus tard, je suis toujours à la recherche d'un mentor. Je n'ai pas activement codé, je viens de recommencer 3 mois. Je travaille sur la programmation Objective-C et iOS et la programmation de jeux avec Cocos2d. Si vous voulez devenir mon mentor, envoyez-moi un commentaire ou une remarque.

Dvole
la source
1
achetez aussi un bon livre "débutant" dans la langue de votre choix
Demian Kasier
2
Juste sortir avec ces utilisateurs . Offrez-leur une bière ou deux. Lire leurs messages. Posez-leur des questions.
WernerCD
1
Voici une liste de noms (et carte) qui ont signé le Manifeste de Software Craftsman: manifesto.softwarecraftsmanship.org
spong
1
Ma réponse était un peu bête, mais je recommande d'apprendre le langage JavaScript ou Python, car vous apprenez un langage plus typé. Il existe des avantages aux deux paradigmes, selon ce que vous faites, mais dans les langages "plus lents", vous pouvez essayer des choses directement dans une console et, dans le cas de JS, jouer avec la disposition de la page Web et le comportement de l'interface utilisateur des outils de développement de chrome. En outre, les fonctions que vous pouvez transmettre dans les paramètres; les gens qui font caca, ne savent même pas et ne le sauront jamais (merci, jeebus, car j'ai travaillé avec ces gars-là); sont obscénément puissants.
Erik Reppen
1
Deux ans plus tard, tout ce dont vous avez besoin, c'est d'un peu de divulgation. Êtes-vous prêt pour cela?
ott--

Réponses:

31

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).

Chef geek
la source
4
La question était de savoir comment trouver un mentor, et non s'il devrait ou non en chercher un.
marktani
4
La réponse incluait à l'origine une offre de mentor pour quiconque était vraiment intéressé par le C ++. Après avoir trouvé huit personnes qui prétendaient être vraiment intéressées mais qui ne voulaient pas continuer la conversation, j'ai retiré cette offre.
Chef Geek
23

Pour trouver un mentor, ne cherchez pas de mentor. Essayez de vous améliorer de manière spécifique. Si vous travaillez assez dur pour vous améliorer, vous constaterez que vous entrez en contact avec des personnes partageant les mêmes idées et que vous avez quelque chose en commun avec ces personnes.

Les groupes d’utilisateurs sont l’endroit le plus susceptible de trouver un mentor, mais personne ne veut aider quelqu'un qui se trouve là-bas en se disant "je cherche un mentor". Mais si vous pensez: "J'adorerais que quelqu'un m'aide à apprendre à écrire de bons tests unitaires JavaScript" ou "J'adorerais me mettre en couple et tester un kata dans Clojure", tôt ou tard. vous trouverez quelqu'un qui partage vos intérêts et est un peu plus loin.

Eric Wilson
la source
14

Les types de personnes qui font de très bons mentors ont généralement une dizaine de juniors qui jappent leur temps à un moment donné. Donc, "trouver" le bon mentor n'est qu'un début, vous devez également vous rendre plus attractif / plus gratifiant que le mentorat de quelqu'un d'autre.

La première étape consiste donc à rejoindre les communautés où vous rencontrerez probablement de bons mentors.

La deuxième étape consiste à devenir un mentoré valable. Certaines choses que je recherche personnellement chez un mentoré sont:

  • Une intelligence proche, égale ou supérieure à la mienne.
  • Intérêt pour les choses que je dois offrir et profiter de l'enseignement.
  • Compatibilité de la personnalité (c.-à-d. Que nous nous entendons bien, aimons parler entre nous).
  • Volonté d'être précieuse pour le projet / la communauté dans laquelle je l'encourage, en:

    • Code d'écriture
    • Rédaction de documentation
    • Faire scut fonctionne comme le tri des files d'attente, le nettoyage des commentaires, etc.
    • Aider les contributeurs moins expérimentés
  • Compatibilité avec mon flux de travail habituel.
  • Capacité d'enseigner moi les choses. Être plus expérimenté que quelqu'un n'empêche pas d'apprendre d'eux. Le meilleur mentoré a le don de poser les bonnes questions, ou un point de vue nouveau, ou une expérience hors de mes domaines de connaissances à partir desquels je peux apprendre.
HedgeMage
la source
12

Rejoignez un projet open source. Vous ne devez pas nécessairement programmer pour eux non plus. La plupart des projets aimeraient que quelqu'un aide à la documentation. Vous pouvez regarder le code et poser des questions. Lorsque vous êtes à l'aise, vous pouvez commencer à écrire du code pour eux.

Jim C
la source
1
Ok, je peux paraître bête, mais comment rejoindre des projets open source? Quel est le meilleur site web à visiter?
M. Ant
1
gnu.org/help ou certains référentiels de code open source (code google, github ...). Recherchez un projet intéressant qui manque de personnes pour contribuer à la documentation et envoyer un courrier électronique.
Cbrandolino
2
Je crois fermement qu'il n'y a pas de questions idiotes. Bien qu'il existe de nombreux sites Web de projets open source, sourceForge reste l'un des plus populaires.
Jim C
1
@Ant: le meilleur projet open source sur lequel travailler est un programme que vous utilisez couramment ou que vous prévoyez utiliser.
Larry Coleman
7
-1: Rejoindre un projet de système d'exploitation est une bonne réponse, mais certainement pas à ce stade de l'apprentissage (c'est-à-dire le premier jour). C'est plonger dans les profondeurs avant même de se mouiller. Un apprentissage structuré via des livres ou une classe est une bien meilleure idée.
Steven Evers
6

Qu'attendez-vous d'un mentor? Les suggestions d'un projet open source ou d'un groupe d'utilisateurs locaux sont conçues pour mettre davantage l'accent sur la mise en réseau et sur la recherche d'une personne qui se situe quelques pas plus loin que ce que vous voulez être, de manière à pouvoir vous guider d'une manière ou d'une autre. Essayez d’apprendre à cuisiner de Jamie Oliver ou de Gordon Ramsay, c’est peut-être très divertissant et utile en fin de journée.

Selon vos attentes, il peut être facile ou incroyablement difficile de trouver un mentor. Si vous attendez quelqu'un qui puisse lire dans vos pensées et vous donner, étape par étape, les secrets pour être génial en un an ou moins, cela risque de ne pas être réaliste. En même temps, si vous voulez trouver quelqu'un qui peut faire certaines choses mieux que vous, cela ne sera peut-être pas si difficile à faire. Alors, déterminez d’abord vos attentes.

Deuxièmement, maintenant que vous savez ce que vous voulez, vous devez le trouver. Cela risque d’être assez difficile, car il n’ya pas beaucoup d’endroits consacrés à la présentation de développeurs utilisant leurs compétences, comme ce fut le cas pour les arts au Canada et aux États-Unis. C’est pourquoi j’imagine que cette suggestion a été donnée. MentorNetserait un exemple de programme qui peut fonctionner même si je ne l’ai pas essayé, j’ai fait une recherche il ya quelque temps et je ne pensais pas que c’était pour moi et ce que je voulais. Une autre pensée ici est à quel point vos amis et votre famille savent-ils ce que vous voulez ici? Ils peuvent connaître quelqu'un ou un endroit qui peut vous aider si vous le demandez. Bien que ce ne soit pas une réponse complète, ce que vous demandez est plutôt vague et j'espère que vous pourrez ajouter quelque chose, puis je vous donnerai un suivi une fois que vous aurez donné plus de détails sur ce que vous voulez et comment vous le souhaitez. ce n’est pas Burger King, mais nous pourrions essayer de le faire de cette façon.


Les experts en composants côté serveur C ++ peuvent être assez difficiles à trouver. Y a-t-il des établissements d'enseignement postsecondaire à proximité? Ceux-ci peuvent avoir quelqu'un qui a ces compétences qui peuvent passer à autre chose en tant qu'idée possible. Bonne chance pour trouver ce mentor.

JB King
la source
+1 de mon côté. On dirait que travailler avec quelqu'un est le moyen d'aller de l'avant.
Fanatic23
4

Les projets open source sont très utiles pour obtenir des commentaires sur du code spécifique que vous avez ajouté et de nouvelles façons de faire, mais comme vous l'avez compris, cela ne correspondra probablement pas à une relation de mentor.

Je suggérerais ce que vous avez déjà mentionné, à savoir les groupes d'utilisateurs. Les groupes d'utilisateurs se rassemblent généralement assez souvent pour que vous puissiez avoir un temps de parole réel avec des mentors potentiels. Ce temps de présence peut permettre un flux de communication plus rapide et plus facile. Cela garantira-t-il que tout le monde est dans le même domaine? Non, mais il faut bien commencer quelque part. Si vous trouvez une personne qui a beaucoup d’expérience, elle pourra peut-être vous aider avec votre domaine, en vous basant sur d’autres expériences qu’elle a vécues.

Walter
la source
3

Vous pouvez consulter votre groupe d'utilisateurs de Linux local ( ici vous trouverez une liste), généralement la plupart des participants sont des programmeurs - ou tout au moins les pirates de Perl. De plus, si vous leur dites que vous êtes là pour trouver un mentor en programmation, ils vous aimeront.

Un post sur craigslist pourrait valoir la peine d'essayer, mais je ne parierais pas là-dessus.

De plus, si vous êtes basé en Allemagne, il y a quelques endroits que je peux suggérer en particulier.

cbrandolino
la source
Qu'en est-il de la région de la baie de Californie?
grand
@ Victor, je ne sais pas vraiment mais il semble y en avoir quelques uns: google.de/…
cbrandolino
3

Étant donné que vous êtes inscrit sur Stack Exchange, vous avez déjà plusieurs mentors informels à votre disposition. Vous pouvez facilement poser des questions ou faire réviser votre code par de nombreuses personnes motivées à vous aider.

Plus localement, si vous souhaitez un mentorat ou un enseignement en présentiel, voici d'excellentes options:

  • Groupes d'utilisateurs - Avantages: gratuit ou pas cher, ouvert à tous. Inconvénients: Peu fréquents, pas systématiques, peuvent ne pas être disponibles dans votre communauté.
  • Coopératives - Avantages: ouvert, gratuit / pas cher. Inconvénients: moins courant, ad-hoc, plus probable pour le Web que le C ++.
  • Diplôme universitaire / collégial - Avantages: systématique, de grande qualité, respecté, ouvre les portes, donne généralement accès à au moins quelques professeurs de grande qualité. Inconvénients: admission compétitive, engagement important, coût élevé, taux d'abandon élevé, il est donc un moyen coûteux de savoir si vous souhaitez faire du logiciel votre profession, le programme d'études peut être flexible mais peut nécessiter des sujets que vous n'aimez pas ou ne voudrez pas. trouver difficile.
  • Cours collégiaux ou diplômes universitaires. Avantages: bon marché, bon rapport qualité-prix, plus d'attention individuelle de la part des instructeurs, facile à faire admettre. Inconvénients: Moins de prestige que l'université, mais un bon élève est un bon élève, où qu'il aille.
  • Organisations professionnelles - Avantages: peut être un bon réseautage et une formation continue. Inconvénients: vous aurez peut-être besoin d'un diplôme ou d'un emploi dans le domaine pour pouvoir devenir membre. Les réunions mensuelles peuvent être des sujets ad-hoc sur les innovations plutôt qu'une couverture systématique de sujets favorables à la carrière.
  • Au travail chez des pairs, des cadres supérieurs ou des cadres supérieurs - Avantages: fréquente, ciblée, appréciation / enthousiasme / suivi construira votre carrière comme nulle part ailleurs. Inconvénients: peut se tromper si votre mentor professionnel passe en mode jugement et que vous laissez tout traîner, ce genre de mentor peut ne pas être disponible tant que vous n’avez pas un emploi qui pourrait signifier après avoir obtenu un diplôme en raison de la concurrence mondiale.
  • Coworking - Pros: de bonnes ressources, des gens formidables, généralement un croisement entre une commune et une multitude de futurs PDG. Inconvénients: peut ne pas être disponible sur votre lieu de résidence, peut impliquer un engagement monétaire pour vous aider à payer le loyer d'un espace partagé, beaucoup d'entre eux seront des travailleurs indépendants. Vous devez donc respecter leur temps et trouver des moyens créatifs de rendre les avantages réciproques.
DeveloperDon
la source
2

Je pense que les forums seraient le meilleur moyen de trouver des experts en la matière. Je crois que vous devriez commencer par là.

Visitez quelques sites c ++ sur Google ou peut-être notre cher ami stackoverflow, où il y a beaucoup de ninjas c ++ prêts à répondre à vos questions!

Guiman
la source
1

Apprendre à programmer est une cause ambitieuse et (je pense que tout le monde sur ce site sera d’accord) noble. Cependant, il est difficile de partir de zéro et d’apprendre, même avec un mentor. Je pense que vous constaterez que la meilleure façon de procéder est de prendre au moins quelques cours d'initiation pour vous donner une base.

Un mentor est une excellente idée, et je ne serais pas ici plus de 15 ans plus tard en tant que codeur sans le type qui a accepté mes questions lors de mon premier "vrai" travail, mais en réalité, une seule personne ne pourra pas pour vous donner le temps et les conseils dont vous aurez besoin pour devenir un programmeur performant. Il ou elle aura probablement un emploi à temps plein (ou une charge de cours) eux-mêmes. Cela ne veut pas dire que vous ne devriez pas trouver un ou plusieurs mentors, mais simplement que vous aurez besoin de quelque chose d'autre.

Des sites comme celui-ci, des tutoriels en ligne, des livres et tout le reste sont des pièces du puzzle. L'éducation constitue les pièces de la frontière.

Cela ne veut pas vous décourager. au contraire, je pense que définir des attentes réalistes vous donnera une meilleure chance de réussir.

Wonko le sain d'esprit
la source
1

Si vous travaillez dans une entreprise, vous pouvez y chercher un mentor.

En ce qui concerne un projet open source, je doute que vous trouviez un mentor pour un projet que vous créez, mais vous pourriez en trouver un dans un projet qu'ils ont créé.

N'oubliez pas que leur mentor doit tirer quelque chose de cet arrangement également. Ils passent leur temps précieux à vous aider. Soyez prêt à faire un travail pour eux en échange.

Jim C
la source
0

"Comment trouver un prodige de la programmation? C'est tout ce que je veux. Je veux juste construire une immense armée de robots pour conquérir le monde. Je suis intelligent et j'ai écrit l'IA. J'ai l'argent, l'influence, les installations. Je ne peux tout simplement pas avoir la peine de m'occuper de cette stupide bêtise .NET ou JVM ... Hmm ... Comment ... Comment !? Bon sang! "

Normalement, je ne l'expliquerais pas, mais nous sommes sur Stack. Certaines personnes l'aiment littéralement. Vous en trouvez un (un mentor), en étant utile. Vous pouvez être utile en résolvant les problèmes que les enfants avec l'expérience (ou - peut-être - le cerveau - ou (hé) de l'argent) ne veulent pas résoudre.

Résoudre ces problèmes, sauterelle.

Ou pas. C'est l'ère de l'information. DIY mon ami. Faites appel à des communautés comme Stack pour vous informer lorsque vous êtes stupide ou sage à propos de quelque chose lié au code ou de quelque chose que nous ne comprenons pas aussi facilement que les machinations de cet investisseur qui est prêt à vous casser la gueule et plus encore.

Et partagez ce que vous savez. Participez un peu au collectif une fois que vous avez trouvé votre rythme. Ce n'est pas la forge dans les années 1700. Vos parents ne devaient connaître personne (même si, bien sûr, tout le monde apprécie que vous ne connaissiez pas votre métier et que vous ne partagiez rien avec la guilde).

Vous décidez simplement que vous êtes intéressé et vous partez. Cela prend un certain temps (je sais) mais croyez-moi (ne serait-ce que sur ce point apparemment absurde - il m'a fallu plus de dix ans pour réaliser que oui, j'étais un programmeur terrifiant), tout ça. Le plus important, c’est que vous ayez le niveau de talent de base et que vous êtes réellement intéressé. Si vous ne l'êtes pas, merci! @ # $ Off et trouvez quelque chose qui vous intéresse.

Parce que la programmation / script / codage est un choix horrible autrement. Mais je ne veux pas laisser cela sur un point négatif et méchant. Si vous êtes intéressé, ne vous inquiétez pas de votre qualité. Poser des questions. Demander des réponses. Mettre en place avec les gaz / douches-sacs à longue durée totale comme moi. Vous y arriverez si vous voulez.

Aimez-vous les énigmes? Aimez-vous résoudre des problèmes arbitraires aléatoires? Aimez-vous les films de gladiateurs? Sans équivoque sur les deux premiers points, oui? Ne cherchez pas de mentor. Apprenez très bien une langue, apprenez-en une ou deux autres qui ne sont pas très similaires à votre langue maternelle et atteignez le point d'entrée, de niveau de compétence, de niveau, lisez des livres et exprimez vos opinions. Amusez-vous à les contester et modifiez-les de temps en temps, même si ce n'est que pour voir si vous ne vous êtes pas tout simplement trompé. Vous pourriez être surpris de la fréquence à laquelle vos instincts n'étaient pas si mauvais. Demandez aux gens de venir et de vous gifler pour avoir posé la mauvaise question et vous constaterez peut-être que vous savez mieux que quiconque ce qui se passe à cette occasion. Mais surtout, c'est un problème à résoudre. Résoudre.

Erik Reppen
la source
Oh, et partager la solution, bien sûr, afin que nous puissions tous faire caca les morceaux que nous n'aimions pas.
Erik Reppen
-2

Pour un mentor, allez à freenode (irc). Je jure que vous pouvez obtenir l'essentiel d'un diplôme en informatique de cet endroit, utile à tout niveau de compétence. C'est là que j'ai beaucoup appris. Peu importe que la personne soit sur ce canal une fois ou 24 heures sur 24, c'est en temps réel et c'est ce qui compte.

Et, comme l'ont dit la plupart des autres, ne faites pas le C ++. Au lieu de cela, commencez avec un langage de récupération de place typé de manière statique et ne passez pas à la gestion manuelle de la mémoire tant que vous n'en saurez pas suffisamment pour vaincre le récupérateur de place. Vous pouvez écrire un sacré Haskell ou OCaml si vous essayez.

Ericson2314
la source