Quelles sont les spécialités de développement connues / communes? [fermé]

10

Dans une réponse que j'ai postée à une autre question, j'ai noté qu'il y aurait de plus en plus de spécialisation en développement logiciel: il y aurait des experts ou des spécialistes pour un type de programmation donné.

Je me demande, quelles spécialités sont connues pour exister en quantités raisonnables dans l'industrie maintenant (pas dans le milieu universitaire), qui ne sont pas spécifiques à la technologie (par exemple. Pour cette discussion, les formes de win n'est pas une spécialité)? Je suis également intéressé par l'industrie dans laquelle un tel spécialiste devrait travailler si nécessaire.

Steven Evers
la source

Réponses:

18

Selon moi, il y a deux catégories de spécialisation:

  1. spécialisation dans un domaine de programmation particulier;
  2. ou spécialisation dans un domaine problématique.

Des exemples d'un sujet de programmation seraient:

  • Intégré
  • GUI
  • Visualisation
  • Essai

Ensuite, il y a la spécialisation dans un domaine de problème particulier tel que

  • Financier
  • Scientifique
  • Médical
  • Presque toutes les grandes industries peuvent être considérées comme un domaine problématique

Je pense que c'est une distinction importante.

Personne
la source
4

La programmation de systèmes embarqués (dans laquelle je travaille depuis plus de 30 ans) nécessite un état d'esprit très différent de la plupart des autres types de développement logiciel. La plage de puissance de calcul varie considérablement, des microcontrôleurs 8 bits qui coûtent 30 cents en quantité aux microprocesseurs 32 bits exécutant Linux ou un autre système d'exploitation courant. Je fais actuellement des projets aux deux extrémités de cette échelle. La mémoire de code sur les plus petits micros peut n'être que de quelques Ko, avec seulement quelques centaines d'octets de RAM. Un micro 16 bits de milieu de gamme coûtant 3 $ en quantité peut avoir 256 Ko de stockage de programme et 16 Ko de RAM.

Outre les ressources mémoire limitées, l'un des aspects de la programmation intégrée qui est différent des autres domaines du développement logiciel est que le programmeur traite souvent directement avec le matériel au niveau du registre - soit sur le micro lui-même, soit dans un périphérique connecté à le micro via des bus série comme UART, SPI ou I2C. Pour cette raison, les micros intégrés bas de gamme sont généralement programmés en C ou en langage assembleur.

Les systèmes embarqués sont souvent confrontés à des événements en temps réel, donc un programme de firmware embarqué a généralement de nombreuses routines d'interruption et éventuellement un petit RTOS (OS en temps réel). Le débogage de tels systèmes nécessite souvent une assistance matérielle à l'aide de quelques lignes dédiées dans le micro afin que les points d'arrêt puissent être définis à distance depuis un PC. Les analyseurs logiques, les analyseurs de bus et les oscilloscopes sont des outils supplémentaires utilisés pour le débogage de ces systèmes.

En raison des aspects matériels du développement embarqué, les développeurs ont souvent des connaissances en électronique. (J'ai des diplômes en EE et en CS).

tcrosley
la source
1

Le rôle / l'équipe de "développeur DBA" existe mais n'est pas assez courant ou apprécié.

En parlant de plus grands magasins, une équipe de production DBA peut avoir quelques 1000 instances SQL Server pour gérer et surveiller, assurer la reprise après sinistre, assurer la liaison avec les équipes SAN, réseau et OS, etc.

Qui est là pour les équipes de développement? Réglage? Index? Conception? Normes de codage?

En disant que, en tant que développeur DBA moi-même, j'ai rencontré beaucoup de développeurs clients qui en savent plus sur les bases de données que moi ... :-)

Bien sûr, la connaissance de l'entreprise est également utile. Si vous êtes embauché pour améliorer un code qui évalue des produits dérivés complexes dans la banque d'investissement, une certaine expertise en la matière est presque aussi importante que des compétences de codage ingénieuses.

gbn
la source
0

Il y a aussi la distinction de connaître un type particulier de solution logicielle telle que l'une des suivantes:

  • Progiciel de Gestion Intégré
  • Gestion de la relation client
  • Système de gestion de contenu

Il y en a probablement d'autres, mais ce sont une autre forme de spécialité où l'on pourrait travailler pour presque n'importe quel type d'entreprise faisant une personnalisation de ce qui précède potentiellement. Dans mon cas, je travaille sur un système de gestion de contenu depuis quelques années maintenant, je dirais que c'est une spécialité dans un sens.

Quelque chose comme le développement Web n'est peut-être pas assez spécifique car il peut y avoir de nombreuses spécialités dans ce domaine, ou cela compterait-il pour ce que vous voulez?

JB King
la source
Hmm, j'espère des spécialités distinctes de leurs compétences de mise en œuvre. Par exemple, un spécialiste de l'IA n'a pas besoin d'utiliser C ++ / Prolog / quel que soit le langage. Le développement Web tel que je le vois ces jours-ci lie fortement la mise en œuvre avec les technologies (asp.net mvc! = RoR - les connaissances traduisibles sont principalement des connaissances générales en programmation et en plate-forme)
Steven Evers