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


10

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

Mi chiedo quali sono le specialità che esistono attualmente in quantità ragionevoli nel settore (non nel mondo accademico), che non sono specifiche della tecnologia (ad es. Per questa discussione le forme di vittoria non sono una specialità)? Sono anche interessato al settore in cui un tale specialista dovrebbe lavorare se necessario.

Risposte:


18

Per come la vedo io ci sono due categorie di specializzazione:

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

Esempi di un argomento di programmazione sarebbero:

  • Incorporato
  • GUI
  • visualizzazione
  • analisi

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

  • Finanziario
  • Scientifico
  • Medico
  • Quasi tutti i principali settori industriali possono essere considerati un settore problematico

Penso che sia una distinzione importante.


4

La programmazione di sistemi integrati (in cui mi occupo da più di 30 anni) richiede una mentalità piuttosto diversa rispetto a qualsiasi altro tipo di sviluppo 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 realizzando progetti ad entrambe le estremità di questa scala. La memoria del codice sui micro più piccoli può essere solo di pochi KB, con solo poche centinaia di byte di RAM. Un micro a 16 bit di fascia media che costa $ 3 in quantità potrebbe avere 256 KB di memoria del programma e 16 KB di RAM.

Oltre alle risorse di memoria limitate, uno degli aspetti della programmazione integrata che è diverso dalle altre aree di sviluppo del software è che il programmatore spesso si occupa direttamente dell'hardware a livello di registro - sia sul micro stesso, sia in una periferica collegata a il micro tramite bus seriali come UART, SPI o I2C. Per questo motivo, i micro integrati di fascia bassa sono generalmente programmati in linguaggio C o assembly.

I sistemi integrati hanno spesso a che fare con eventi in tempo reale, quindi un programma firmware incorporato di solito ha molte routine di interruzione e un piccolo RTOS (sistema operativo in tempo reale). Il debug di tali sistemi richiede spesso assistenza hardware utilizzando un paio di linee dedicate nel micro in modo che i punti di interruzione possano essere impostati in remoto da un PC. Analizzatori logici, analizzatori di 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 lauree in entrambi EE e CS).


1

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

Parlando di negozi più grandi, un team DBA di produzione può disporre di alcune 1000 istanze di SQL Server per gestire e monitorare, fornire il ripristino di emergenza, collaborare con i team SAN, di rete e del sistema operativo ecc.

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

Dicendo che, come DBA Developer, ho incontrato molti sviluppatori client che sanno di più sui database di me ... :-)

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


0

Esiste anche la distinzione di conoscere un particolare tipo di soluzione software come una delle seguenti:

  • Pianificazione delle risorse aziendali
  • Gestione delle relazioni con i clienti
  • Sistema di gestione dei contenuti

Probabilmente ce ne sono altri, ma queste sono un'altra forma di specialità in cui si potrebbe lavorare per quasi ogni tipo di azienda facendo potenzialmente una personalizzazione di quanto sopra. Nel mio caso, ho lavorato su un sistema di gestione dei contenuti per un paio d'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 conta per quello che vuoi?


Spero in specialità distinte dalle loro capacità di implementazione. Ad esempio, uno specialista di intelligenza artificiale non deve usare C ++ / Prolog / qualunque sia il linguaggio. Lo sviluppo web come lo vedo in questi giorni lega fortemente l'implementazione con le tecnologie (asp.net mvc! = RoR - la conoscenza traducibile è principalmente programmazione generale e conoscenza della piattaforma)
Steven Evers
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.