Come migliorare il codice dopo aver conosciuto molte lingue? [chiuso]

3

Negli ultimi anni ho imparato circa 14 linguaggi di programmazione   (assemblatore phyton delphi qbasic c ++ c # ruby perl - etc etc etc). Comunque questo era tutto per mio interesse, non sono andato a scuola per questo.

Ora, senza una vera educazione, sono in una squadra con altri programmatori. Siamo nella robotica con il nostro lavoro. In contrasto con me, conoscono 2 lingue e molti framework di cui non avevo mai sentito parlare prima.

Non mi sento davvero dietro di loro, ma possono sorprendermi e altre volte posso sorprenderli con delle soluzioni. La più grande differenza è che hanno lavorato per anni nel settore IT, mentre per me la parte di programmazione, è nuova e mi piace. Ma dopo le molte lingue lo trovo un po 'difficile da migliorare. A volte vedo codice (o strumenti) che sono nuovi per me.

Non ho mai usato strumenti come anksvn, né ho fatto il versioning o non avevo mai visto un driver USB fatto in codice, mi sono abituato a loro, ho imparato da loro sui progetti e sui miei colleghi. Ho iniziato a fare soldi con il codice (senza un grado reale) negli ultimi 2 anni.

Dato che non ho trovato nessun canale YouTube o un buon libro, questo potrebbe migliorare le mie capacità, come posso migliorare ulteriormente?

I miei interessi in questi giorni sono C ++ e C #. Il punto di perdere interessi se i libri iniziano con le basi di "se poi mentre per gli oggetti tipi" dopo 14 lingue lo ottieni.

    
posta user613326 22.08.2013 - 13:44
fonte

2 risposte

2

Per approfondire la risposta di @ MainMa: Sembra che tu sia al punto che dovresti coltivare una prospettiva molto più ampia sullo sviluppo del software.

  • Scopri uno "stack" di sviluppo completo.
    • Ti darà un punto di riferimento mentre ti imbatti in altri strumenti, strutture, ecc.
    • non familiari
    • IDE di sviluppo
    • Test unitario
      • vale a dire. un framework di test come NUnit (C #), JUnit (Java), ecc.
    • controllo della versione del software
      • impara uno strumento modello distribuito - Git, Mercurial
    • Integrazione continua
      • vale a dire. il codice di check-in attiva automaticamente TUTTI i test.
      • L'applicazione viene creata ogni volta, come parte del precedente
      • uno strumento come CruiseControl
      • scripting per renderlo "continuous" - Ant
  • Comprendi il paradigma di programmazione funzionale
    • I formalismi di funzionale stanno diventando molto importanti oggi.
    • C # evolution supporta chiaramente la programmazione funzionale
    • È diverso dal pensiero OO convenzionale ma non si escludono a vicenda
    • IMHO, può aiutare il codice OO:
      • riduzione degli effetti collaterali - bug
      • Aggiunge flessibilità al design del software
  • Sviluppa almeno una "comprensione della conversazione" di
    • Agile, Test Driven Development, Sviluppo guidato dal comportamento, Programmazione funzionale, Software come servizio, Unit Testing, integrazione continua, modelli di design specifici, ...
  • Studio approfondito su architettura, design, modelli di design
    • Impara a riconoscere questi modelli nel codice. Pratica, pratica ...
    • Le esigenze di progettazione guidano l'utilizzo del modello. Non forzare il tuo codice / design per adattarsi al pattern du jour
  • Design orientato agli oggetti
    • Pensa a OO ovunque nel tuo codice. La maggior parte del codice che ho visto inizia OO e poi si sfalda rapidamente nei dettagli. IMHO troppo molti dev'ers davvero non si lamentano OO. Eccola in questo e spicca tra la folla.
  • Teoria per pratiche
    • Nessun proiettile magico per colmare le lacune, ma sottolineo libri reali su YouTube. Hai bisogno di contenuti completi, coerenti e coerenti in profondità.
    • Dovrai leggere molto per raccogliere le gemme.
  • 2 Book ogni sviluppatore di software dovrebbe avere
  • Alcuni libri che mi hanno particolarmente aiutato
risposta data 22.08.2013 - 17:01
fonte
8

Conoscere i linguaggi di programmazione è una cosa. Sapere come fare software di successo è un altro.

Ciò che i tuoi colleghi potrebbero aver imparato più di te:

  • Come lavorare in una squadra. Questa è un'abilità essenziale per la maggior parte degli sviluppatori.

  • Come comunicare. Questa è una competenza essenziale per qualsiasi sviluppatore.

  • Flussi di lavoro e metodi di gestione del progetto come Scrum. Proprio come non inizi a costruire una casa mettendo mattoni fianco a fianco, non inizi a costruire un prodotto software scrivendo codice.

  • Metodologie, come TDD.

  • Strumenti, come il controllo della versione. Ci si aspetta che ogni sviluppatore ne faccia uso uno e si rifiuti di lavorarci senza.

  • ecc.

Non esiste un singolo libro o canale YouTube che ti insegnerà tutto questo. Per passare da "I can code" a "Abbiamo raggiunto questo prodotto software per la scadenza con tutti i requisiti finiti e praticamente non sono rimasti insetti ", c'è solo un modo: pratica, pratica, pratica.

    
risposta data 22.08.2013 - 13:59
fonte

Leggi altre domande sui tag