Devenir programmeur requiert d'accumuler, jour après jour, année après année, nombre de connaissances, théoriques et pratiques. Ce n'est qu'au bout de longues souffrances, qu'on reçoit sa récompense (intellectuelle, financière…) et qu'on prend du plaisir. Cet article n'a pas la prétention de faire de vous un programmeur, mais veut juste vous donner un aperçu de ce qu'il faut faire et savoir pour devenir un bon programmeur aujourd'hui. Les parties présentées ici peuvent être lues dans l'ordre que vous voulez.
Étapes
-
Suivez un cours d'initiation à l’une des (ou aux deux) disciplines suivantes :CONSEIL D'EXPERT(E)Fondateur de jeunes pousses et directeur en ingénierieGene Linetsky est fondateur de jeunes pousses (start-up) et ingénieur en logiciel dans la région de la baie de San Francisco. Il travaille dans le secteur de la technologie depuis plus de 30 ans. Actuellement, il est directeur de l'ingénierie chez Poynt, une entreprise technologique qui construit des terminaux de points de vente intelligents pour les entreprises.
Ne pensez pas que vous devez absolument obtenir un diplôme en programmation . Suivre des cours de programmations dans un langage peut s'avérer utile. Gene Linetsky, créateur de startup et ingénieur en informatique, nous dit : « Savoir si un diplôme est un avantage ou non est sujet à débat. Considérez plutôt la programmation comme un apprentissage. Il s'agit principalement d'apprendre de ses erreurs. »
-
Apprenez les concepts touchant aux bases de données telles que les tables, les vues/requêtes et les procédures. Pour vous familiariser avec ces concepts, vous pouvez utiliser n’importe quel logiciel de bases de données, comme :
- MS Access
- DB V
- Fox Pro
- Paradox
- MySQL convient parfaitement, d'autant qu'il est gratuit, et les bases de données sont facilement accessibles grâce aux requêtes SQL
-
C'est à vous de décider quel type de programmeur vous voulez devenir. Les programmeurs relèvent généralement de l’une des catégories suivantes :
- programmeur pour le Web,
- programmeur d’applications de bureau,
- programmeur de systèmes d'exploitation (spécialisé dans une plateforme particulière ou multiplateforme),
- programmeur de plateforme indépendante,
- programmeur d’applications distribuées,
- programmeur pour bibliothèques/plateforme/structure logicielle/noyau,
- programmeur système,
- programmeur de noyaux (« kernel »),
- programmeur de pilotes,
- programmeur spécialisé en compilation,
- expert en informatique.
-
Étudiez les technologies et les langages de programmation liés au secteur qui vous intéresse. Nous allons à présent passer en revue les différents types de programmation.Publicité
-
Voyons ce que recouvre cette notion de programmation en environnement Web. Les applications Web sont généralement placées sur un serveur, au sommet de la structure Internet. On y accède grâce à un navigateur Internet, comme Firefox ou Internet Explorer. Bien que positionnées dans l'architecture Internet, elles peuvent très bien être utilisées sans recourir à la connexion Internet. Elles reposent sur certains langages ou certains protocoles, comme :
-
Naviguez sur différents sites et ouvrez les sources pour voir comment ils sont programmés (faites un clic droit, puis cliquez sur Afficher la source ou appuyez sur F12). Ce qui importe pour vous est non pas de visiter un très grand nombre de sites, mais d'étudier quelques sites spécifiques, peu importe le sujet par ailleurs. L'idéal est de consulter un ou deux sites appartenant à quelques-unes des grandes familles suivantes :
- des sites d'organisations (associations commerciales, organisations à but non lucratif ou gouvernementales),
- des moteurs d'indexation (moteurs et métamoteurs de recherche, moteurs de recherche spécialisés, annuaires),
- des sites d'exploration de données (« data mining »),
- des sites personnels,
- des sites d'informations ou encyclopédiques (sites wiki, feuilles de données, spécifications techniques, annuaires bibliographiques, blogues et revues, médias et agences de presse, annuaires téléphoniques),
- des sites du Web social (portails sociaux, référenceurs de sites, sites de prises de notes),
- des sites collaboratifs (on retrouve ici des sites déjà mentionnés, comme les wikis et les blogues).
-
Apprenez au moins une technique ou une méthode de réflexion et à vous servir d'un ou deux programmes qui permettent d'organiser la pensée. À titre d'exemple, vous pouvez apprendre à faire des organigrammes ou à utiliser le logiciel « MS Visio » (pour la création de diagrammes ou d'organigrammes hiérarchisés).
-
Vous devrez savoir construire un site Internet. Cela implique de savoir créer des schémas Web conceptuels, des plans de sites Web et des structures de navigation.
-
Suivez un cours intensif de conception graphique. Essayez de maitriser au moins un logiciel d’édition/manipulation d’images (c'est facultatif, mais fortement recommandé).
-
Sachez comment est construit et fonctionne Internet. Vous devez maitriser, ou tout au moins avoir quelques notions, dans les domaines suivants :
- protocoles de communication client-serveur développés pour le Web (HTTP, FTP, SMTP, POP3 ou IMAP4),
- logiciel(s) pour faire tourner les serveurs (de préférence, celui qui fait tourner le vôtre),
- navigateurs pour Internet,
- serveurs et logiciels de messagerie.
-
Apprenez le HTML et le CSS. Pour encoder en HTML, utilisez un de ces éditeurs appelés WYSIWYG (« What You See Is What You Get ») qui permettent de voir tout de suite si ce que vous programmez fonctionne et correspond à ce que vous voulez.
-
Apprenez le XML et ses dérivés, comme les langages XSL et XPath (ce n'est pas obligatoire, mais fortement recommandé)
-
Mettez sur pied quelques petits sites, sur un sujet que vous connaissez bien, en n'utilisant que le HTML.
-
Apprenez un langage orienté client (ou machine). Pratiquement tous les programmeurs connaissent JavaScript. Certains apprennent le VBScript , le problème avec ce dernier langage est que tous les navigateurs ne l'interprètent pas, ou mal.
-
Familiarisez-vous avec ce langage. Explorez ses capacités au maximum. Ne passez pas au langage orienté serveur tant que vous n'avez pas compris le langage orienté machine !
-
Apprenez au moins un langage orienté serveur. Si vous optez pour un seul logiciel de serveur, apprenez l’un des langages de programmation pris en charge par ce logiciel. Si ce n’est pas le cas, apprenez au moins un langage de programmation pour chaque logiciel de serveur.
-
Une fois ce langage orienté serveur bien maitrisé, créez un projet pilote.
-
Créez votre propre site et mettez-le en ligne.Publicité
-
Sachez bien ce que recouvre cette appellation. Les programmeurs de ce type d'applications travaillent le plus souvent à des logiciels qui vont faciliter le travail des entreprises. Une parfaite connaissance de ces sociétés, de leurs attentes, de leurs structures fait alors gagner beaucoup de temps.
-
Apprenez à connaitre les différents matériels informatiques. Un cours introductif à l'électronique appliquée au numérique et un autre dédié au matériel informatique sont un minimum. Certains estiment que de tels cours sont un peu prématurés en début de formation. Pour commencer, vous pouvez toujours consulter deux ou trois tutoriels bien faits comme celui-ci ou celui-là . Plus tard, quand vous maitriserez mieux la programmation, vous pourrez toujours revenir sur cet aspect des choses.
-
Apprenez un langage de programmation élémentaire, dit « pour enfants ». Ce n'est pas parce que vous n'êtes plus un enfant que vous ne pouvez pas commencer par un tel langage. Essayez-vous, par exemple, au langage « Scratch ». Même si c'est facultatif, cela vous aidera à mieux aborder les langages plus difficiles. Cette initiation peut être faite avant l'étape précédente.
-
Initiez-vous à la programmation procédurale , à la programmation orientée objet , à la programmation fonctionnelle et au paradigme de programmation .
-
Suivez au moins un cours introductif aux langages procéduraux . Peu importe le langage que vous adopterez par la suite, il vous faut bien maitriser la programmation procédurale. La plupart des programmeurs assurent que maitriser un langage procédural aide à programmer en général.
-
Un projet informatique nécessite une phase d’analyse, suivie d’une autre, de conception celle-là. Pour mener à bien votre projet, vous devez apprendre au moins une des deux notations (ou langages) suivantes : UML ou ORM.
-
Essayez d'écrire quelques applications consoles ou assimilées comme telles (« console-like »). Dans tout bon manuel de programmation ou sur Internet, vous trouverez ces petits exercices (dont le fameux « Hello, world »). Bien entendu, choisissez un support qui concerne le langage que vous avez choisi.
-
Suivez des cours de programmation de haut niveau (concernant le ou les langages choisis). Avant d'aller plus loin, vous devez maitriser parfaitement, en théorie comme en pratique, un certain nombre de concepts parmi lesquels :
- l'information entrées/sorties,
- le flux logique ou physique (d'exécution) des programmes avec les langages procéduraux,
- la déclaration, l'assignation et la comparaison des variables,
- les routines, comme « as if..then..else » et « select/switch..case »,
- les boucles, comme « while..do », « do..while/until », « for..next »,
- la syntaxe du langage choisi afin de mettre en place et d'appeler correctement telle ou telle procédure ou fonction,
- les différents types de données et leur mise en œuvre,
- la création et l'utilisation de types de données définis par l'utilisateur (TDU), comme les enregistrements, les structures et les unités,
- si votre langage la gère, la surdéfinition ,
- les façons d'accéder à la mémoire avec le langage de votre choix (pointeurs, « peeking », etc.),
- si votre langage la gère, la définition d'opérateur ,
- si votre langage les gère, les délégués (C#) et les pointeurs de fonction (C et C++).
-
Mettez en application les connaissances théoriques apprises.
- Le paradigme orienté objet.
-
Suivez au minimum un cours introductif d'un langage de programmation à un autre paradigme de programmation. Il est recommandé d’apprendre un langage de programmation pour chaque paradigme, c'est ce que font la plupart des programmeurs dignes de ce nom. On commence généralement par en apprendre un premier, puis une fois ce langage bien maitrisé (théoriquement et pratiquement), on en apprend un second. Essayez l’un des domaines suivants :
- paradigme de programmation logique,
- paradigme de programmation fonctionnelle.
-
À ce stade, faites un bilan des langages que vous avez appris, mesurez les avantages et les inconvénients de chacun d'eux. Pour établir cette comparaison, vous pouvez :
- reprendre un programme écrit dans un langage et le récrire à l'aide du second langage,
- écrire un programme un peu élaboré dans les deux langages (parfois, sinon souvent, il n'est pas possible de coder dans l'un des deux langages),
- vous faire une antisèche (« cheatsheet ») ou un tableau comparatif avec ce qui est commun aux deux langages, et ce qui est propre à chacun d'eux,
- essayer de coder un petit programme facile à écrire dans un langage, et le récrire dans un autre langage.
-
Maitrisez les concepts du langage de programmation graphique associé au langage choisi. Pratiquement tous les langages classiques de programmation comprennent des modules graphiques ou sont dotés de bibliothèques qui permettent la programmation graphique. Les autres supportent généralement la programmation console ou « console-like ».
- Vous pouvez, par exemple, acquérir quelques notions de programmation évènementielle. Cette dernière repose essentiellement sur des évènements et la manipulation qu'on peut en faire (en n'utilisant que le langage que vous avez choisi).
- Vous pouvez aussi tester un grand nombre de logiciels pour comprendre comment ils fonctionnent. Les sociétés qui créent des logiciels offrent souvent une version bêta de leurs produits, laquelle sert à tester les logiciels en conditions réelles. Pratiquez une veille active.
- Lisez des articles ou des tutoriels sur les interfaces graphiques (GUI).
-
Testez vos connaissances en construisant un petit programme. Écrivez un programme qui pourrait vous être utile. Vous pourriez, par exemple, écrire un petit logiciel qui renomme les fichiers à la volée, compare visuellement des fichiers textes, copie les noms des fichiers d'un répertoire donné dans un fichier texte, etc. Faites simple pour commencer.
-
Montez un projet type « fin d’études ». Allez jusqu'au bout, en essayant d'appliquer toutes les techniques de programmation évènementielle que vous avez apprises.
-
Approfondissez vos connaissances déjà acquises en structure logicielle/bibliothèque/paquet en suivant des cours d'un niveau supérieur. Intéressez-vous aux détails et aux particularités de la structure logicielle choisie. N'hésitez pas à consulter Internet !
-
Après les avoir trouvés, apprenez les éléments visuels des paquets/bibliothèques, adaptés à vos langages de programmation.
-
Suivez un cours d'infographie (et non de graphisme). Cela vous sera d'une grande aide quand il faudra programmer les différents éléments de l'interface graphique.
-
Devenez programmeur de jeux (facultatif). La programmation de jeux est considérée, dans la plupart de ses éléments, comme de la programmation bureautique. Au terme de cet article, si vous avez l’intention de devenir un programmeur de jeux, vous aurez besoin d’en savoir plus sur cette programmation spécifique. Un cours en graphisme est, bien sûr, un impératif et il vous faudra maitriser un deuxième langage qui appartient à la famille des langages fonctionnels/logiques (comme Prolog ou Lisp).Publicité
-
Abordez sans crainte la programmation d’applications distribuées . Elle est considérée par beaucoup comme l’une des plus difficiles à apprendre et nécessite des connaissances diverses en informatique et en technologies de communication.
-
Initiez-vous aux différents systèmes de téléphonie et aux matériels associés. Ce n'est pas obligatoire, mais c'est très utile pour bien comprendre comment fonctionnent les réseaux.
-
Familiarisez-vous avec les éléments matériels composant un réseau, comme les concentrateurs (« hubs »), les commutateurs (« switches ») et les routeurs.
-
Suivez des cours sur les protocoles de communication. Une bonne compréhension du modèle OSI , d'Ethernet, des protocoles IP, TCP, UDP et HTTP est nécessaire avant de commencer la programmation d'applications distribuées.
-
Apprenez le langage XML et maitrisez-le à fond.
-
Apprenez un langage de scripts en Shell. Pour programmer sous Windows, tout langage interprété par Windows Scripting Host peut convenir. Pour programmer sous Linux, une connaissance de Bash et de Perl est largement suffisante. La maitrise de JavaScript est recommandée pour les deux systèmes d'exploitation pour les raisons suivantes :
- le code JavaScript est géré par les deux (Windows Scripting Host gère JavaScript par défaut, et la plupart des distributions Linux incluent un émulateur en JavaScript),
- ce langage est facile à maitriser,
- il a une syntaxe dérivée d'ALGOL, ce qui vous permettra de mieux assimiler d'autres langages de programmation ( C , C++ , C#, Java et J# ont tous une syntaxe issue d'ALGOL),
- apprendre le JavaScript permet également de se familiariser avec l'écriture de pages Web pour une interprétation côté machine.
-
Les appels de la programmation procédurale doivent se faire à l'aide de scripts rédigés dans le langage de script choisi. Plus tard, vous utiliserez d'autres techniques de programmation plus évoluées et d'autres paradigmes liés au langage de script que vous avez choisi. Tous les langages de script ont, à un stade ou un autre, des aspects de programmation procédurale.
-
C'est grâce à ce langage de script que vous allez pouvoir faire communiquer les machines entre elles. Apprenez à établir ces communications. Il existe des scripts complexes, mais la maitrise de scripts simples sera suffisante à ce stade.
-
Passez à un langage de programmation du bureau. Choisissez-en un qui est, de préférence, multiparadigmes et multiplateformes comme c'est le cas de Python . Suivez au minimum un cours introductif à ce second langage. Java est toujours été très apprécié des programmeurs, même si C# gagne rapidement du terrain dans ce domaine. Java et C# sont aujourd'hui préférés, car :
- ils sont tous deux orientés-objet, ce qui évite aux programmeurs d'une équipe d'avoir à adapter des composants (unités de code précompilées) déjà écrits par d'autres et réutilisables tels quels,
- ils gèrent tous deux la programmation évènementielle, mais aussi, à un certain niveau, la programmation orientée-objet (OO) et la programmation procédurale,
- la structure logicielle fondée sur ces langages est distribuable par essence (dans le cas de Java),
- ils donnent accès à de très nombreux paquets prêts à l'emploi (en particulier, ceux qui touchent au réseau ), distribués soit en open source soit en paquets sources. C'est ainsi que les programmeurs peuvent s'appuyer plus facilement sur le travail des autres.
-
Étudiez avec soin les fonctionnalités du langage choisi concernant le noyau, en particulier celles qui touchent à la communication réseau. S'il vous reste du temps, vous pouvez jeter un coup d'œil à certains éléments de l'interface utilisateur, comme l'affichage des données, la conception des fenêtres, etc.
-
Suivez un cours sur l'architecture et l'interface des applications distribuées. Vous pouvez étudier dans les livres, en ligne ou à l'université. Comprendre la composition des applications distribuées est un minimum nécessaire.
-
Apprenez-en un peu plus sur l'élaboration des composants et des services qui s'appuient sur le langage de programmation de votre choix.
-
Apprenez une ou plusieurs des techniques citées ci-dessous. Il est recommandé d'avoir une idée de chacune d'entre elles. Les grands programmeurs d'applications distribuées ne se contentent pas d'un ou deux langages de programmation, mais ils maitrisent généralement un ou deux (voire plus) langages tournant sous des plateformes différentes. En effet, si vous voulez que vos applications soient « distribuées », elles doivent être programmées pour tourner (sans bogue) sur des plateformes différentes. Voici les principales architectures et techniques :
- Common Object Request Broker Architecture ( CORBA )
- Simple Object Access Protocol ( SOAP )
- Asynchronous JavaScript et XML ( AJAX )
- Distributed Component Object Model ( DCOM )
- .NET Remoting
- XML Web Services
Publicité
La programmation en bibliothèque/plateforme/structure logicielle/noyau
-
Comprenez bien ce qu'est la programmation core (du noyau). Les programmeurs core sont des programmeurs très doués qui sont passés de la programmation d'applications à celle des unités de code, pouvant être utilisées par d'autres personnes.
-
Si ce n'est pas déjà fait, apprenez un langage de programmation qui permet de rectifier des composants ou des paquets déjà construits.
-
Suivez des cours portant sur les langages UML et ORM. Les programmeurs de bibliothèques maitrisent souvent l'un des deux, ou les deux.
-
Apprenez quelques techniques et concepts de base des programmations modulaire, orientée composant, orientée-objet et évènementielle. Plus vous en connaitrez, meilleur vous serez en programmation structure logicielle/bibliothèque/paquet.
-
Apprenez-en le plus possible sur les différents systèmes d'exploitation et sur les structures logicielles tournant sur ces plateformes.
-
Vous devez connaitre beaucoup de choses sur les structures logicielles, les langages de programmation et les technologies qui transcendent les plateformes.
-
Commencez par travailler sur des bibliothèques déjà existantes, si possible en open source. Tout programmeur en bibliothèques/paquets commence ainsi. Partez de quelque chose de simple, comme un paquet de conversion d'unités ou de calculs scientifiques. Si vous êtes étudiant, reprenez un de vos cours de maths (analyse de fonctions, par exemple) et essayez de créer une ou des bibliothèques qui analyseront à la volée des fonctions. C'est un bon exercice.
-
Essayez de voir où vous pouvez récupérer des paquets en open source codés dans votre domaine de programmation. Téléchargez les fichiers binaires ou exécutables du paquet. Testez-les et notez leurs points faibles et forts. Cela fait, copiez le code source et voyez comment il a été écrit. Ensuite, essayez de retrouver par vous -même ce code, en totalité ou en partie. Au début, vous ferez cet exercice formateur après avoir lu le code, puis, avec l'expérience, essayez de retrouver le code sans le lire au préalable. Sur le long terme, cherchez à améliorer ces bibliothèques.
-
Sachez aussi quelles sont les façons de distribuer et de développer les composants auprès des programmeurs.
- Les programmeurs « bibliothèques/paquets » ont tendance à aborder les problèmes qu'ils ont à résoudre de façon récursive ou itérative. Ils posent que leur problème peut se décomposer (récursivité) en une séquence de petits problèmes qu'il faudra résoudre en premier ou être résolu par un processus qui va se répéter (itération) et qui va consister à trouver la solution finale en trouvant d'abord des solutions approximatives, lesquelles seront ensuite mises en commun.
- Les programmeurs « bibliothèques/paquets » ont également tendance à étendre le problème originel. En effet, face à un problème, ils vont, non pas chercher la solution adaptée, mais ils vont essayer de régler le problème de façon plus vaste se basant sur le principe « qui peut le plus peut le moins ». Ils gagnent ainsi du temps lorsqu'il leur faudra résoudre un problème approchant.
Publicité
-
Comprenez bien ce que sous-entend la programmation système. Les programmeurs système traitent de « la science » de la programmation, et non de ses implémentations spécifiques. Ne vous limitez pas à une plateforme particulière !
-
Pour être programmeur système, il faut avoir certaines connaissances en mathématiques.
-
Suivez un cours d’introduction à l'algèbre linéaire.
-
Suivez un cours d' analyse .
-
Suivez un cours de logique et/ou de mathématiques discrètes.
-
Découvrez par vous-même différents systèmes d’exploitation. Pour cela, vous pouvez :
- essayer de comprendre comment sont installés les divers systèmes d'exploitation,
- apprendre à installer divers systèmes d’exploitation sur un PC (ce n'est pas obligatoire, mais fortement recommandé),
- installer plusieurs systèmes d’exploitation tournant sur une même machine. Il ne s'agit pas de lancer un système d’exploitation compacté qui va s'installer automatiquement suite à un doubleclic, mais bien d'installer, ressource après ressource, tout un système d’exploitation, personnalisé en quelque sorte.
-
Suivez un cours (ou étudiez dans des manuels) traitant de l’architecture matérielle des ordinateurs.
-
Essayez de vous faire une idée précise des différentes plateformes matérielles informatiques.
-
En commençant sur un système d’exploitation (ou une plateforme matérielle) de votre choix, attaquez-vous à la notion de langage d'assemblage. Par la suite, vous vous attèlerez aux autres plateformes ou systèmes d’exploitation.
-
Apprenez à coder en ANSI, en C et en C++, et familiarisez-vous avec la programmation procédurale.
-
Consultez des ressources en ligne, lisez des livres ou suivez des cours afin de mieux comprendre le fonctionnement du langage C sur la plateforme que vous avez choisie.
-
Entrainez-vous à coder en C et C++.
-
Apprenez le plus de choses possible sur le langage assembleur.
-
Suivez un cours de conception des systèmes d’exploitation.
-
Lisez de la documentation sur la plateforme de votre choix. Ce sera plus facile si vous optez pour un système d'exploitation de type Unix. Connaitre parfaitement le fonctionnement de la plateforme sur laquelle on travaille est fondamental.
-
Mettez en pratique vos connaissances. Commencez par créer de petits utilitaires pour le système. Vous pouvez, par exemple, essayer de :
- recréer des utilitaires déjà existants dans votre système,
- adapter des utilitaires existants sur un autre système d'exploitation pour qu'il fonctionne sur le vôtre.
-
Apprenez les langages dans un certain ordre. C'est le seul domaine de programmation dans lequel l'ordre d'apprentissage des langages a quelque importance. Commencez par le langage ANSI C (C++, C# , D et Java attendront). Plus tard, lancez-vous sur le C++.
- Donnez la priorité au langage C, car c'est celui qui va vous permettre de programmer un système d'exploitation qui repose sur les concepts suivants :
- la compilation totale du code source,
- les fichiers objet intermédiaires (bas niveau),
- l'édition de liens des fichiers binaires,
- les langages de bas niveau (langages machine et assembleurs). Pour certains programmeurs, le langage C est le plus abordable des assembleurs. Il sait se glisser au sein d'un autre langage, car il est uniquement procédural (comme tout langage assembleur).
Publicité - Donnez la priorité au langage C, car c'est celui qui va vous permettre de programmer un système d'exploitation qui repose sur les concepts suivants :
-
Abordons l'expertise informatique. Ceux qui en font partie constituent l'élite de la programmation, en cela qu'ils ne s'intéressent que peu à la programmation classique, mais travaillent dans certaines branches particulières, comme le chiffrement, l'établissement de nouveaux langages et la mise au point d'algorithmes pour l'exploration de données. Ils travaillent en amont. Inutile de vous dire qu'il faut un très bon bagage et de la pratique.
-
Un niveau maitrise ou doctorat en informatique est le minimum requis. Pour y arriver, vous pouvez :
- suivre des cours de niveau universitaire (cas le plus fréquent),
- vous inscrire à des cours dans certaines universités en tant que dispensé d'assiduité, ce qui vous permet d'étudier par vous-même, mais aussi de suivre quelques cours. On y arrive aussi avec de la volonté, mais la première voie, celle des cours suivis toute l'année, est plus facile.
-
Choisissez votre domaine de recherche en fonction de vos gouts. Plus il sera pointu, mieux ce sera. Voici quelques domaines de recherche très en vue en ce moment :
- la conception d'algorithmes (de recherche, de tri, chiffrement/déchiffrement, détection et parade des erreurs dans les transmissions de données),
- l'invention de nouveaux langages de programmation et de nouveaux compileurs, travail sur l'optimisation,
- l'intelligence artificielle (reconnaissance des formes ou vocale, traitement automatique du langage naturel, réseaux de neurones artificiels),
- la robotique,
- l'expertise informatique,
- la superinformatique,
- la conception (CAO) et la modélisation (MAO) assistées par ordinateur,
- la réalité virtuelle ou augmentée,
- l'infographie (souvent confondue, à tort, avec le graphisme ou le graphisme de l'interface graphique) qui est le domaine de la création et de la transformation d'images numériques assistée par ordinateur.
-
N'hésitez pas à passer des diplômes de troisième cycle (DEA, doctorat) !
-
Assez logiquement, vous devrez devenir incollable dans les techniques et les langages de programmation utilisés dans le domaine dont vous êtes spécialiste.Publicité
Conseils
- Quel que soit le type de programmation que vous souhaitez aborder ou le niveau que vous souhaitez atteindre, nous ne saurions trop vous conseiller de suivre des cours adaptés à vos envies et votre niveau. Ne vous laissez pas intimider ou abuser par les intitulés des cours (« Architecture du Web », « Protocoles de communication (niveau II) », etc.) Inscrivez-vous à des cours qui suivent une progression logique, adaptée au niveau de ceux qui s'y inscrivent. En cas de doute sur le contenu d'un cours, n'hésitez pas à prendre rendez-vous avec le responsable de l'enseignement pour voir en détail les thèmes qu'il va aborder dans l'année ou le semestre. Vous pouvez aussi lui demander si, au vu de votre niveau, vous pouvez suivre son enseignement.