Si vous examinez les matières étudiées en informatique dans le monde universitaire, vous constaterez qu'environ la moitié du temps perdu en mathématiques, en sciences, en cours au choix, etc., Optimisation, systèmes d’exploitation, électronique numérique et quelques autres cours liés à l’industrie tels que la programmation C et la programmation Web.
La plupart des sujets mentionnés ci-dessus sont agréables à connaître, mais ne fourniront pas non plus une base solide sur ce qui est requis dans les TI au quotidien.
Prenez les exigences de la programmation Web de Microsoft (c'est-à-dire les zones nécessaires à une personne pour être un membre de l'équipe productive dans une organisation):
1- C # .NET ou VB.NET
2- ASP.NET
3- HTML et CSS
4- SQL Server (ou une autre base de données)
5- Programmation et conception d'applications OO
6- Script Java
7- cadre MVC
8- Quelques expositions aux outils de contrôle de source
9- Quelques expositions aux outils de tests automatisés
Outil de suivi de 10 bogues
11-Concepts de commerce électronique (facultatif)
12-ORM
13-Quelques compétences en analyse d'entreprise
14-Quelques compétences en communication
15-Probablement, quelques bases du cloud computing
Comme vous pouvez le constater, la plupart des exigences ci-dessus sont rarement axées (vous pouvez ne recevoir qu'un seul cours au maximum) pendant les études collégiales ou universitaires.
On ne peut pas complètement blâmer les institutions, car il existe de nombreuses technologies de ce type et elles continuent à évoluer.
La plupart des solutions ci-dessus de Microsoft n’aideront pas ceux qui souhaitent développer des applications en Java.
Le vrai problème est qu’aucune des technologies dont les entreprises ont besoin aujourd’hui n’est jamais entièrement couverte.
Ce qui précède couvre la question de l’adéquation des diplômés aux emplois dans les entreprises, comme la programmation dans un environnement professionnel. Les besoins en recherche de laboratoires, etc. ne sont pas couverts par cette réponse. En outre, d'autres domaines nécessitent davantage de compétences que les précédents, tels que le développement de jeux, le développement intégré, le développement de systèmes en temps réel, etc.