it-swarm.it

Come trovare un mentore di programmazione?

Ho deciso di imparare la programmazione. Ho letto SO da alcuni giorni e penso che inizierò con C++, mentre leggo alcuni articoli. Sono a conoscenza di loop, array, logica del programma e oggetti un po 'e io ho bisogno di qualcuno che mi guardi e mi aiuti con le piccole domande che ho quando realizzo i miei primi progetti.

Quindi, ecco la domanda: dove trovo un ragazzo del genere? Non ho amici che programmano e tutti.

EDIT: 2 anni dopo, sto ancora cercando mentore. Non ho attivamente codificato appena iniziato di nuovo 3 mesi. Lavoro sulla programmazione Objective-C e iOS e sulla programmazione di giochi con Cocos2d. Se vuoi diventare il mio mentore, lasciami un commento o un commento.

46
Dvole

Partecipare a un progetto open source è sicuramente un modo per iniziare. Tuttavia, utilizzo software open source da anni e, francamente, la qualità di quasi tutti questi progetti è generalmente in bagno. Se apprendi le tue abilità di programmazione e progettazione interamente da loro, probabilmente ne prenderai alcune molto povere insieme a quelle buone, senza modo di distinguere tra di loro.

Cosa vuoi imparare a programmare per? La risposta determinerà cosa dovresti cercare e dove. Ecco alcune risposte comuni e la mia opinione professionale su come perseguirle (tenere presente che è solo opinione, anche se IMHO, accurata):

Solo per dire che sai come farlo.

Quindi non hai davvero bisogno di un mentore e C++ è un punto di partenza scarso. Adoro il C++, è la mia prima scelta per la programmazione generale, ma invece gioca con un altro linguaggio. Suggerirei Python; ha una curva di apprendimento molto più delicata rispetto al C++ e, a differenza di alcune lingue (nessun nome menzionato, non ho indossato la mia biancheria intima di amianto oggi) imparerai ancora alcune abilità utili nel caso in cui desideri approfondire più tardi. Molti concetti possono essere tradotti direttamente in C++ se decidi di continuare su quella rotta.

Solo per provarlo e vedere se ti piace.

Un progetto open source potrebbe essere abbastanza buono per quello. Scegli un programma che ti piace, ma con cui hai riscontrato alcuni problemi o irritazioni e offri il tuo aiuto a chiunque lo stia eseguendo. La maggior parte dei progetti open-source sono aperti ai contributi, per questo motivo in primo luogo sono open-source.

Tuttavia, in tal caso, non prova C++ come primo linguaggio di programmazione. Non è difficile padroneggiare le basi, ma C++ è abbastanza basso livello che puoi ottenere alcuni bug seri e molto difficili da trovare nei tuoi programmi. A meno che tu non sappia già che ami la programmazione, o sei testardo come il proverbiale bue, o non hai già trovato un mentore che può indicarti la giusta direzione, che ucciderà qualsiasi interesse in erba che potresti avere nel campo. Vedi la risposta sopra su Python, è più adatto a questo.

Perché hai un'idea per un programma specifico che vuoi scrivere.

(Non penso che l'OP sia in questa categoria, lo sto inserendo per i lettori successivi.)

Hai idea del tempo necessario per padroneggiare la progettazione e l'implementazione del programma? Come suggerimento, si misura in anni. Potresti essere in grado di trovare un design decente dopo solo pochi mesi di studio, se sei intelligente ed estremamente fortunato, ma chiunque abbia una piccola esperienza che deve lavorarci (incluso te, in seguito) lo farà vorrei che tu non fossi mai nato - parlo per esperienza. :-) A meno che l'idea non sia così super segreta che nessun altro può saperlo fino a quando non sarà fatto, non preoccuparti. Assumi un programmatore esperto per farlo per te, o se non puoi permetterne uno ma desideri ancora il programma abbastanza male, offri di collaborare con uno: gestisci il lato aziendale e gli lasci gestire la parte di programmazione. La maggior parte dei buoni sviluppatori preferirebbe programmare, quindi quel tipo di offerta può valerne la pena.

Perché sai già di essere affascinato dalla programmazione e vuoi saperne di più.

Quindi sei esattamente sulla strada giusta. :-) Sia che sia solo un hobby o è qualcosa che potresti trasformare in una carriera in seguito, se hai il tipo di personalità che lo trova infinitamente affascinante, la cosa migliore che puoi fare è immergerti in esso. Il C++ è un linguaggio buono come un altro, in quel caso, e un mentore sicuramente aiuterà (e con più di un semplice sviluppo delle tue abilità; può sentirsi solo senza amici che condividono la tua passione).

31
Head Geek

Per trovare un mentore, non cercare un mentore. Cerca di migliorare te stesso in modi specifici. Se lavori abbastanza duramente per migliorare, entrambi scoprirai di entrare in contatto con persone affini e scoprirai che hai qualcosa in comune con quelle persone.

I gruppi di utenti sono probabilmente il posto dove trovare un mentore, ma nessuno vuole aiutare qualcuno che è lì a pensare "Sto cercando un mentore". Ma se sei lì a pensare: "Mi piacerebbe se qualcuno potesse aiutarmi a imparare a scrivere buoni test unitari JavaScript" o "Mi piacerebbe accoppiare qualcuno e testare un kata in Clojure", prima o poi troverai qualcuno che condivide i tuoi interessi ed è un po 'più avanti.

23
Eric Wilson

I tipi di persone che fanno mentori davvero bravi di solito hanno una dozzina di ragazzi che gridano per il loro tempo in un dato momento. Quindi, "trovare" il giusto mentore è solo l'inizio, devi anche renderti il ​​mentore più attraente/gratificante rispetto al mentore di qualcun altro.

Quindi, il primo passo è quello di entrare a far parte delle comunità in cui è probabile incontrare buoni mentori.

Il secondo passo è diventare un allievo degno di nota. Alcune cose che io personalmente cerco in un allievo sono:

  • Intelligenza vicina, uguale o superiore alla mia.
  • Interesse per le cose che ho da offrire e mi piace insegnare.
  • Compatibilità della personalità (vale a dire che andiamo d'accordo, divertiti a parlarci).
  • Disponibilità a essere preziosa per il progetto/la comunità in cui lo sto guidando, da:

    • Codice di scrittura
    • Scrivere documentazione
    • Fare scut funziona come il triage delle code dei problemi, la pulizia dei commenti, ecc.
    • Aiutare i collaboratori meno esperti
  • Compatibilità con il mio solito flusso di lavoro.
  • Capacità di insegnare me cose. Essere più esperti di qualcuno non preclude l'apprendimento da loro. Il miglior allievo ha un talento per porre le domande giuste, o un nuovo punto di vista, o qualche esperienza al di fuori delle mie aree di conoscenza da cui posso imparare.
14
HedgeMage

Partecipa a un progetto open source. Non devi necessariamente programmare neanche per loro. La maggior parte dei progetti piacerebbe avere qualcuno che aiuti con la documentazione. Puoi guardare il codice e porre domande. Quando ti senti a tuo agio puoi iniziare a scrivere codice per loro.

12
Jim C

Cosa ti aspetti da un mentore? I suggerimenti di un progetto open source o di un gruppo di utenti locali sono progettati per essere più incentrati sulla rete e sulla ricerca di qualcuno che si trova a pochi passi di distanza da ciò che si desidera essere in modo che possano aiutarti a guidarti in un certo modo. Pensalo come cercare di imparare a cucinare da Jamie Oliver o Gordon Ramsay, alla fine potrebbe essere abbastanza divertente e utile.

A seconda delle tue aspettative, potrebbe essere facile o incredibilmente difficile trovare un mentore. Se stai aspettando qualcuno che sappia leggere la tua mente e che ti dia passo dopo passo i segreti per essere fantastico in un anno o meno, potrebbe non essere realistico. Allo stesso tempo, se vuoi trovare qualcuno in grado di fare alcune cose meglio di te, questo potrebbe non essere così difficile da fare. Quindi prima di capire quali sono le tue aspettative.

In secondo luogo, ora che sai cosa vuoi, devi trovarlo. Questo potrebbe essere piuttosto difficile in quanto non è che ci siano molti posti dedicati a mettere in mostra gli sviluppatori che usano le loro abilità come se avessimo l'arte in Canada e negli Stati Uniti, motivo per cui il suggerimento è stato dato immagino. MentorNet sarebbe un esempio di un programma che potrebbe funzionare anche se non l'ho provato, l'ho cercato qualche tempo fa e non pensavo che fosse per me e quello che volevo. Un altro pensiero qui è quanto bene i tuoi amici e la tua famiglia sanno cosa vuoi qui? Potrebbero conoscere qualcuno o un posto che può aiutarti se lo chiedi. Anche se questa non è una risposta completa, ciò che chiedi è piuttosto vago e quindi spero che tu possa aggiungere altro a questo e poi ti darò seguito quando darai alcuni dettagli di ciò che vuoi e come lo vuoi come questo non è Burger King ma potremmo provare a farlo in questo modo.


Gli esperti dei componenti lato server C++ potrebbero essere piuttosto difficili da trovare. Ci sono istituzioni post-secondarie vicine? Quelli possono avere qualcuno che ha quelle abilità che potrebbero trasformarsi in qualcos'altro come possibile idea. Buona fortuna a trovare quel mentore.

6
JB King

I progetti open source sono ottimi per ottenere feedback su codice specifico che hai aggiunto e potenzialmente nuovi modi di fare le cose, ma come hai capito, probabilmente non equivale a una relazione di mentore.

Suggerirei ciò che hai già menzionato e che sono i gruppi di utenti. I gruppi di utenti di solito si riuniscono abbastanza frequentemente in modo da poter ottenere il tempo reale con potenziali tutor. Questo face-time può consentire un flusso di comunicazione più rapido e semplice. Garantirà che tutti siano nello stesso dominio? No, ma devi iniziare da qualche parte. Se trovi qualcuno che ha molta esperienza, potrebbe essere comunque in grado di aiutarti con il tuo dominio, basandosi solo su altre esperienze che hanno avuto.

4
Walter

Dato che sei registrato su Stack Exchange, hai già molti mentori informali a tua disposizione. Puoi facilmente porre domande o far esaminare il tuo codice da molte persone motivate ad aiutarti.

Più a livello locale, se desideri un tutoraggio o un insegnamento faccia a faccia, grandi opzioni includono:

  • Gruppi di utenti - Pro: gratuito o economico, aperto a tutti. Contro: rari, non sistematici, potrebbero non essere disponibili nella tua comunità.
  • Cooperative - Pro: aperte, gratuite/economiche. Contro: meno comune, ad hoc, più probabile per il web rispetto al C++.
  • Diploma universitario/universitario - Pro: sistematico, di alta qualità, rispettato, apre le porte, generalmente fornisce accesso ad almeno alcune facoltà di alta qualità. Contro: Ammissione competitiva, impegno maggiore, costo elevato, tasso di wash-out elevato, quindi è un modo costoso per scoprire se vuoi rendere il software la tua professione, il programma di studio può essere flessibile ma potrebbe richiedere argomenti che non ti piacciono o che ti piaceranno trovare difficile.
  • Classi universitarie comunitarie o corsi di laurea. Pro: economico, buon valore, maggiore attenzione individuale da parte degli istruttori, facile da ammettere. Contro: meno prestigio dell'università, ma un bravo studente è un bravo studente ovunque vadano.
  • Organizzazioni professionali - Pro: può essere una buona rete e una formazione continua. Contro: potrebbe essere necessario una laurea o un lavoro nel campo per qualificarsi per l'adesione. Le riunioni mensili possono essere argomenti ad hoc sulle innovazioni piuttosto che una copertura sistematica degli argomenti che consentono la carriera.
  • Al lavoro di colleghi, senior staff o manager - Pro: frequenti, mirati, apprezzamento/entusiasmo/follow-up costruiranno la tua carriera come nient'altro può fare. Contro: può andare storto se il tuo mentore di lavoro entra in modalità giudizio e hai lasciato tutto il ritrovo, questo tipo di mentore potrebbe non essere disponibile fino a quando non hai un lavoro che può significare dopo aver conseguito una laurea a causa della concorrenza globale.
  • Coworking - Pro: belle risorse, persone fantastiche, generalmente un incrocio tra una comune e una stanza piena di futuri amministratori delegati. Contro: potrebbe non essere disponibile nel luogo in cui vivi, può comportare un impegno in denaro per aiutare a pagare l'affitto nello spazio condiviso, molti nello spazio saranno autonomi, quindi devi rispettare il loro tempo e trovare modi creativi per rendere reciproci i benefici.
3
DeveloperDon

Puoi controllare il tuo gruppo di utenti Linux locale ( qui troverai un elenco), di solito la maggior parte dei partecipanti sono programmatori - o almeno hacker Perl. Inoltre, se dici loro che sei lì per trovare un mentore di programmazione, ti adoreranno.

Vale la pena provare un post su Craigslist, ma non ci scommetterei.

Inoltre, se risiedi in Germania, ci sono un paio di posti che posso suggerire in particolare.

3
cbrandolino

penso che i forum sarebbero il modo migliore per trovare alcune persone con esperienza sulla questione. Credo che dovresti iniziare da lì.

Dai un'occhiata ad alcuni siti c ++ su google o forse al nostro caro amico stackoverflow, dove ci sono molti ninja c ++ pronti a rispondere alle tue domande!

2
guiman

Se lavori in un'azienda, potresti cercare un mentore lì.

Per quanto riguarda un progetto open source, dubito che troverai un mentore per un progetto che crei, ma potresti trovarne uno in un progetto che hanno creato.

Non dimenticare che anche loro hanno bisogno di ottenere qualcosa da questo accordo. Stanno spendendo il loro tempo prezioso per aiutarti. Preparati a fare del lavoro per loro in cambio.

1
Jim C

Imparare a programmare è una causa nobile ambiziosa e (penso che tutti sul sito questo siano d'accordo). Tuttavia, è difficile iniziare da zero e imparare, anche con un mentore. Penso che scoprirai che prendere almeno alcune lezioni introduttive per darti una base sarà il modo migliore per andare.

Un mentore è una grande idea, e non sarei qui più di 15 anni dopo come programmatore senza il ragazzo che ha affrontato le mie domande nel mio primo lavoro "reale", ma in realtà, una sola persona non sarà in grado per darti il ​​tempo e la guida necessari per diventare un programmatore di successo. Lui o lei probabilmente avranno un lavoro a tempo pieno (o carico del corso) stessi. Questo non vuol dire che non dovresti trovare un mentore (o mentori), solo che avrai bisogno anche di qualcos'altro.

Siti come questo, tutorial online, libri e tutto il resto sono pezzi del puzzle. L'istruzione costituisce i pezzi di confine.

Questo non vuole scoraggiarti; al contrario, penso che fissare aspettative realistiche ti darà maggiori possibilità di successo.

1
Wonko the Sane

"Come trovo un prodigio della programmazione? È tutto ciò che voglio. Voglio solo costruire un enorme esercito di robot con cui conquistare il mondo. Sono intelligente e ho scritto l'IA. Ho i soldi, l'influenza, le strutture. Non riesco proprio a preoccuparmi di affrontare quella odiosa follia di .NET o JVM ... Hmm ... Come .. Come !? Dannazione! "

Normalmente non lo spiegherei, ma siamo in pila. Ad alcune persone piace letteralmente. Ne trovi uno (un mentore), essendo utile. Puoi essere utile, risolvendo i problemi che i bambini con l'esperienza (o - forse - il cervello - o il denaro (eh)) non vogliono risolvere.

Risolvi questi problemi Grasshopper.

Oppure no. È l'era dell'informazione. Fai da te amico mio. Guarda le community come Stack per dirti quando sei stupido o saggio riguardo a qualcosa di correlato al codice o qualcosa che non otteniamo così facilmente come le macchinazioni di quell'investitore che è pronto a rovinarti e poi alcuni.

E condividi ciò che sai. Partecipa un po 'al collettivo una volta trovato il tuo ritmo. Questo non è fabbro nel 1700. I tuoi genitori non dovevano conoscere nessuno (anche se certamente tutti apprezzano quando non ti affidi alle conoscenze artigianali e condividi con la gilda).

Decidi solo che sei interessato e vai. Abbastanza terrificante quando affonda. Ci vuole un po '(lo so) ma fidati di me (se non altro su questo punto apparentemente assurdo - mi ci sono voluti più di dieci anni per rendermi conto che sì, ero un pazzo programmatore), tutto ciò importa davvero che tu abbia il livello base di talento e che tu sia effettivamente interessato. Se non lo sei, gentilmente! @ # $ Di sconto e trova qualcosa che ti interessa.

Perché la programmazione/scripting/codifica è una scelta orribile altrimenti. Ma non voglio lasciarlo su un punto negativo e sgradevole. Se sei interessato, non preoccuparti di quanto sei bravo. Fare domande. Richiedi risposte. Sopporta il totale di bombe a gas/spazzole lunghe come me. Ci arriverai se vuoi.

Ti piacciono i puzzle? Ti piacciono i problemi arbitrari casuali da risolvere? Ti piacciono i film di gladiatori? Inequivocabilmente sui primi due punti, sì? Non cercare un mentore. Impara davvero una lingua, impara una o due altre che non sono eccessivamente simili alla tua prima lingua al punto di livello di abilità di base, leggi alcuni libri e hai delle opinioni. Divertiti a sfidarli e a modificarli di tanto in tanto anche solo per vedere se non eri totalmente sbagliato. Potresti essere sorpreso di quanto spesso il tuo istinto non fosse poi così male. Chiedi alle persone di uscire e di schiaffeggiarti in faccia per aver posto la domanda sbagliata e potresti scoprire che conosci meglio di molti che si avvicinano a quell'occasione. Ma soprattutto, è un problema da risolvere. Risolvilo.

0
Erik Reppen