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