Télécharger l'article Télécharger l'article

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.

    • logique,
    • mathématiques discrètes,
    • langages de programmation (de préférence, C++ / Java/ Python à l'usage des débutants).
    CONSEIL D'EXPERT(E)

    Gene Linetsky, MS

    Fondateur de jeunes pousses et directeur en ingénierie
    Gene 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.
    Gene Linetsky, MS
    Fondateur de jeunes pousses et directeur en ingénierie

    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. »

  1. 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
  2. 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.
  3. Nous allons à présent passer en revue les différents types de programmation.
    Publicité
Méthode 1
Méthode 1 sur 6:

La programmation en environnement Web

Télécharger l'article
  1. 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 :
  2. 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).
  3. 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).
  4. Cela implique de savoir créer des schémas Web conceptuels, des plans de sites Web et des structures de navigation.
  5. Essayez de maitriser au moins un logiciel d’édition/manipulation d’images (c'est facultatif, mais fortement recommandé).
  6. 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.
  7. 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.
  8. 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.
  9. Explorez ses capacités au maximum. Ne passez pas au langage orienté serveur tant que vous n'avez pas compris le langage orienté machine !
  10. 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.
  11. Créez votre propre site et mettez-le en ligne.
    Publicité
Méthode 2
Méthode 2 sur 6:

La programmation d’applications de bureau

Télécharger l'article
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Pour mener à bien votre projet, vous devez apprendre au moins une des deux notations (ou langages) suivantes : UML ou ORM.
  6. 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.
  7. 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++).
    • Le paradigme orienté objet.
  8. 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.
  9. 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.
  10. 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).
  11. É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.
  12. Allez jusqu'au bout, en essayant d'appliquer toutes les techniques de programmation évènementielle que vous avez apprises.
  13. 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 !
  14. Après les avoir trouvés, apprenez les éléments visuels des paquets/bibliothèques, adaptés à vos langages de programmation.
  15. Cela vous sera d'une grande aide quand il faudra programmer les différents éléments de l'interface graphique.
  16. 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é
Méthode 3
Méthode 3 sur 6:

La programmation d’applications distribuées

Télécharger l'article
  1. 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.
  2. 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.
  3. Familiarisez-vous avec les éléments matériels composant un réseau, comme les concentrateurs (« hubs »), les commutateurs (« switches ») et les routeurs.
  4. 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.
  5. 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.
  6. 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.
  7. Apprenez à établir ces communications. Il existe des scripts complexes, mais la maitrise de scripts simples sera suffisante à ce stade.
  8. 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.
  9. É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.
  10. Vous pouvez étudier dans les livres, en ligne ou à l'université. Comprendre la composition des applications distribuées est un minimum nécessaire.
  11. Apprenez-en un peu plus sur l'élaboration des composants et des services qui s'appuient sur le langage de programmation de votre choix.
  12. 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 :
    Publicité
Méthode 4
Méthode 4 sur 6:

La programmation en bibliothèque/plateforme/structure logicielle/noyau

Télécharger l'article
  1. 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.
  2. 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.
  3. Les programmeurs de bibliothèques maitrisent souvent l'un des deux, ou les deux.
  4. Suivez des cours de génie logiciel .
  5. 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.
  6. Apprenez-en le plus possible sur les différents systèmes d'exploitation et sur les structures logicielles tournant sur ces plateformes.
  7. Vous devez connaitre beaucoup de choses sur les structures logicielles, les langages de programmation et les technologies qui transcendent les plateformes.
  8. Si les langages de programmation que vous avez appris sont standardisés ( ANSI / ISO / IEEE / W3C ), ne sortez pas des clous ! Appliquez ces standards, tout le temps, même s'ils sont contraignants. Il en va du bon fonctionnement de votre programmation.
  9. 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.
  10. 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.
    • 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é
Méthode 5
Méthode 5 sur 6:

La programmation système

Télécharger l'article
  1. 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 !
  2. 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.
  3. 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.
  4. Accordez une attention particulière aux bibliothèques STL (« Standard Template Library ») et ATL (« Active Template Library »).
  5. 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.
  6. 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.
  7. 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.
  8. 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é
Méthode 6
Méthode 6 sur 6:

L'expertise informatique

Télécharger l'article
  1. 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.
  2. 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.
  3. 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.
  4. 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.
Publicité

À propos de ce wikiHow

Cette page a été consultée 71 299 fois.

Cet article vous a-t-il été utile ?

Publicité