Quali sono alcune specialità di sviluppo conosciute / comuni? [chiuso]

10

In una risposta che ho postato a un'altra domanda, ho notato che è probabile che diventi sempre più specializzazione nello sviluppo del software: ci sono esperti o specialisti per un determinato tipo di programmazione.

Mi chiedo, quali specialità sono note per esistere in quantità ragionevoli nel settore ora (non nel mondo accademico), che non sono specifiche della tecnologia (ad esempio, per questa discussione le winform non sono una specialità)? Sono anche interessato all'industria che un tale specialista dovrebbe lavorare se necessario.

    
posta Steven Evers 07.11.2010 - 11:19
fonte

4 risposte

18

Per come la vedo ci sono due categorie di specializzazione:

  1. specializzazione in un particolare campo di programmazione;
  2. o specializzazione in un dominio problematico.

Esempi di argomenti di programmazione potrebbero essere:

  • Embedded
  • GUI
  • Visualizzazione
  • Test

Poi c'è la specializzazione in un particolare dominio problematico come

  • Financial
  • Scientific
  • Medico
  • Quasi tutti i principali settori possono essere considerati un dominio problematico

Penso che sia una distinzione importante.

    
risposta data 07.11.2010 - 12:39
fonte
4

La programmazione di sistemi embedded (che ho seguito per oltre 30 anni) richiede una mentalità abbastanza diversa dalla maggior parte degli altri tipi di sviluppo di software. La gamma di potenza di calcolo varia ampiamente, dai microcontrollori a 8 bit che costano 30 centesimi in quantità ai microprocessori a 32 bit che eseguono Linux o altri sistemi operativi comuni. Attualmente sto facendo progetti a entrambe le estremità di questa scala. La memoria di codice sul micros più piccolo può essere solo pochi KB, con solo poche centinaia di byte di RAM. Un micro di fascia media a 16 bit che costa $ 3 in quantità potrebbe avere 256 KB di memoria di programma e 16 KB di RAM.

Oltre alle risorse di memoria limitate, uno degli aspetti della programmazione embedded che è diverso da altre aree dello sviluppo del software è che il programmatore spesso gestisce direttamente l'hardware a livello di registro, sia sul micro stesso che in un periferica collegata al micro tramite bus seriali come UART, SPI o I2C. Per questo motivo, i microprogrammi embedded di fascia bassa sono solitamente programmati in linguaggio C o assembly.

I sistemi embedded si occupano spesso di eventi in tempo reale, quindi un programma firmware incorporato di solito ha molte routine di interrupt e un piccolo RTOS (sistema operativo in tempo reale). Il debug di tali sistemi richiede spesso l'assistenza hardware utilizzando un paio di linee dedicate nel micro, in modo che i punti di interruzione possano essere impostati da remoto da un PC. Analizzatori logici, analizzatori bus e oscilloscopi sono strumenti aggiuntivi utilizzati per il debug di questi sistemi.

A causa degli aspetti hardware dello sviluppo integrato, gli sviluppatori hanno spesso un background di elettronica. (Ho dei gradi sia in EE che in CS).

    
risposta data 07.11.2010 - 12:27
fonte
1

Il ruolo / team "DBA dello sviluppatore" esiste ma non è abbastanza comune o apprezzato.

Parlando di negozi più grandi, un team DBA di produzione può avere poche 1000 istanze di SQL Server da gestire e monitorare, fornire disaster recovery, collaborare con SAN, team di rete e OS ecc.

Chi c'è per i team di sviluppo? Messa a punto? Indici? Design? Norme di codifica?

Dicendo che, come amministratore DBA stesso, ho incontrato molti sviluppatori client che conoscono meglio i database di me ...: -)

Naturalmente, anche la conoscenza del business è utile. se sei assunto per migliorare un codice che prevede il prezzo di complessi derivati nell'investment banking, allora alcune competenze in materia sono importanti quanto le abilità di codifica whizzy.

    
risposta data 07.11.2010 - 19:28
fonte
0

C'è anche la differenza di conoscere un particolare tipo di soluzione software come una delle seguenti:

  • Pianificazione delle risorse aziendali
  • Gestione delle relazioni con il cliente
  • Sistema di gestione dei contenuti

Probabilmente ce ne sono altri, ma questi sono un'altra forma di specialità in cui si potrebbe lavorare praticamente per qualsiasi tipo di azienda, potenzialmente personalizzando quanto sopra. Nel mio caso, ho lavorato a un sistema di gestione dei contenuti per un paio di anni, ora che direi che è una specialità in un certo senso.

Qualcosa come lo sviluppo web potrebbe non essere abbastanza specifico in quanto ci possono essere molte specialità in quest'area, o conterebbe per quello che vuoi?

    
risposta data 08.11.2010 - 20:02
fonte

Leggi altre domande sui tag