Argomenti di apprendimento avanzati per sviluppatori junior [chiuso]

6

Sono uno sviluppatore junior presso un'azienda che mi ha chiesto di stabilire obiettivi accademici per il prossimo futuro. Non mi rendevo conto di quanto fosse difficile una domanda fino a quando non sono riuscito a trovare una sola risposta, in cima alla mia testa:

Ulteriori informazioni Design Patterns

Quali materie hai imparato, dopo aver finito la scuola, che ti hanno aiutato in modo significativo?

    
posta CrazyPenguin 25.05.2011 - 16:52
fonte

9 risposte

7

Gli elementi che mi hanno aiutato in modo significativo (insieme ai riferimenti ai testi) sono:

  • Domain Driven Design ... ha fatto un'enorme differenza, poiché per la maggior parte dei progetti software l'attenzione principale dovrebbe essere dominio e logica di dominio e comprensione corretta del dominio. Come tradurre il dominio in codice è il segreto per evitare la grande palla di fango .
  • Sviluppo guidato dai test e Test unitario ... Non solo scrivere test, ma scrivere correttamente test ha fatto un'enorme differenza. Non riesco più a immaginare di scrivere codice senza una serie adeguata di test unitari.
  • Refactoring ... strumenti fondamentali su come scrivere e modificare il codice.
risposta data 25.05.2011 - 17:13
fonte
5

Se non li conosci già:

  • Apprendi i principi di ingegneria del software (ad esempio i principi SOLID)
  • Scopri come test unitario
risposta data 25.05.2011 - 17:00
fonte
4

Sono d'accordo con la maggior parte di tutto ciò che ho elencato sopra, ma volevo includere qualcosa che mi piacerebbe che più sviluppatori sapessero del loro livello. Conosci i tuoi strumenti.

Guardare alcuni dei miei sviluppatori è doloroso in quanto prendono il modo più difficile per fare le cose. Impara i dettagli dei tuoi vari IDE o utilità di riga di comando. Durante l'apprendimento di tutte le cose già menzionate, sarai uno sviluppatore migliore, l'apprendimento degli strumenti ti renderà più produttivo.

    
risposta data 25.05.2011 - 17:57
fonte
3

I più grandi per me sono stati una revisione approfondita dei seguenti argomenti:

  1. Strutture dati
  2. Algoritmi
  3. Analisi e compilazione (non indovinerai mai la frequenza con cui possono emergere)
  4. Informatica distribuita
risposta data 25.05.2011 - 16:57
fonte
3

Per me, è stato più pratico che accademico: XML / XSL, che non è mai stato trattato in modo approfondito quanto necessario a scuola.

È anche utile sapere se non si conoscono già database e SQL. Se hai esperienza in quest'area, vai più in profondità (puoi sempre andare più in profondità) in argomenti come il data warehousing e l'analisi. Anche la modellazione generale (non specifica di un particolare sistema) di dati è una buona abilità. Certo, questi sono difficili da lavorare se non ci sono basi per queste abilità sul posto di lavoro (ma di solito è possibile trovare qualcosa, anche se un po 'forzato).

    
risposta data 25.05.2011 - 17:08
fonte
0

Le capacità di comunicazione sono un'area che ha bisogno di lavoro quasi sempre.

Devi capire come progettare in modo efficace i database normalizzati e come scrivere query efficienti. La daabase non si rifatta facilmente come un altro codice e devi essere abituato a farlo fin dall'inizio. A nessuno dovrebbe essere permesso di toccare un database senza una comprensione approfondita dei join e di come fare le cose in serie piuttosto che fila per fila. Nessuno dovrebbe scrivere codice per un database di grandi dimensioni e sottoposto a molte sollecitazioni sulle prestazioni senza sapere come scrivere query ad alte prestazioni e quali cose evitare di fare (cursori, sottoquery correlate, ecc.) Potrei facilmente creare centinaia di argomenti di formazione sui database da soli.

Come fare in modo efficace una revisione del codice è un'altra abilità che molte persone non hanno.

Test: test delle unità, prima test di scrittura, ecc. Come tradurre i requisiti in test.

Ho sempre trovato utile sviluppare argomenti di formazione sugli errori che io, in qualità di senior, vedo accadere frequentemente quando eseguo la revisione del codice, specialmente quando più di una persona li fa. Quindi chiedi ai tuoi senior che errori fanno spesso vedere i giovani. Questi sono argomenti di formazione critica.

    
risposta data 25.05.2011 - 17:33
fonte
0

Questa è un'opportunità eccezionale. Il tuo datore di lavoro vuole che tu cresca in modo che possano promuoverti.

Ottieni un catalogo dei corsi della migliore scuola della tua zona. Sicuramente troverai qualcosa che è sia interessante che legato al tuo lavoro. Se non lo fai, modifica le professioni.

    
risposta data 26.05.2011 - 05:26
fonte
0

Tecnologie aziendali / piattaforme interne ecc. Sono sorpreso che nessuno lo abbia menzionato. È molto difficile prenderli / controllarli entro una scadenza, quindi pianificare aiuta.

E sì - se non hai usato un sistema di controllo del codice sorgente, git.

    
risposta data 26.05.2011 - 06:19
fonte
0

Scopri come essere più intraprendente in qualsiasi luogo, in qualsiasi momento.

Ad esempio, un ingegnere del software dovrebbe sapere come scegliere il modello di progettazione migliore per l'attività in corso.

Se usi Unix o Linux, impara e padroneggi vi, sed, awk, regex, perl / python, scripting di shell, ecc., abbastanza per essere in grado di automatizzare il più possibile le operazioni ripetitive. Se usi un IDE, impara tutto quello che c'è intorno. Questo sarà noioso e scoraggiante per cominciare. Ma vedrai quanto sono potenti questi strumenti quando quelli che li hanno padroneggiati li usano per delegare la maggior parte dei loro compiti banali al computer.

Toccare la digitazione / battitura più vicino alla velocità del pensiero può essere molto utile. Se possibile, impara Colemak o Dvorak dopo aver fatto delle ricerche su entrambi, in base alle tue esigenze. Entrambi sono noti per causare meno sforzo sulle mani e causare enormi guadagni di velocità.

Gli schemi di progettazione, come suggerisci, sono un argomento eccellente da apprendere. Mentre gli schemi di progettazione sono strongmente utilizzati nella programmazione orientata agli oggetti, i principi esposti nel codice completo sono ritenuti utili per i loro lettori che lavorano anche in altri paradigmi di programmazione.

Inoltre, L'architettura delle applicazioni open source è un libro eccellente e liberamente disponibile sul web. Questo libro si propone di mostrare le architetture del famoso software open source e di criticare le architetture. Molto simile a quello che uno studente di architettura frequenterebbe all'università, dice il libro.

    
risposta data 26.05.2011 - 06:51
fonte

Leggi altre domande sui tag