Apprendimento dello sviluppo di sistemi embedded senza supervisione [chiuso]


10

Mi sono laureato quest'anno e il mio primo lavoro è stato coinvolto nella programmazione C, amministrazione Linux e sviluppo di sistemi embedded. Mi sento abbastanza soddisfatto del mio lavoro, ma temo di non diventare un programmatore di successo in questo campo. Sono uno sviluppatore solitario nel mio lavoro ora, con i miei compagni di squadra che sono esperti di hardware, non c'è nessuno che mi guidi o mi insegni i modi della programmazione integrata, devo studiare tutto da solo.

Quindi ecco le mie domande. È possibile diventare un buon sviluppatore di sistemi embedded a partire da una posizione entry level senza alcuna supervisione da parte di programmatori senior? Come potrei diventare uno (forse con l'aiuto di forum, canali IRC, buoni libri di testo)? Quanto tempo ci vorrebbe?

AGGIORNAMENTO: Finora ho ricevuto una manciata di risposte utili, ma mi sono reso conto che ho bisogno di alcuni suggerimenti specifici sull'argomento.

Quindi, ecco le mie domande particolari:

  1. Quali sono alcuni buoni libri di testo che è possibile utilizzare per imparare lo sviluppo integrato?
  2. Quali comunità online specializzate possono essere utili per un aspirante sviluppatore incorporato (senza contare cose generali come StackTranslate.it, Reddit e così via)?
  3. Quali sono i blog più interessanti dedicati allo sviluppo integrato?

Risposte:


3

Hai ragione sul fatto che essere nel tuo caso renderà le cose un po 'più difficili. Tuttavia, ci sono molte soluzioni per risolvere il tuo problema.

  1. Prima prova a partecipare a comunità come questa, ma forse più specializzate nel tuo campo. Partecipando, aumenterai le tue conoscenze e, soprattutto, incontrerai altre persone.

  2. Prova a partecipare ai campi di codice o a qualsiasi iniziativa in cui incontri altri sviluppatori come te in realtà. È più facile condividere le conoscenze quando hai la persona davanti a te.

  3. Chiedi al tuo capo di prenotarti almeno 10 giorni di allenamento all'anno . Non c'è bisogno di spiegare i vantaggi qui, se rifiuta, è stupido.

  4. Prova ad andare a una o due conferenze o fiere legate alla tua attività.

  5. Prova a leggere un libro tecnico ogni due mesi . Se puoi leggere di più, non esitare.

  6. Ottieni un mentore . Ovviamente non è la cosa più semplice da raggiungere.

  7. Dedica un po 'di tempo alla settimana per sperimentare e fare ricerca e sviluppo , provando nuove tecnologie di cose che leggi nei tuoi libri, comunità, fiere, corsi di formazione, ecc ... Prendersi il tempo di mettere in pratica ciò che hai imparato è MOLTO importante.

  8. Oggi sei l'unico sviluppatore, ma grazie al tuo duro lavoro, la tua azienda crescerà e probabilmente dovrai assumere più persone del tuo genere .


3

Sono uno sviluppatore solitario nel mio lavoro ora, con i miei compagni di squadra che sono esperti di hardware

Non esitate a usarli come risorsa. Una delle cose più difficili per i programmatori embedded che non sono EE è mettersi a proprio agio con l'hardware. È molto utile essere in grado di leggere uno schema (anche se non è possibile progettarne uno) e capire come utilizzare un ambito per guardare i segnali che escono dal microcontrollore.


0

È passato un po 'di tempo da quando hai fatto questa domanda, quindi spero che tu sia sulla buona strada. Ecco alcuni suggerimenti aggiuntivi che spero possano esserti utili.

Stack Stack e Blog

Abbastanza sorprendentemente, Stack Exchange non ha un proprio sito di domande e risposte per i sistemi integrati. Uno è stato proposto circa due anni fa, ma è ancora in fase di impegno, languendo senza abbastanza persone che si iscrivono per sostenerlo. Se vuoi fare la differenza, vai qui:

http://area51.stackexchange.com/proposals/15961/embedded-system-design-and-development

Leggi la proposta e, se sei d'accordo, fai clic su commit per essere coinvolto.

Linked In ha anche un gruppo di sistemi integrati, oltre a un paio di gruppi strettamente correlati che potrebbero essere di interesse:

Sistemi integrati

firmware

BRACCIO

Risorse Web

EETimes ha funzionalità sui sistemi embedded.

http://www.eetimes.com/design/embedded

Dr. Dobbs è amico da molto tempo di programmatori di tutti i tipi e ha grandi cose su embedded.

http://www.drdobbs.com/embedded-systems

La comunità di Arduino è grande, entusiasta e ha rimosso molti ostacoli all'ingresso per la programmazione integrata, compresi il prezzo e la formazione precedente.

http://www.arduino.cc/

Se sei una sviluppatrice di software femminile o una sviluppatrice di sesso maschile non illuminata, il cui sistema embedded è principalmente un club "Good-Old-Boys", dai un'occhiata a questo sito. L'autrice si è laureata al MIT, aveva fatto spigolosa, pronta all'uso (o talvolta nella confezione, come il suo caricatore per iPhone Altoids-box), e sembra essere molto prolifica nella sua progettazione, scrittura e video blog.

http://www.youtube.com/watch?v=QkmtHqsYCbw&feature=player_embedded# !

http://www.adafruit.com/tutorials

Molti fornitori disporranno di vaste raccolte di schede tecniche, note applicative, white paper e copie gratuite o di valutazione di strumenti di sviluppo. Le migliori aziende in questo spazio includono ARM, Atmel, Freescale, Intel, Microchip Technologies, NXP (ex Phillips), TI e molti altri.

Libri

Non sono sicuro che tu riesca a trovarlo, ma ho un libro che penso racconta molto della storia dei sistemi embedded in termini di strumenti (assemblatori, linker, caricatori) e cose fondamentali che accadono nei microprocessori (interrupt, I / O, semplici task manager e programmatori, semplici strutture di file). Programmazione di sistemi per piccoli computer, Daniel Marcellus.

Un riferimento più moderno è Embedded Linux Primer. I primi capitoli descrivono la logica alla base dell'esecuzione di Linux su sistemi embedded e alcuni dei meccanici coinvolti. Il capitolo 3 presenta una bella discussione su processori + chipset di supporto e opzioni SOC (System On a Chip) che possono essere considerati per l'uso nei progetti attuali. In realtà, l'obiettivo si sta muovendo, quindi dà un punto di partenza contemporaneo alla pubblicazione del libro. Il capitolo 3 è fantastico, ma dovrebbe essere integrato con ulteriori ricerche sul web e in discussione con i fornitori. In genere, l'ingegnere elettrico e i principali ingegneri software del progetto sceglieranno il processore, quindi se sei in un'azienda e stai imparando i sistemi integrati, fai un tuffo nell'hardware che scelgono.

I capitoli successivi includono ampie descrizioni su molti aspetti pratici del targeting di Linux sull'hardware, ma la collaborazione con il fornitore e l'uso di un design di riferimento piuttosto standard potrebbero ridurre significativamente lo sforzo.


0

Dipende principalmente da te stesso. Se sei disposto a imparare e sapere come raccogliere abbastanza informazioni sull'argomento, puoi insegnare a te stesso qualsiasi cosa. Ma non tutte le persone hanno ugualmente successo nel farlo:

Ho iniziato in un ambiente simile e se vedo dove sono ora invece di 5 anni fa (laureato come ingegnere elettronico, praticamente senza programmazione di programmazione), trovo incredibile ciò di cui è capace il cervello umano. Quando ho iniziato non avevo mai sentito parlare di modelli di progettazione, TDD, ... e non avevo mai visto il codice di un vero programma. Ora conosco abbastanza bene queste cose e so come usarle. L'unica cosa che faccio è cercare in rete, leggere codice da altri e alcuni libri (che di nuovo ho trovato in rete) e, cosa più importante, scrivere tonnellate di codice, eseguire il debug, imparare dai miei errori. Imparare da un errore è un modo molto migliore per imparare qualcosa invece di leggere un campione e replicare il comportamento. È molto strano, ma nella vita reale ho parlato solo con quello che definirei un buon programmatore un paio di volte.

L'unico altro programmatore qui è quello che chiameresti un anziano (perché è stato al lavoro per oltre 15 anni). Lavora in un modo completamente diverso da me. E sta ancora scrivendo una forma paralizzata di C con le classi, non usa mai STL, non ha idea di cosa sia un modello di progettazione ecc ecc. (Probabilmente inizierò presto una domanda su questo argomento, sto facendo fatica a provare a convincerlo ad adottare almeno alcuni dei miei metodi ..)


-1 Per un significato forse bene, ma senza indizi "Se sei abbastanza intelligente ..." apertura. Per favore, non mettiamo mai in discussione l'intelligenza di nessuno, in particolare se non ci sono prove evidenti. Non penso che il tuo obiettivo fosse quello di essere ostile, ma per Olga, potrebbe essere sembrato così. Sembra che abbia pubblicato questa domanda e quindi non abbia fatto nulla di più su Stack Exchange.
Sviluppatore:

@DeveloperDon il mio obiettivo non era davvero quello di essere ostile ma hai ragione, quando leggo la frase ora sembra che io sia seduto su una torre essendo tutto superiore. Una cosa vergognosa, quindi l'ho rimossa.
stijn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.