2009-04-04 7 views
5

Sono uno sviluppatore di software incorporato con circa 5 anni di esperienza di lavoro su dispositivi mobili. Recentemente ho perso il mio lavoro e la maggior parte dei lavori nel campo embedded (che ho riscontrato) richiedono il nulla osta di sicurezza e non sono idoneo a farlo. Quindi, per questo motivo e anche solo per imparare qualcosa di nuovo, sto pensando di passare allo sviluppo web (servizi Web o qualsiasi applicazione significativa che utilizzi database, ecc.).Come passare dallo sviluppo di software embedded allo sviluppo web?

Si prega di indicarmi quali fattori dovrei considerare per decidere quale tecnologia (MSFT/Java related/LAMP) dovrei scegliere. Se possibile, fornisci anche suggerimenti per progetti che potrebbero avere qualche applicazione nella vita reale e quanto tempo dovrei allocare per lo stesso (dato che ho un sacco di tempo non programmato in questi giorni :)).

Grazie.

+0

Dove sono stai cercando lavori incorporati? Tendono ad essere orientati alla sicurezza nell'area DC, ma non sono orientati alla sicurezza al di fuori di esso. Se sei aperto al trasferimento, prendi in considerazione posti in Ohio e PA Occidentale (ad es. Pittsburgh), ci sono molti lavori incorporati lì – Uri

risposta

0

Un buon passo successivo potrebbe essere quello di seguire il percorso degli sviluppatori di iPhone poiché è probabile che abbiate esperienza con le curiosità dei clienti (perdite di memoria, CPU limitata, ecc.). L'iPhone/iPod Touch beneficia anche di un browser basato su webkit abbastanza potente che può eseguire la maggior parte di AJAX che è possibile scrivere e può interfacciarsi con un componente lato server.

Per mantenere le cose a buon mercato, è possibile eseguire uno stack java su un server EC2 o qualche altro VPS che può fungere da porzione lato server dell'app.

È un investimento di $ 99 per la licenza di sviluppatore e $ 5 al mese per un VPS economico per dev, ma il payoff può essere alto se il vento soffia nella giusta direzione e c'è una luna piena quando si lancia l'app).

(oh, ed economico addictive giochi può portare in una discreta quantità di denaro dalla lunga coda, anche se chissà quanto tempo terrà con i giochi seri in fase di lancio su iPhone da grandi giocatori come EA)

+0

Non devi usare un Mac Intel per sviluppare app native per iPhone? - Se stai parlando di utilizzare solo applicazioni basate su server, non è necessario spendere $ 99 per la licenza sviluppatore. – Nate

2

Normalmente direi che dovresti sfruttare la tua esperienza nella programmazione di macchine con poca memoria e poca memoria. Tuttavia, lo sviluppo web è una bestia molto diversa. I server Web di solito hanno molta più potenza e memoria computazionale.

Passare alla LAMP o in un altro modo richiede un diverso paradigma di calcolo. Trascorrerete spesso più tempo nell'integrare più processi (database, linguaggio di scripting, web server) piuttosto che spingere più velocità ed efficienza. La transizione non è così facile.

Quindi, come la risposta precedente ha detto, potresti prendere in considerazione l'idea di seguire il percorso di sviluppo del web mobile. È possibile ottenere il kit di sviluppo openmoko/iphone/gphone e iniziare a sperimentare. Qualunque cosa tu possa mettere le mani (e nel tuo budget).

1

Per prima cosa, ti rendi conto che stai iniziando completamente se passi. Potresti passare a iPhone, Android o Symbian, ma non ci scommetterei su di esso a meno che tu non sia abituato a freelance di salari e pagamenti. Dipende dalla tua personalità e opportunità.

In secondo luogo, stabilire e lavorare su una rete nell'area che si desidera utilizzare. Sii gentile, stai calmo, sii specifico: le tue opportunità saranno probabilmente correlate a chi conosci e quanto vogliono aiutarti. Troppi programmatori che passano la loro vita davanti a uno schermo dimenticano che datore di lavoro e cliente non sono compilatori. Sii gentile!

Dal punto di vista terra-up, si potrebbe guardare in PHP/MySQL negozio di vini, che si trova in questo libro:

Web Database Applications with PHP and MySQL

Questo è un approccio abbastanza step-by-step (se di età) a imparare cosa fa un programma basato sul web e un approccio su come farlo. Non preoccuparti di AJAX e di altri elementi del Web 2.0 finché non avrai compreso le basi; sarà solo fonte di confusione, secondo me.

Atlassian, che sviluppa un software di tracciamento dei problemi basato su Web scritto in Java, ha un kit di sviluppo open source e una versione di prova di 30 giorni. Se stai cercando di vedere qualche codice e lavorare in una zona abbastanza sviluppata, si potrebbe provarlo:

http://confluence.atlassian.com/display/DEVNET/

sviluppo Web è uno Skillset diverso da quello incorporato, anche se si potrebbe trovare un modo per sfruttare il vostro capacità di concentrarsi sui dettagli e sulla risoluzione dei problemi se si lavora in Python o Ruby. La programmazione Web, per sua natura, collega tra loro un insieme di sistemi e protocolli eterogenei, dove immagino possa essere incorporato, ma in un ambiente molto più limitato, con molte meno opzioni e un regno limitato di malizia.

In genere, la programmazione Web basata su linguaggi kitchen-sink (PHP, Java, C#) sembra dare energia ai problemi, quindi idealmente troverai un modo per sfruttare l'abilità che hai acquisito con un linguaggio basato su prestazioni, non campane e fischietti. Ci sono molte più posizioni di Java e C# rispetto a Python, quindi prendi con cura (veleno) il veleno.

PHP è accettabile se stai cercando di entrare nel regno di avvio/medio-basso, mentre Java/C# pagherà meglio, ma le circostanze sono in genere molto diverse (ambienti aziendali/commerciali quali sono).

Si potrebbe cercare di ottenere la certificazione in Java o C# (il cert PHP è uno scherzo). Non ti daranno un lavoro, ma dal momento che sei già ben informato, non solo nell'area che stai cercando di migliorare, corso (i) certificato ti aiuterà a passare il set di strumenti e la terminologia, oltre a spiegare lo scopo. Anche alcuni datori di lavoro si preoccupano.

Java Certification (Sun school)

C# Certification

Per qualcosa di divertente e Python/Ruby-like, pensare raccogliendo Groovy, un linguaggio interpretato basato su Java.

http://groovy.codehaus.org/

Questo è un buon elenco di risorse se siete di entrare in Java:

Essential Java resources

4

Avete considerato Linux sviluppo del kernel? Ci sono molte aziende nello spazio dell'elettronica di consumo che necessitano di ingegneri del software con conoscenza dello sviluppo del driver linux. Questa è una transizione abbastanza facile per qualcuno con una buona esperienza incorporata ed è anche molto divertente!

Ancora meglio, il libro Linux Driver Development è disponibile gratuitamente online.

1

Sono anche uno sviluppatore di software incorporato che pensa di passare allo sviluppo web.Non perché sto perdendo il mio lavoro (ci sono abbastanza opportunità per ragazzi embedded in Germania, dove vivo), ma perché dopo 9 anni nel campo, mi piacerebbe provare qualcos'altro.

Realizza che non stai cambiando lavoro qui, stai cambiando settore. Nessuno ti assumerà come sviluppatore web se sei inesperto in questo campo, soprattutto nell'attuale contesto economico.

Si può provare a trovare un lavoro presso una società Internet più grande (ad esempio, fornitore di servizi) in cui le vostre competenze incorporate vengono valutate. Ho visto recentemente un annuncio di lavoro per una posizione di sviluppatore VoIP presso un ISP. Stavano cercando qualcuno che avesse familiarità con C e C++ perché stavano usando una libreria open source scritta in queste lingue. Sembra un buon punto di partenza per uno sviluppatore incorporato che cerca di cambiare settore.

Una volta entrato in questo nuovo settore, probabilmente hanno un sacco di opportunità per conoscere lo sviluppo del web: corsi di formazione interni su nuove tecnologie web, imparando da colleghi esperti, del lavoro interno offre ...