Involontariamente diventando un programmatore: come farlo nel modo giusto? [chiuso]

21

Il mio background è ingegneria elettrica, DSP per essere più preciso. La società per cui lavoro attualmente fa molti progetti diversi, principalmente costruendo hardware analogico. Essendo un po 'più vicino ai computer rispetto a tutti gli altri qui intorno, sono spesso l'unico codice di scrittura per entrambi i dispositivi embedded (con cui sto perfettamente bene) e Windows o Linux OS. È quest'ultimo che è territorio straniero per me.

Posso codificare e conosco alcuni linguaggi (C / C ++, Java, alcuni VB.NET), ma li ho usati solo per simulazioni di algoritmi nell'elaborazione di segnali e immagini, reti neurali e altre applicazioni simili. Per me la programmazione è stata uno strumento computazionale più che altro. Tuttavia, ottengo sempre più progetti in cui devo scrivere un software completo a tutti gli effetti, e non so davvero come farlo, perché non ho mai dovuto farlo, e non sono mai stato veramente interessato abbastanza. Ho visto molti ingegneri convertiti in programmatori in una certa misura a causa delle richieste di lavoro, e la maggior parte di loro non erano così bravi in quello che facevano. Sono sicuro che molte persone hanno incontrato lo stesso.

Se dovessi imparare a scrivere software corretto con una buona interfaccia utente, una buona architettura interna e così via, come faccio? Non abbiamo nessuno al lavoro che potrebbe dirmi cosa sono le buone pratiche e cosa no. Dato che posso scrivere code nel senso più grezzo della parola, che altro c'è da sapere sulla scrittura di un buon software e come faccio a arrivarci da solo?

    
posta Phonon 10.10.2011 - 16:42
fonte

7 risposte

11

Ci sono alcuni libri che ti aiuteranno molto. Suggerisco di avere sempre accanto a te codice completo . È un riferimento inestimabile. In una precedente azienda in cui ho lavorato, questo era anche il libro che abbiamo dato a tutti i programmatori junior dopo essere stati assunti.

Il programmatore pragmatico è anche una risorsa molto utile ed è piuttosto breve, ma ti suggerisco di leggerlo dopo il codice completa.

Questi libri ti aiuteranno a iniziare, quindi a codice, codice, codice e codice altro ... ma sai quando fermarti, il tuo software non sarà mai perfetto.

    
risposta data 10.10.2011 - 17:11
fonte
6

La mia azienda lo fa sempre ... e mi fa impazzire.

"Sono uno sviluppatore di software, come faccio a diventare un EE?"

Bene, penso che la risposta sia abbastanza ovvia. Ci vuole un sacco di tempo e duro lavoro. E, naturalmente, i giusti materiali di apprendimento. Il background di ingegneria aiuta, nella mia università, le scuole di CS e di ingegneria nello stesso edificio con molte sovrapposizioni. Gli algoritmi e le basi matematiche ci sono.

Un errore che vedo la maggior parte dei nuovi arrivati è quello di mordere via più di quanto possano masticare. Materiale didattico su interfaccia utente, architetture, codice di qualità ... è un lotto di terreno . Qualcosa che richiede anni davvero e viene spesso svolto da team di esperti diversi presso società di software.

Per non dire che non si può essere abbastanza decenti da soli, se si inserisce il tempo. Riconosce la grandezza dei materiali in modo da non travolgerti e A. Esci o B. crea un grosso debito tecnico nelle tue app prendendo importanti scorciatoie nel tuo apprendimento processi.

A causa di tutto ciò, non esiste un "catch-all" diventato uno straordinario dev con questo libro là fuori. Ti consiglio di iniziare prendendo un libro ben valutato sulla tua lingua più utilizzata e partecipando anche alla community di Stack, in particolare per le revisioni del codice.

Prova Amazon.com, hanno buone recensioni di libri.

    
risposta data 10.10.2011 - 16:52
fonte
3

Libri : la cosa principale è leggere (buoni) libri sulla tua lingua preferita. Una volta che conosci la tua lingua di scelta, puoi ottenere " Più efficace X" o " Le migliori pratiche "e così via. Trovo che i libri di cucina siano ottimi per colmare le lacune che potresti avere. Quindi, suppongo che siano almeno tre libri che devi ottenere. Una cosa: fai esercizi e codice kata per migliorare la tua comprensione della lingua. Certo, hai bisogno di un buon xUnit modello.

Gli algoritmi sono particolarmente importanti e dovresti scegliere un libro che li dettagli - di nuovo, nella tua lingua preferita. Design Patterns e Gli Anti-Pattern valgono la pena conoscere in qualsiasi lingua.

Conclusione: ci vuole tempo. Non abbiate fretta.

    
risposta data 10.10.2011 - 17:00
fonte
3

Fai schifo nel codice. Sì.

Ma questo non significa che non puoi fornire software, che rende felici le persone;)

Sii umile. scrivi la logica "impresa" , di cui hai bisogno. Usa il codice della libreria per tutto il resto. Non tentare di scrivere algoritmi fondamentali (come ordinamento dell'array ), non usare "trucchi fantasiosi", attenersi ad alcuni < a href="http://www.state-machine.com/doc/AN_QL_Coding_Standard.pdf"> draconian codice-convenzione.

Utilizza l'IDE buono. Questo è essenziale, poiché ti aiuterà a formattare il codice e a tenere traccia di errori di battitura / semplici errori.

Leggi libri come " codice completo " e "Programmatico programmatore ", cerca di forzare te stesso e imparare OOP (è semplice e ti aiuterà a mantenere il codice più gestibile).

Usa SVN , commetti spesso, - così sarai in grado di annullare le modifiche (quando rovinerai qualcosa).

Trova qualcuno, che è un vero programmatore , con background accademico, se possibile. Così potrai parlare con lui condividendo i tuoi problemi da principiante e ricevendo risposte illuminanti.

E, naturalmente, la cosa più importante è anche continuare a codificare, codificare, codificare .

p.s .: se sei in grado di scrivere codice C ++ che funziona, e scrivi reti neurali (!) - allora il tuo cervello è adatto alla programmazione;) Buona fortuna!

    
risposta data 10.10.2011 - 20:08
fonte
2

Ci sono buone risposte qui.

Un grande vantaggio a tuo favore è il semplice fatto che vuoi sapere.

Gran parte dell'ingegneria del software (che dovresti prendere con sano scetticismo, ovviamente) riguarda come farlo in modi che non te ne pentirai più tardi. Un esempio è l'uso di un sistema di controllo della versione del codice sorgente. Un altro è dividere il codice in file, quindi è più facile lavorarci su frammentario. Un altro è di essere un stickler su orderliness - formattazione del codice e convenzioni di denominazione. Le convenzioni esatte non contano quanto essere coerenti al riguardo.

In questo modo, quando tornerai al codice tra un anno o più, non penserai "Chi ha fatto questo casino?" Sarai in grado di trovare le cose e cambiarle senza troppi rischi di rottura. **

Un buon modo per iniziare è trovare vari programmi di esempio e lavorarci sopra. Quindi puoi adattarli alle tue esigenze.

** Uno dei miei più grossi grattacapi è cercare di lavorare con codice scritto da persone che non pensavano che la formattazione o il naming fossero importanti.

    
risposta data 10.10.2011 - 18:39
fonte
1

Mentre ci sono molte e buone risorse su come fare e non fare cose, alla fine la cosa più importante è vedere un sacco di codice e lavorare con esso e vedere quanto è facile o complicato mantenere te stesso.

Un buon modo per imparare è avere qualcuno esperto per fare il progetto iniziale e poi rivedere il codice e mostrarti tecniche utili come quelle che usi per loro. Quindi, se per caso riuscirai a persuadere i tuoi capi ad assumere almeno un ingegnere del software con esperienza in importanti (piccoli) progetti software e nella progettazione di software per guidare i progetti, penso che sarebbe l'opzione migliore.

Se non riesci a farti prendere in poltrona da qualcuno, oggi c'è un strong movimento open source. Forse utilizzi alcuni strumenti open source nel tuo lavoro, quindi prova a correggere i bug in essi contenuti o aggiungi semplici funzionalità per le quali hai utilizzato e discuti come fare quelle cose con la rispettiva comunità. È un esercizio pratico di apprendimento non pratico per imparare come applicare le regole generali che troverai nei libri su problemi pratici reali.

    
risposta data 10.10.2011 - 17:39
fonte
0

Una cosa che raccomanderei davvero per l'apprendimento della codifica di qualità e dei problemi di architettura sarebbero gli insegnamenti di "Uncle Bob" (Robert Martin). Ha alcuni $ 1 video che sono piacevolmente mordi, se forse eccessivamente estrosi, così come alcuni buoni libri.

    
risposta data 10.10.2011 - 16:59
fonte

Leggi altre domande sui tag