Quelle est la différence entre un ingénieur système, un ingénieur logiciel, un développeur web et un informaticien ?


Il n'existe pas de règle absolue pour ces titres dans les entreprises. Dans certaines entreprises, vous trouverez un certain nombre de chevauchements et/ou de "mauvaises classifications". Voici mon opinion très subjective sur les éléments qui différencient ces rôles.

Développeur web -- Travaille sur la présentation de l'information sur le web, incluant parfois la logique d'affaires lorsqu'il y a une mauvaise stratification dans une application à plusieurs niveaux. Les principales technologies utilisées sont HTML, CSS, Javascript et les frameworks basés sur le navigateur comme Angular. Aucune formation spécifique n'est requise, bien que de nombreux développeurs web aient une formation formelle concentrée sur la programmation, la conception d'interface utilisateur ou la CS.


Ingénieur logiciel -- Travaille sur toute tâche qui nécessite la conception et le développement de logiciels. Ils ne sont pas limités aux technologies frontales (web). Le travail peut se faire dans des environnements front-end (web) ou back-end (serveur), ou sur des applications écrites pour le bureau ou pour des appareils mobiles. Les ETS effectuent généralement des tâches complexes de conception et de codage. Ils programment en utilisant la technologie appropriée, qui peut aller des langages de script (python, ruby, etc.) aux langages de haut niveau (C++, Java, Objective C, etc.). Généralement, un diplôme en CS ou en génie logiciel ou un équivalent est requis pour ces postes.


Ingénieur en systèmes -- Travaille sur les systèmes de manière plus holistique à travers plusieurs technologies (y compris les logiciels, le matériel et les processus humains). Ils sont généralement concernés par des questions plus larges dans la conception et la création de systèmes, telles que les exigences, la fiabilité, la performance, la maintenance, la vérification, la qualité, le processus, la logistique, etc. Un ingénieur système aura généralement un diplôme dans une discipline d'ingénierie.

Informaticien -- Travaille généralement sur des problèmes nécessitant des connaissances en informatique théorique. S'il ne travaille pas directement dans la recherche universitaire, un informaticien appliquera ses connaissances théoriques (par exemple, algorithmes, complexité, théorie du langage, etc.) à la création de solutions à des problèmes non résolus, c'est-à-dire à la recherche appliquée. Le code écrit par les informaticiens est généralement de niveau prototype/preuve de concept. Un diplôme CS avancé est souvent requis pour ce type de travail.

Pour placer ces éléments dans le contexte d'un projet spécifique, considérez quelque chose comme Google maps. Les développeurs web travailleront sur la présentation de la carte dans le navigateur. Un informaticien travaillera sur les algorithmes pour stocker et traiter efficacement les données de la carte. Les ingénieurs logiciels créeront le code de niveau production qui met en œuvre les algorithmes créés par l'informaticien, en concevant spécifiquement les parties les plus prosaïques du système pour gérer la fiabilité et l'échelle. Les ingénieurs systèmes créeront les stratégies pour le système global, de l'analyse des exigences techniques aux processus de collecte des données cartographiques (y compris l'obtention d'informations à partir de satellites et de toutes ces voitures Google qui collectent des informations de street-view), en passant par la validation, la mise à jour, le cycle de vie des données, etc.

.