Come trovare un mentore di programmazione? [chiuso]


46

Ho deciso di imparare la programmazione. Sto leggendo SO da alcuni giorni e penso che inizierò con C ++, mentre leggo alcuni articoli. Sono un po 'a conoscenza di loop, array, logica di programma e oggetti e ho bisogno di qualcuno che mi guardi e mi aiuti con le piccole domande che ricevo 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.


1
acquista anche un buon libro per "principianti" sulla lingua che hai scelto
Demian Kasier il

2
Basta uscire con questi utenti . Offri loro una birra o due. Leggi i loro post. Poni loro domande.
WernerCD,

1
Ecco un elenco di nomi (e mappe) che hanno firmato il Software Craftsman Manifesto: manifesto.softwarecraftsmanship.org
spong

1
La mia risposta è stata un po 'sciocca, ma raccomando di imparare JavaScript o Python mentre impari una lingua più tipizzata. Ci sono vantaggi per entrambi i paradigmi, a seconda di ciò che stai facendo, ma nelle lingue "più lente" puoi provare cose direttamente in una console e, nel caso di JS, rovinare il layout della pagina web e il comportamento dell'interfaccia utente immediatamente degli strumenti di sviluppo di Chrome. Inoltre, funzioni che puoi passare in params; persone che fanno la cacca, non lo sanno nemmeno e non lo faranno mai (grazie, jeebus, perché ho lavorato con quei ragazzi); sono oscenamente potenti.
Erik Reppen,

1
Due anni dopo, tutto ciò che serve è un po 'di disclipine. Sei pronto per questo?
ott--

Risposte:


31

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 impari 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 ? La risposta determinerà cosa dovresti cercare e dove. Ecco alcune risposte comuni e la mia opinione professionale su come perseguirle (tieni presente che è solo un'opinione, anche se IMHO, accurata):

Solo per dire che sai come farlo.

Quindi non hai davvero bisogno di un mentore e C ++ è un punto debole per iniziare. 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 si decide 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 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 provare 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).


4
La domanda era come trovare un mentore, non se avrebbe dovuto / non cercarlo.
marktani,

4
La risposta originariamente includeva un'offerta per tutorare chiunque fosse veramente interessato al C ++. Dopo aver attirato otto persone che affermavano di essere veramente interessate, ma che non potevano essere disturbate a tenere una conversazione, ho rimosso quell'offerta.
Head Geek,

23

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 farebbe piacere 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.


14

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

12

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.


1
Ok, potrei sembrare stupido, ma come ti unisci ai progetti open source? Qual è il miglior sito web da visitare?
Mr. Ant,

1
gnu.org/help o alcuni repository di codice open source (google code, github ...). Cerca un progetto interessante privo di persone per fornire documentazione e inviare un'e-mail.
cbrandolino,

2
Sono fermamente convinto che non ci siano domande stupide. Mentre ci sono molti siti web di progetti open source, sourceForge è ancora uno dei più popolari.
Jim C

1
@Ant: il miglior progetto open source su cui lavorare è un programma che comunemente usi o prevedi di usare.
Larry Coleman,

7
-1: Partecipare a un progetto OS è una buona risposta, ma sicuramente non in questa fase dell'apprendimento (es. Giorno 1). Questo è tuffarsi fino in fondo prima di bagnarsi. Un apprendimento strutturato tramite libri o una lezione è un'idea molto migliore.
Steven Evers,

6

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 che può 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 le arti in Canada e negli Stati Uniti, motivo per cui il suggerimento è stato dato immagino. MentorNetsarebbe un esempio di un programma che potrebbe funzionare anche se non l'ho provato, lo ho fatto 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. Sebbene questa non sia una risposta esaustiva, ciò che chiedi è piuttosto vago e quindi spero che tu possa aggiungere altro a questo e poi ti darò seguito una volta che avrai qualche dettaglio in più su 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.


+1 dalla mia parte. Sembra che lavorare con qualcuno sia la strada da percorrere.
Fanatic23,

4

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.


3

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.


che dire in CA, Bay Area?
greatwolf l'

@Victor, non lo so davvero ma sembra che ce ne siano alcuni: google.de/…
cbrandolino,

3

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.

2

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!


1

Imparare a programmare è una causa nobile e ambiziosa (penso che tutti in questo sito saranno 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

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.


0

"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 quei problemi cavalletta.

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 rovinare te 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 capire che sì, ero un programmatore eccentrico), 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.


Oh, e condividi la soluzione, ovviamente, così possiamo tutti fare la cacca i pezzi che non ci sono piaciuti.
Erik Reppen,

-2

Per un mentore, vai su freenode (irc). Lo giuro, puoi ottenere la maggior parte della laurea in CS da quel luogo, utile a qualsiasi livello di abilità. È lì che ho imparato molto. Non importa se la persona è su quel canale una volta o 24 ore su 24, 7 giorni su 7, è in tempo reale ed è quello che conta.

E, come molti altri hanno detto, non fare C ++. Invece, inizia con un linguaggio di raccolta dei rifiuti tipicamente statico e non passare alla gestione manuale della memoria fino a quando non conosci abbastanza per battere effettivamente il garbage collector. Puoi scrivere qualche Haskell o OCaml dannatamente veloce se ci provi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.