Dove andare da qui, come migliorare / imparare di più [duplicare]

5

Ho finito l'università circa 4 anni fa con una doppia laurea in Software Eng / Comp Sci. Ho avuto il mio primo lavoro in una startup nel mio ultimo anno, sono stato con loro per 2 anni e poi ho iniziato la mia attività.

Finora tutto sta andando alla grande, molti clienti e lavoro costante ecc., ma uscendo da uni e in start up non ho mai avuto alcuna forma o ingegnere informatico senior che guida il mio lavoro o suggerisce miglioramenti ecc ...

Qual è il modo migliore per migliorare e amp; Per saperne di più? Libri? Esami MS? Altro?

Sviluppo in C #, ASP.NET/MVC.

Aggiorna Il problema non è in realtà con il rilascio di prodotti, ne ho rilasciati alcuni che sono soddisfatti e soddisfatti con i clienti. È più con la qualità del codice, le migliori pratiche, come faccio a sapere qualcosa che il codice è corretto, può funzionare, ma ci possono essere modi per codificarlo in modo molto più efficiente o aderendo a qualche tipo di standard

Applausi per qualsiasi risposta!

Matt

    
posta bExplosion 11.11.2011 - 16:56
fonte

5 risposte

4

Ecco un paio di suggerimenti:

Co-working : come sviluppatore, il co-working è stato fantastico per me. È essenzialmente un ufficio in affitto, condiviso, aperto (qui c'è il mio locale: link ) dove potresti lavorare. Troverete un sacco di sviluppatori che lavorano come freelance in posti come questo. È un buon modo se lavori da solo per poter lavorare nello stesso ufficio con gli altri. Le recensioni improvvisate del codice non sono rare e la community può aiutarti a discutere idee, architetture e codice.

StackOverflow : rispondere alle domande di altre persone o persino guardare domande e risposte ti darà nuove prospettive sulle cose e ti aiuterà ad ampliare ciò a cui sei esposto.

Contribuisci a un popolare progetto open source - Avendo alcuni progetti open source da solo, e avviando la maggior parte di essi, non riceverai molti feedback dando il via al tuo progetto (a meno che non si ottenga trazione sorprendente). Dovresti fornire una correzione di bug o un miglioramento a un progetto esistente e uno di cui non sei il responsabile e che necessiti dell'approvazione per il check-in. In questo modo forza i feedback dei proprietari del progetto, che possono dire "ottimo lavoro!" o "questo bit di codice qui può essere migliore, suggerisco questo .."

    
risposta data 11.11.2011 - 17:08
fonte
2

Non aspettare che un esperto software engineer ti guidi . Non sono buoni o sono molto occupati! (se sono buoni).

Se vuoi davvero imparare qualcosa, ti suggerisco di intraprendere un progetto per hobby da solo e metterlo open source!

Otterrai quanto segue:

  1. Con la libertà e l'interesse: scegli un argomento per conoscere qualcosa.
  2. Mentre provi a mettere insieme un intero prodotto, imparerai inevitabilmente il significato reale di come funzionano il design e l'architettura.
  3. Mentre collabori con le persone, otterrai il feedback delle persone su ciò che è veramente importante.
  4. Se ti capita di costruire poche iterazioni di lavoro e rilasciare il codice, imparerai i principi del processo di sviluppo del software.

Naturalmente, altri premi sono tutti là fuori, se il tuo prodotto è buono.

EDIT:

Dato il tuo commento, ho sentito di essere stato un po 'di parte. Ma se hai attraversato il processo di realizzazione di un intero prodotto, allora è il momento di guardare qualcosa di più grande e più profondo. Immagino, ora sapevo cosa stai chiedendo.

Suggerirei di seguire la seguente area da padroneggiare e lasciare a te come pianifichi / implementa il tuo apprendimento.

  1. Per saperne di più su una prospettiva più ampia nell'architettura del software - so che molte persone lo consiglierebbero e non ho intenzione di enfatizzare troppo. Ma penso che il punto che sto facendo sia guardare al ruolo di Architetto per visualizzare come le cose si evolvono quando il prodotto diventa grande. Un sacco di letteratura sono là fuori scegliere qualcosa per iniziare - ma questo è un passo molto cruciale che ti trasformerà.

  2. Conoscere molti altri aspetti della tecnologia - sei stato curioso di sapere come - kernel OS, database, Java o .NET run time, file system, server Web, browser, sistemi distribuiti, - le cose quotidiane che usiamo - come funziona dall'interno? Come è la loro architettura? quali sono i criteri di progettazione chiave.

  3. Informazioni sul processo di adozione della tecnologia. Molte persone differiscono sulle opinioni individuali se chiedi a perché JAVA o .NET è migliore e perché CORBA non ha mai realizzato ciò che i servizi web hanno fatto, e se Android oscurerà (o ucciderà) le prossime generazioni di iPhone. Come ingegneri che sono così occupati a pensare a come funzionano le cose, spesso abbiamo bisogno di andare oltre e vedere profondamente perché alcune cose funzionano nella vita e perché no.

Tutti questi avrebbero bisogno di te per scegliere argomenti specifici di tuo interesse e ottenere poco più che la scansione del web per arrivare a leggere libri o approfondire l'argomento.

So di avere risposte piuttosto ampie rispetto a suggerimenti / suggerimenti specifici - ma è proprio questa l'idea.

    
risposta data 11.11.2011 - 17:04
fonte
2

Stai già facendo le cose per bene. Stai programmando, hai un lavoro costante e hai clienti felici.

  1. Suggerirei di continuare con quello che stai facendo bene.

  2. Vorrei aggiungere la revisione del codice Open Source. Attualmente quello che ho fatto è importare la Spring Framework nella mia ide e la guardo per esempio. Faccio anche ricerche di codice sorgente aperte con Koders link

  3. Mi collegherei anche con altri sviluppatori ai gruppi di utenti locali per ciò che stai codificando o con cui vorrai lavorare in futuro.
risposta data 11.11.2011 - 18:37
fonte
0

Cerca di lavorare con una varietà di sviluppatori su progetti che prendi sul serio e cerca di imparare dai loro punti di forza e riconoscere i loro punti deboli. Non importa se sono migliori o peggiori di te, l'insegnamento è anche un ottimo modo per imparare.

    
risposta data 11.11.2011 - 20:38
fonte
0

Non sottovalutare l'esperienza di apprendimento necessaria per guidare gli altri. Hai abbastanza esperienza che c'è un gruppo di sviluppatori là fuori con meno conoscenza e meno esperienza. Guidare gli altri può essere molto impegnativo per le tue conoscenze e le tue pratiche in quanto richiede di verbalizzare agli altri perché fai le cose in un certo modo.

Sono anche d'accordo con ciò che altri hanno menzionato qui, occupano un'altra lingua con un paradigma significativo diverso. Personalmente, Erlang ha lavorato molto bene per me per estendere il mio modo di pensare sulla programmazione e ci sono un sacco di takeaway da applicare in un linguaggio imperativo.

    
risposta data 13.11.2011 - 19:03
fonte

Leggi altre domande sui tag