Raggiungere lo stato di programmazione intermedia [chiuso]

32

Sono un ingegnere del software che ha avuto posizioni di programmazione in VBA (anche se non oso considerare l'esperienza "reale", in quanto si trattava di tentativi ed errori!), Perl w / CGI, C # e ASP.NET. Gli ultimi due sono post-laurea, con il mio ingresso nel "mondo reale". Ho 2 anni di università e ho avuto 5 anni di esperienza (totale) in tutte le lingue che ho menzionato. Tuttavia, quando si tratta del mio curriculum, posso solo mettere 2 anni giù per C #, e meno di un anno giù per ASP.NET.

Mi sento come conosco C #, ma devo ancora passare del tempo "Che cosa fa questo metodo?", mentre alcuni degli ingegneri più esperti possono immediatamente dire "Oh, metodo X fa questo, senza aver mai visto prima quel metodo. " Quindi so empiricamente che c'è un abisso lì, ma non sono proprio sicuro di come farlo. Ho iniziato a programmare in Project Euler , e ho raccolto un libro su modelli di design, ma mi sento ancora come se trascorro ogni giorno calpestando l'acqua, invece di andare avanti.

Questo non vuol dire che non mi sento come se avessi fatto progressi, significa semplicemente che, per quanto vengo ogni giorno, vedo ancora la cima della montagna in lontananza.

La mia domanda è questa: come hai superato questo altopiano? Quanto ci hai messo? Quali metodi puoi suggerire per aiutarmi in questo?

Ho letto Codice completo , Il mese di Mythical Man e CLR via C #, 2a edizione - la mia domanda è: cosa faccio adesso?

Modifica : ho appena trovato questo domanda sui progetti per un programmatore di livello intermedio. Penso che aggiunga alla discussione (anche se non soppianta la mia domanda). In quanto tale, lo aggiungo alla domanda come "Per ulteriori informazioni".

    
posta George Stocker 05.12.2008 - 03:23
fonte

10 risposte

41

Congratulazioni!

Dalla tua descrizione, sei uno sviluppatore intermedio.

Questa fase durerà circa 3-8 anni, a seconda della tua volontà di imparare al di sopra e al di là del problema del momento

Per accelerare il processo, leggi, naviga, blog, partecipa alle riunioni dei gruppi di utenti, trova un mentore, fai ricerche indipendenti, progetti di code side e seppelliti nelle nuove tecnologie. Questo può radere un anno o due fuori dal tempo.

Oppure potresti avere una vita fuori dalla programmazione; -)

Seriamente, rimani attuale e introspettivo, ma disabilita ogni tanto #% $ @ ogni cosa

Addendum: quando esci, ricorda di indossare pantaloni.

    
risposta data 05.12.2008 - 03:28
fonte
15

Uno dei modi migliori per salire sulla montagna è scrivere qualcosa per te stesso perché vuoi. I migliori programmatori hanno risposte meravigliose alla domanda "qual è il programma più interessante che hai scritto nel tuo tempo libero?" Se non stai scrivendo alcun codice nel tuo tempo libero, non ti piace abbastanza il tuo mestiere per migliorarlo.

    
risposta data 05.12.2008 - 03:56
fonte
9

Devi attraversare lo stadio larvale.

Anche se ora programma in VB.NET su Windows, sono passato allo stadio larval su Linux x86 con assembly come lingua principale.

Per un po ', devi dedicarti al mestiere fino a quando non lo padroneggi. Quelli che sono chiamati istinti di un maestro programmatore sono comportamenti veramente appresi. È una cultura condivisa. I programmatori devono pensarsi come gli altri e come la macchina.

Sheep become like shepards and shepards like sheep, but neither are very long in the world. With [trees and] Ents it's quicker and closer, and they walk down the ages together. -- Tolkien

Conosci e capisci. Le più grandi capacità non sono quelle legate a una lingua specifica, ma possono essere applicate a quasi tutte le lingue. Conoscere i concetti, cercarli in entrambi i problemi e le lingue, essere pronti a inventare nuove cose quando necessario.

Questo è il percorso verso la grandezza.

    
risposta data 05.12.2008 - 03:32
fonte
9

Ho programmato da quando avevo 8 anni ... avrò 33 anni alla vigilia di Natale. Vedo ancora la montagna in lontananza. Non importa quanto tu arrivi lontano, c'è sempre altro da imparare.

Metti alla prova i paradigmi e scopri come la lingua che stai codificando implementa questi paradigmi. La programmazione è un'esperienza di vita che ha sempre molto da imparare. Questa è la gioia, non importa quanto sei bravo, c'è sempre di più.

Un modo in cui trovo di imparare cose nuove che normalmente non imparerei è passare il tempo qui e su altri forum di programmazione come Byte ed esperti di Exchange dove le persone fanno domande. Se puoi rispondere alla domanda, vai avanti, se non puoi, quindi cerca di capire come completare il compito da solo, non solo l'OP apprezza il tuo sforzo e la tua assistenza, ma imparerai anche qualcosa di nuovo. / p>

Trovo che io impari di più aiutando gli altri a trovare risposte a cose che non conosco ancora di quanto avrei mai potuto semplicemente programmando ogni giorno le mie cose che faccio ogni giorno.

    
risposta data 05.12.2008 - 06:46
fonte
9

Lo status di programmazione intermedia implica che ti stai spostando dalla mentalità del tipo "digiuna più veloce" del codice e nel regno di voler costruire sistemi reali come carriera. Questo è un importante cambiamento professionale e, francamente, non si tratta veramente di abilità tecniche. Lavorare a livello intermedio (ovvero "sviluppatore") richiede un insieme significativamente avanzato di abilità personali.

Ecco alcuni sintomi a cui potresti pensare:

  1. Ti capita di modificare le guerre online? Se è così, potresti mostrare che ti piace discutere dei dettagli all'interno della tua zona di comfort più di quanto ti piacerebbe provare a capire il punto di vista dell'altra persona.
  2. Pensi alle lingue come a cose veramente diverse? C # e Java portano entrambe le proprie piattaforme e risorse al tavolo, ma entrambi sono efficaci modelli di computabilità. Puoi imparare un nuovo linguaggio e una piattaforma abbastanza veloce da essere pagato per lavorare?
  3. Pensi ancora alle attività software come a digitare? Se ti viene assegnato un compito al lavoro, perché? Per che cosa verrà usato questo codice? Di quale sistema farà parte? Questa informazione può cambiare radicalmente la tua soluzione proposta.
  4. Hai lasciato know-it-all fase della tua vita alle spalle? Stai ascoltando il resto della squadra o stai solo cercando di pensare alla prossima cosa da dire?
  5. Ti sei reso conto che "tirare fuori tutta la notte" per produrre una soluzione all'ultimo minuto buggata non è più impressionante? Dopo le prime otto ore, puoi facilmente immaginare che il resto del tempo sia stato appena usato per digitare i bug.

Il miglior riassunto che riesco a fare è che il programmatore intermedio (o "sviluppatore") abbia imparato ad essere più produttivo in otto ore lavorative in modo che possano andare a casa e avere una vita fuori dal lavoro.

Punti bonus assegnati se riesci a trovare un coniuge e a riprodurlo ....

    
risposta data 29.05.2009 - 03:38
fonte
8

Quello che stai facendo ora è fantastico, ma se vuoi accelerare incredibilmente i tuoi progressi puoi fare due cose aggiuntive:

1) "Insegna" - Un modo semplice per farlo è quello di avviare un blog e tentare di contribuire con qualcosa di utile su base regolare (forse settimanale). Mira a cose che hai imparato di recente o che non conosci ancora . Ciò significa che ti costringerai a ricercare, comprendere e rieseguire.

BTW, puoi facilmente iscriverti a un account SingingEels a cui ottieni un blog gratuito su uno sviluppo esistente comunità.

2) Scrivi lotti di mini-programmi - Con questo intendo circa 1 a settimana. Puoi usare questo in congiunzione con quanto sopra ... o solo per divertimento. Quello che ho fatto da giovane sviluppatore è stato scegliere a caso (non sto scherzando) uno spazio dei nomi nel framework .NET. In questo, scegli una classe che non hai mai visto / usato prima e crea un piccolo programma che la usa.

    
risposta data 05.12.2008 - 03:46
fonte
8

Prova a

Leggi altri libri Raccogli quei grandi titoli da Amazon e leggerli. Ad esempio, l'autore di Code Complete ha scritto un ottimo libro sull'ingegneria del software - Rapid Software Development, acquistarne uno e leggerlo.

Impara un linguaggio di programmazione diverso Vale la pena studiare un linguaggio di scripting come python / ruby. O forse un linguaggio di programmazione funzionale :) Questo potrebbe farti cambiare idea. Potresti sapere che alcuni dei modelli GOF non sono necessari per questo tipo di lingue.

Unisciti a una community Le persone possono scambiare il loro pensiero ascoltando gli altri e dando presentazioni.

    
risposta data 05.12.2008 - 04:15
fonte
4

Trova programmatori intelligenti e impara da loro. Imitali. Nota le cose che fanno in modo diverso da te.

La tua azienda esegue revisioni del codice? Questo è uno dei modi migliori per imparare. Potresti rimanere sbalordito dai suggerimenti che i programmatori più avanzati fanno e dalle cose che fanno durante la codifica.

    
risposta data 05.12.2008 - 03:44
fonte
3

che ne dici di essere coinvolti in altri progetti open source in corso, in modo che almeno il tuo lavoro varrà per te e qualcuno potrà imparare e interagire con altri sviluppatori più avanzati facendo del lavoro nel mondo reale.

così almeno non sei limitato a ciò che vuoi imparare o al tipo di progetto che vuoi fare. ed è già uno strumento gratuito che stai utilizzando, puoi essere orgoglioso di aiutarti a migliorarlo.

e si presenta bene anche con il tuo curriculum. :)

quindi se questo ti lascia ancora con un po 'di tempo libero, perché non tenere un blog che documenta il tuo apprendimento, esperienze e cosa no. chissà, potresti essere il prossimo scherzo sul software o sul codice horror: p

    
risposta data 05.12.2008 - 04:05
fonte
-1

Per eccellere come sviluppatore C #, leggi i seguenti due. Tieni presente che lo focus di questi libri è più sulla lingua (C #) non sul framework (.NET) ..

  1. Essential C # : il link è per l'ultima edizione. In realtà ho letto quello precedente (C # 4.0), ma sto assumendo il più recente, meglio è. Questo libro ha anche alcune cose basilari, ma sii paziente a leggere la copertina del libro da coprire.
  2. C # in profondità : il link è di nuovo disponibile per l'ultima edizione che verrà rilasciata tra 10-15 giorni. Ho solo sfogliato il libro ma i miei colleghi che l'hanno letto hanno un grande rispetto per questo.

Hai già letto CLR tramite C # , altrimenti si tratta probabilmente di un terzo suggerimento da parte di chiunque per gli sviluppatori C #.

Questi dovrebbero anche renderti uno sviluppatore migliore: Linee guida per la progettazione di framework e Lavorare efficacemente con il codice legacy .

    
risposta data 10.07.2013 - 14:47
fonte

Leggi altre domande sui tag