Posso garantirvi che chiunque che lavora in isolamento, specialmente quando scrive codice, ma con qualsiasi tipo di lavoro, crede, al 100%, che stia facendo molto meglio di loro in realtà sono.
Quindi, il primo vantaggio che troverai (e che ho trovato) quando si inizia a lavorare con una squadra è in realtà piuttosto umiliante. Lavorare con gli altri, soprattutto quando sono di talento, ma anche nella circostanza insolita in cui sei migliore di quello che sono in ogni possibile modo immaginabile, in un primo momento, evidenzierà i tuoi errori e le tue debolezze. Se sei capace e in grado di prendere bene le critiche (anche se provengono solo dalle tue stesse osservazioni sul tuo lavoro, come si vede lavorando con gli altri), l'esperienza può essere buona.
Questo primo vantaggio dura: man mano che lavori sempre di più con i team e con sempre più persone, riceverai sempre più feedback sui tuoi errori, che potrai utilizzare per correggere. Riceverai anche feedback positivi sui successi, ma, soprattutto nel mondo della programmazione, prevale il feedback negativo (nessuno apre un "anti-bug" nel sistema di tracciamento dei bug per dire che hanno guardato il tuo modulo e visto un algoritmo particolarmente piacevole implementazione).
A lungo termine, ci sono altre lezioni che imparerai, alcune delle quali sono molto difficili da imparare isolatamente:
- Scrivere codice leggibile è difficile, soprattutto quando scrivi per altri programmatori, a diversi livelli di abilità, per capire
- Scrivere codice che altri devono risolvere con errori è difficile. Aiutare gli altri a correggere i bug richiede abilità che potresti non avere
- La gestione dei progetti è più importante in una squadra e attività che potresti non conoscere o trovare utili, da soli, diventano cruciali in una squadra. Come mantenere correttamente un ramo di rilascio pulito in CVS. Oppure prova il codice prima di effettuare il check-in
- È più facile imparare nuove tecnologie quando c'è qualcuno in giro per spiegarle e rispondere alle tue domande su di loro mentre impari
- Le interruzioni sono più frequenti in una squadra, che può essere sia divertente che frustrante. Imparerai come cambiare i contesti meglio quando lavori con più compagni di squadra
- Lavorare in una squadra spesso richiede una struttura che non esiste quando si lavora da soli - da attività come la revisione del codice, a cose semplici ma non necessariamente ovvie come essere sempre al lavoro in tempo.
- È più facile specializzarsi molto profondamente quando si è in una squadra, con i compagni di squadra fidati. Scoprirai che imparare qualcosa, poi insegnarlo agli altri e poi rispondere a domande dettagliate su di esso (e risolvere i problemi correlati), specialmente quando le persone con cui hai a che fare sono altri programmatori, ti spingono a livelli di abilità e conoscenza che eri non a conoscenza di