È stata offerta la revisione del codice professionale / il mentoring? [chiuso]

2

Sono uno sviluppatore più recente che ha lavorato su alcuni progetti personali e su progetti non-profit / di beneficenza. Tuttavia, mi sembra di essere lo sviluppatore più "senior" nella mia cerchia, il che significa che la maggior parte dei ragazzi viene da me per chiedere aiuto e quando ho bisogno di aiuto non possono aiutarmi.

Dato che non ho un lavoro di programmazione a tempo pieno, sono un po 'perso in termini di come ottenere una revisione del codice di livello professionale. In altre parole, prima di entrare a pieno titolo nell'applicare lavori a tempo pieno, voglio le opinioni di poche persone affidabili / rispettabili su come il mio codice attuale appare, dove potrei migliorare, come mi classificheranno come programmatore, ecc ... Perché al momento non ne ho la più pallida idea e, anche se l'avessi fatto, non è solo la mia opinione che conta comunque. L'altro problema è che non ho idea se i miei progetti di portfolio sono "abbastanza buoni" o sono solo piccoli progetti di scherzo in termini di ciò che un datore di lavoro sta cercando. Continuo a pensare di dover lavorare su progetti più grandi, ma potrebbe andare avanti all'infinito. Il fatto è che preferirei farlo con qualcuno di persona in loco e non un estraneo casuale su internet in quanto non c'è modo di giudicare se il consiglio di quella persona è credibile o in linea con dove sto cercando di andare se ciò rende senso.

Questo tipo di servizio è offerto dai consulenti di programmazione? Non posso essere l'unico ad affrontare questo problema. Come programmatore autodidatta, questo è molto difficile perché la gente dice spesso mettere portfolio e progetti, ma non ho modo di giudicare se il mio codice è "buono" o non è altro che la mia percezione di ciò che leggo da libri come Clean Code di Uncle Bob e Code Complete di Steve McConnell. Ovviamente parte di questo è soggettivo, ma ciò non significa che non ci sia una sorta di standard professionale che non può essere raggiunto. Grazie per il tuo consiglio.

PS: Anch'io sento molto parlare di "mentoring", ma non ho visto come si farebbe per ottenere un mentore. Mi piacerebbe un mentore, è un servizio a pagamento o è questo un tipo di relazione che qualcuno ha in genere con un collaboratore più anziano nel contesto di un ufficio? Sto parlando di una persona reale, non di un canale YouTube.

    
posta the_endian 06.01.2017 - 07:40
fonte

3 risposte

3

Non ho mai sentito parlare di mentoring retribuito, e suppongo che ci siano due ragioni per questo:

  • Essere mentore gratis non è difficile, quindi perché pagare per questo?
  • I mentori pagati sarebbero più inclini a considerarti come cliente pagante , non come un pari. Ciò potrebbe portare a situazioni in cui il tutoraggio sarebbe difettoso, come quando è richiesta una critica negativa (non vuoi criticare il ragazzo che paga le bollette, vero?)

Per quanto riguarda la difficoltà nel giudicare quanto sia prezioso un mentore, hai ragione, è lo stesso problema di giudicarti al tuo stesso livello. Esistono tuttavia diverse tecniche che possono essere utili.

1. Più mentori sono meglio di uno

Se sei mentore, ascolta sempre diversi mentori. Indipendentemente dall'esperienza di un determinato mentore, vi è uno stretto confine tra critica neutrale, obiettiva e opinioni del mentore. Ad esempio, quando faccio da mentore ad altri sviluppatori, non è insolito per me condividere le mie opinioni forti su argomenti diversi, mentre so che quelle opinioni non sono condivise da tutta la comunità.

Ad esempio, mentre sono assolutamente convinto che i progetti di programmazione dovrebbero seguire le regole di stile e quelle dovrebbero essere necessariamente applicate durante il pre-commit, alcuni sviluppatori talentuosi e qualificati potrebbero essere contrari a questa pratica. Questo è contrario ai concetti che sono accettati globalmente come veri nel nostro settore, come il fatto che un gruppo di uno o più sviluppatori dovrebbe utilizzare un controllo di versione.

Per non essere portati a pensare che le opinioni del tuo mentore siano la verità assoluta, è essenziale correlare le informazioni con quelle fornite da altri mentori. Ovviamente, quando le informazioni divergono, spetta a te scoprire chi ha ragione o, se tutti i mentori danno le loro opinioni, quale opinione ti piacerebbe seguire.

2. Profili dei mentori

Nessuno è in grado di sapere tutto nel campo dello sviluppo software. Qualsiasi mentore condividerà con te le sue conoscenze e competenze in base alle lingue che ha appreso, ai libri che ha letto, alle comunità di cui è membro.

Qualcuno che lavora quotidianamente con un linguaggio funzionale ti spingerà ad adottare uno stile funzionale quando lavori con le collezioni, indipendentemente dalla lingua che usi. Qualcuno che lavora su sistemi e / o software integrati che richiede una vasta ottimizzazione ti spingerà a profilare, confrontare e ottimizzare.

A seconda dei tuoi obiettivi, alcuni mentori potrebbero adattarti meglio di altri. Se sei uno sviluppatore web, potrebbe essere saggio avere mentori che sono o sono stati recentemente attivi nello sviluppo web. Se lavori su software embedded, gli sviluppatori web potrebbero non essere i migliori mentori per te.

3. Feedback affidabile sui mentori

Scegliere un buon mentore non è diverso da, per un'azienda, scegliere un buon sviluppatore. Le tecniche dovrebbero quindi essere molto simili a quelle utilizzate dalle aziende per assumere persone.

  • Il CV non importa molto. I resumes hanno mostrato ancora e ancora la loro irrilevanza. Sono ancora utilizzate da molte aziende come una tecnica di filtraggio popolare, principalmente per la mancanza di alternative migliori, ma è chiaro che un curriculum impressionante non significa che il candidato sia in buona forma (e un CV poco interessante occasionalmente nasconde un interessante persona).

  • Concentrati sugli elementi pertinenti: progetti open source; contributi alla comunità; articoli del blog; video; tutorial scritti dalla persona; tecnologie, protocolli, strumenti di sviluppo, linguaggi di programmazione su cui la persona ha lavorato. Tutti questi elementi potrebbero fornirti preziose informazioni su un potenziale mentore. Alcuni elementi ti mostrerebbero solo il coinvolgimento della persona, mentre altri hanno un ulteriore vantaggio della revisione tra pari. StackExchange, ad esempio, è particolarmente interessante in termini di peer review; pur non avendo i benefici simili al sistema utilizzato nel mondo scientifico, il sistema di reputazione di StackExchange difficilmente può essere ingannato affinché una persona non qualificata possa guadagnare molti punti.

  • Le capacità di comunicazione sono fondamentali. Un esperto che non è in grado di comunicare efficacemente le sue capacità è inutile come mentore e dannoso come membro di una squadra.

risposta data 07.01.2017 - 13:43
fonte
7

Sebbene offrire consulenza di carriera sia off-topic per questo stackexchange, in cui uno sviluppatore freelance può rivedere il proprio codice, ritengo che sia una buona domanda da porre. Inoltre, è positivo che tu stia chiedendo questo genere di cose, la curiosità e il desiderio di migliorare sono alcune delle migliori qualità che ho trovato negli sviluppatori.

  • C'è codereview.stackexchange.com
  • La community "Open Source" è un ottimo modo per rivedere il codice e scoprire quanto bene lavori in un team.
    • Prova a dare un'occhiata a GitHub per un progetto su cui desideri lavorare e partecipare.
    • Inizia il tuo progetto e cerca di far investire gli altri
  • Gli amici sono spesso buoni per recensioni veloci

Non sottovalutare le persone anche se sono peggio di te. La loro opinione vale comunque la pena.

  • Chiedi loro di rivedere il tuo codice. Piuttosto che chiedere se hai fatto bene, chiedi loro se lo capiscono .
  • La programmazione è un'area abbastanza ampia da poter sapere qualcosa che tu non
  • Potrebbero dare la priorità alle cose in modo diverso e notare qualcosa che ti sei perso.

Professionalmente il tuo codice dovrebbe essere leggibile da qualcuno che non ha alcuna conoscenza preliminare del progetto, qualcuno con competenze di programmazione rudimentali o qualcuno simile. Potresti persino aiutarli a imparare qualcosa.

    
risposta data 06.01.2017 - 09:24
fonte
0

Oltre a ciò che altri hanno detto, consiglio di vedere se ci sono gruppi di programmazione nella tua zona. Faccio molte cose su iOS e macOS e ci sono incontri nazionali di NSCoder Night e CocoaHeads. Se non ce ne sono già, potresti avviarli da solo. Una volta al mese ci si incontra in un negozio di caffè o in uno spazio per i produttori e si sceglie una persona per insegnare al resto del gruppo un argomento. Potrebbe essere database, grafica, networking, ecc. Ho imparato molto da questi tipi di incontri.

    
risposta data 07.01.2017 - 05:02
fonte

Leggi altre domande sui tag