Informatique vs génie logiciel - Quelle spécialité vous convient le mieux?

Salut tout le monde! Je m'appelle YK et je dirige actuellement CS Dojo, une chaîne YouTube d'éducation à la programmation comptant plus de 200 000 abonnés. J'étais également ancien développeur de logiciels chez Google.

Deux des questions les plus courantes que me pose mon public sont:

«Quelle est la différence entre les majors en informatique et en génie logiciel?»

Et…

"Dois-je choisir l'informatique ou le génie logiciel si je souhaite devenir ingénieur logiciel?"

Dans cet article, je vais répondre à cela et vous donner ma propre analyse rapide sur ces majors.

Un bref aperçu de ces deux majors

  • L'informatique est l'étude du fonctionnement des ordinateurs, principalement du point de vue théorique et mathématique.
  • Vous devez choisir l'informatique si vous aimez les mathématiques, la logique ou si vous souhaitez vous lancer dans un domaine spécialisé en CS comme l'intelligence artificielle, l'apprentissage automatique, la sécurité ou le graphisme.
  • Le génie logiciel est l'étude de la façon dont les systèmes logiciels sont construits, y compris des sujets tels que la gestion de projet, l'assurance qualité et les tests logiciels.
  • Vous devriez choisir le génie logiciel si vous êtes plus intéressé par l'approche pratique et si vous souhaitez connaître le cycle de vie global de la construction et de la maintenance des logiciels.
  • L'informatique et le génie logiciel enseignent les principes de base de la programmation et de l'informatique, vous pouvez donc choisir l'un ou l'autre pour devenir développeur de logiciels.

Pour comprendre la différence entre les majors en informatique et en génie logiciel, jetons un coup d'œil à leur programme respectif à l'Université de Waterloo au Canada.

J'ai choisi l'Université de Waterloo pour cela parce qu'elle possède l'un des meilleurs programmes d'informatique en Amérique du Nord.

Perspectives d'emploi

Commençons par comparer les types d'emplois et de stages que vous pouvez obtenir grâce à chaque programme.

Heureusement, le site Web de l'Université de Waterloo fournit plusieurs exemples.

Pour chaque majeure, voici quelques-uns des titres détenus par les anciens et où ils travaillent:

L'informatique

  • Développeur / Architecte Web, The Steele Group
  • Programmeur, Harry Rosen Inc.
  • Développeur mobile / cloud, Clearbridge Associates Limited
  • Génie logiciel, General Dynamics Canada
  • Ingénierie du développement logiciel, Microsoft
  • Ingénieur Agile, Pivotal Labs
  • Analyste d'affaires, Société Canadian Tire
  • Développeur Advocate, Google
  • Chef de produit, Dropbox

Génie logiciel

  • Développeur de logiciels, Tagged Inc
  • Développeur de logiciels, IBM Canada
  • Directeur logiciel, Arius Software Corporation
  • Ingénieur logiciel, VistaPrint USA
  • Ingénieur logiciel, Harris Corporation
  • Développeur logiciel, Accenture Inc.
  • Chef de produit technique - Conception et développement de logiciels, NexJ Systems Inc
  • Consultante, PureFacts Financial Solutions
  • Consultant en implémentation, Desire2Learn

Comme vous pouvez le voir, il n'y a pas une énorme différence entre les types d'emplois que vous pouvez obtenir.

L'emploi le plus courant que les diplômés obtiennent après avoir obtenu leur diplôme en informatique ou en génie logiciel est celui de développeur ou ingénieur logiciel.

Il existe également d'autres options connexes, telles que le chef de produit, l'analyste QA et le consultant en technologie. Vos options dépendront de vos compétences spécifiques.

Cours de première année:

Jetons maintenant un coup d'œil aux cours obligatoires de chaque programme. Commençons par comparer certains des cours que vous devrez suivre au cours de votre première année.

L'informatique

  • CS 135 - Conception de programmes fonctionnels
  • CS 136 - Conception d'algorithmes et abstraction de données
  • MATH 135 - Algèbre
  • MATH 136 - Algèbre linéaire 1
  • MATH 137 - Calcul 1
  • MATH 138 - Calcul 2
  • Plus quelques cours au choix

Génie logiciel

  • CS 137 - Principes de programmation
  • CS 138 - Abstraction et mise en œuvre des données
  • MATH 115 - Algèbre linéaire pour l'ingénierie
  • MATH 117 - Calcul 1 pour l'ingénierie
  • MATH 119 - Calcul 2 pour l'ingénierie
  • MATH 135 - Algèbre pour les mathématiques avec distinction
  • ECE 105 - Physique du génie électrique 1
  • ECE 106 - Électricité et magnétisme
  • ECE 124 - Circuits et systèmes numériques
  • ECE 140 - Circuits linéaires
  • SE 101 - Méthodes de génie logiciel

Comme vous pouvez le voir, les cours de première année sont également assez similaires. Ils couvrent tous deux quelques cours d'informatique fondamentale et quelques cours de mathématiques en algèbre linéaire et en calcul.

La seule différence majeure est que le génie logiciel a des composants supplémentaires de physique et de génie électrique, tandis que l'informatique a quelques cours optionnels supplémentaires.

Cours après la première année:

Qu'en est-il des cours obligatoires et optionnels après la première année? Jetons un coup d'œil à plusieurs exemples ici:

L'informatique:

  • MATH 239 Introduction à la combinatoire
  • Probabilité STAT 230
  • Statistiques de STAT 231
  • Structures de données CS 240 et gestion des données
  • CS 241 Fondements des programmes séquentiels
  • CS 245 Logique et calcul
  • CS 246 Développement logiciel orienté objet <- non requis pour les majors en génie logiciel
  • CS 251 Organisation et conception de l'ordinateur
  • Algorithmes CS 341
  • Systèmes d'exploitation CS 350
  • De plus, plusieurs cours au choix en informatique

Génie logiciel:

  • CHE 102 Chimie pour les ingénieurs
  • Ordinateurs numériques ECE 222 (inclut le langage d'assemblage)
  • Réseaux informatiques ECE 358
  • MATH 213 Mathématiques avancées pour les ingénieurs logiciels
  • MATH 239 Introduction à la combinatoire
  • Statistiques STAT 206 pour le génie logiciel
  • MSCI 261 Engineering Economics: Gestion financière pour les ingénieurs
  • CS 241 Fondements des programmes séquentiels
  • Structures de données CS 240 et gestion des données
  • CS 247 Principes de génie logiciel <- non requis pour les majors en informatique
  • Algorithmes CS 341
  • Interfaces utilisateur CS 349 <- non requises pour les majors en informatique
  • CS 343 Programmation simultanée et parallèle <- non requis pour les majors en informatique
  • CS 348 Introduction à la gestion de base de données
  • SE 212 Logique et calcul
  • Systèmes d'exploitation SE 350
  • Tests logiciels et assurance qualité SE 465
  • Conception et architectures de logiciels SE 464
  • Spécification et analyse des exigences logicielles du SE 463
  • Projet de conception SE 490
  • De plus, quelques cours au choix en informatique et en génie électrique

Je vous ai donné BEAUCOUP d'informations à digérer ici. Mais voici mon résumé:

En ce qui concerne les exigences en mathématiques et en statistiques, l'informatique et le génie logiciel sont presque identiques. Ils couvrent la combinatoire, les probabilités et les statistiques.

Les exigences de base en informatique sont également similaires, allant des algorithmes, des structures de données et des systèmes d'exploitation.

La principale différence est que:

  • Le génie logiciel a plus d'exigences en matière de génie électrique et de principes fondamentaux du génie logiciel, tels que les tests logiciels, la conception et la spécification des exigences logicielles.
  • L'informatique permet plus de cours au choix dans des cours d'informatique de niveau supérieur. Vous pouvez choisir parmi un large éventail de sujets tels que la sécurité, les principes fondamentaux du génie logiciel, la vision par ordinateur, l'apprentissage automatique et la gestion de bases de données.

Alors, quelle spécialité devriez-vous choisir?

Je pense que cela dépend principalement de vos préférences. En bref:

  • Vous devriez choisir l'informatique si vous aimez les mathématiques, la logique ou si vous souhaitez vous lancer dans un domaine spécialisé en CS comme l'intelligence artificielle, l'apprentissage automatique, la sécurité ou le graphisme.
  • Vous devriez choisir le génie logiciel si vous êtes plus intéressé par l'approche pratique et si vous souhaitez connaître le cycle de vie global de la manière dont le logiciel est construit et maintenu.

Mais attendez - qu'est-ce donc? Quelle majeure est la meilleure si vous voulez devenir ingénieur logiciel?

Voici mon avis. Dans cette université particulière (Université de Waterloo), avec cet ensemble particulier d'exigences du programme, l'informatique est une meilleure majeure si vous voulez devenir ingénieur logiciel.

Pour simplifier, supposons que vous espériez obtenir l'un des emplois les mieux rémunérés (~ 100 000 $ US / an) en tant qu'ingénieur logiciel en Amérique du Nord. Ces emplois sont généralement dans de grandes entreprises de logiciels (pensez à Microsoft, Google, Amazon, etc.) ou dans des entreprises de taille moyenne à forte croissance (pensez à Dropbox, Lyft, Snapchat, Pinterest, etc.).

En règle générale, ce qu'ils recherchent chez un candidat ingénieur logiciel, c'est la capacité d'écrire du code solide et de créer des projets intéressants, ainsi que les bases de l'informatique, y compris les structures de données et les algorithmes.

Je pense que la meilleure façon de cultiver cet ensemble de compétences est d'apprendre rapidement les bases de l'informatique et de passer son temps à s'entraîner à résoudre des problèmes et à écrire du code.

En me basant sur le programme de génie logiciel et sur la façon dont les étudiants en génie ont tendance à être occupés en général, je pense qu'il serait plus difficile de le faire avec le génie logiciel qu'avec l'informatique.

Un autre avantage de ce programme d'informatique particulier est qu'il permet plus de cours au choix en informatique. C'est génial aussi car en fonction de ce qui est demandé sur le marché du travail, vous pourrez ajuster vos cours. Par exemple, si le développement d'applications mobiles est demandé, vous pouvez l'apprendre. Et si le calcul parallèle est demandé, vous pouvez vous concentrer sur cela à la place.

Je suis sûr qu'il y a des avantages à apprendre les principes fondamentaux du génie logiciel (gestion de projet, conception, tests, etc.). Mais personnellement, je préfère privilégier la flexibilité à un ensemble prédéfini de compétences. C'est pourquoi je pense que l'informatique est une meilleure majeure pour devenir ingénieur logiciel avec ce programme particulier.

Bien sûr, ce n'est que mon avis, et ce n'est qu'une université en particulier. J'adorerais connaître votre opinion et votre expérience si vous vous êtes spécialisé en informatique ou en génie logiciel. S'il vous plaît laissez-moi savoir dans un commentaire ci-dessous.

Quelques notes

Remarque 1: Différentes universités ont des exigences différentes pour ces deux majeures. Cet article devrait être un bon point de départ, mais vous devriez toujours jeter un œil aux exigences du programme de l'université que vous souhaitez fréquenter.

Remarque 2: certaines universités n'ont même pas de spécialisation en génie logiciel. Par exemple, l'Université de la Colombie-Britannique à Vancouver possède des diplômes en informatique et en génie informatique, mais pas en génie logiciel. Mais ils ont une concentration en génie logiciel dans leur programme d'informatique, ainsi qu'en génie informatique.

Si l'université qui vous intéresse n'a pas de spécialisation en génie logiciel, j'irais avec l'informatique si vous voulez devenir développeur de logiciels. Le génie informatique est plus axé sur le matériel que sur l'informatique ou le génie logiciel, il est donc moins directement lié au travail d'un développeur de logiciel typique.

Et voici les principales sources que j'ai utilisées:

  • Informatique à Waterloo
  • Génie logiciel à Waterloo

Merci d'avoir lu et bonne chance pour choisir une université et votre majeure! ?