Bonjour,
L'
informatique ? je suis tombé dedans quand j'étais petit...
euh, pas tout à fait quand même mais l'informatique (ou du moins la micro, accessible aux autodidactes, l'était). C'était au début des années 80 !!!
Commencer en BASIC sur un TRS-80 avec 16Ko de RAM (oui ! 16K tout compris) avec des noms de variables sur 1 ou 2 caractères, faire la chasse à l'octet perdu... vous fait prendre de bonnes habitudes.
Ensuite, j'ai évolué (avec beaucoup de temps, de lecture, d'essais et de ré-essais... bref de pratique) vers des langages de plus en plus intéressants en parallèle avec l'évolution de la puissance des machines.
La vitesse des processeurs et la taille de la mémoire (vive en gigaoctets) ou externe (en téraoctets) ont complètement changé l'approche du développement.
Actuellement, après avoir été Programmeur Système puis Analyste, (j'ai participé activement à la mise en place et au développement d'applications nationales), je termine ma carrière comme enseignant dans une Ecole Nationale d'un grand ministère...
Préalable
Avant de vouloir donner des conseils techniques, il faut se préoccuper de l'esprit de la personne concernée. Plusieurs articles font mention de la
motivation (++) et du
plaisir que l'on doit éprouver à développer (++++) car
développer c'est créer ! la programmation, comme la médecine dont je suis issu, est un art aussi bien qu'une science.
Il faut, pour réussir, avoir une "tournure d'esprit" qui soit logique (pas au sens matheux mais dans le sens commun du terme) c'est à dire :
des capacités d'analyse (chercher à comprendre ce qu'on a en face de soi ou ce que doit faire le projet en cours),
de diagnostic (pourquoi ça ne fonctionne pas comme je le voudrais?)
et de synthèse (maintenant que j'ai les matériaux, je peux commencer à construire) en expliquant pas à pas à la machine ce qu'elle doit faire.
En fait, il n'y a rien de plus bête qu'un ordinateur, il fera exactement (et très rapidement) tout ce qu'on lui dit de faire mais seulement ce qu'on lui dit de faire. Et si on lui dit de faire une bêtise, il la fera (ou il tentera de la faire...).
Sa seule intelligence lui vient des programmes écrits par ses concepteurs...
Pour bien débuter :
Comme l'ont souligné également plusieurs articles,
le crayon et le papier sont INDISPENSABLES avant de "se jeter sur le clavier"... Combien de fois ai-je vu des élèves lire rapidement l'énoncé d'un exercice ou d'un TP plus complexe et commencer à saisir du code, sans aucune réflexion d'ensemble préalable... et "se prendre la tête" à modifier cent fois leur code pour le faire correspondre à ce qu'ils n'avaient pas prévu...
10 minutes passées à crayonner un schéma, à prévoir l'architecture globale et à noter les choses à faire (je reste volontairement très vague et ne fais appel à aucune méthode ni langage)
font gagner des heures de débogage.
Pourquoi faire simple quand on peut faire compliqué ? vieil adage hérité (malheureusement) de certaines pratiques d'optimisation (?) du code, particulièrement en C où il était de bon ton de créer des instructions ultra-complexes ou de regrouper tout un programme dans une unique boucle for.
L'optimisation ne doit pas être un obstacle à la
maintenabilité. Vu la vitesse des processeurs actuels (et sauf à réaliser un programme qui doit fonctionner en temps réel bien sûr) qu'est-ce que quelques micro-secondes de plus en séparant un traitement en quelques instructions plus simples à relire et à comprendre, par rapport aux temps de réponse d'une page WEB (même avec le câble...) et surtout aux heures perdues lorsqu'on doit "remettre le nez" dans ce code (surtout si ce n'est pas vous qui l'avez écrit!)
Il faut donc favoriser la
lisibilité.
Commentez votre code :
En évitant, évidemment, des commentaires superflus ou non pertinents...
Quelque soit le langage utilisé :
commencez par écrire, en français (les pseudo-codes ne sont pas indispensables pour un débutant) ce que votre programme doit faire, mettez au clair la démarche employée (un peu d'algorithmique ne nuit pas...)
Saisissez votre démarche sous forme de commentaires dans votre code source
Insérez, entre les commentaires, les instructions du langage que vous avez choisi
Testez, testez, suivez pas à pas le déroulement du programme et les valeurs prises par les variables (il y a maintenant de très bons outils de débogage dans la quasi totalité des langage) et si vous n'avez pas d'outil à votre disposition, écrivez des messages dans un fichier de traçage...
Avantages :
1) votre programme a toutes les chances de fonctionner rapidement et sans erreur.
2) on n'a jamais le temps de revenir dans un source pour ajouter, après-coup, les commentaires nécessaires.
3) votre programme sera
lisible,
maintenable et
évolutif !
Comment progresser ?
Avant d'inventer la roue, commencer par
maîtriser (ou fabriquer) ses outils.
Pour cela, ne pas se lancer tout de suite dans des développements complexes, mais faire des "
test-cases" qui, en quelques lignes, mettent en oeuvre la fonction ou l'instruction que l'on veut comprendre et savoir utiliser au mieux. Un des intervenants parlait d'un jeu de LEGO : c'est tout à fait ça !
La curiosité est un vilain défaut SAUF chez les informaticiens
Bien entendu,
lisez beaucoup,
apprenez,
tenez-vous au courant des évolutions techniques et fonctionnelles des outils que vous utilisez, et n'oubliez pas de
commencer par la documentation officielle (la non lecture des modes d'emploi est un défaut bien français...)
Le choix du langage :
Le premier langage que vous allez utiliser dépend de votre parcours : secondaire, Fac, IUT... et, à moins d'en avoir été rebuté, il influencera vos préférences.
Faut-il commencer tout de suite par un langage orienté objet ?
Pas évident car, dans le coeur de vos classes, vous devrez programmer de façon structurée et claire... La POO est une surcouche dont le niveau d'abstraction n'est pas indispensable au début. (Pensez au LEGO : on construit d'abord des modèles simples avant de s'attaquer à des interactions entre modèles évolués)
Faut-il choisir un langage "de bas niveau" ?C, C++, c# et dans une moindre mesure JAVA
S'il est vrai que la prise en compte des allocations d'espaces mémoires et d'un typage fort des variables permet de mieux comprendre le fonctionnement interne de la machine, est-ce réellement indispensable dès le début ? Après tout, vous conduisez votre voiture sans être un dépanneur expert ni un constructeur de véhicules !
Les langages "évolués" accessibles (Basic pourquoi pas, mais maintenant PHP) le sont justement parce qu'ils libèrent le programmeur d'un grand nombre de contingences en leur permettant de se concentrer sur le fonctionnement lui-même et non sur son environnement technique.
Il sera toujours temps, si le sujet vous passionne ou si les besoins fonctionnels du projet le nécessitent, de se tourner vers un langage plus contraignant.
Conclusion :
Désolé d'avoir été si long, mais résumer en quelques lignes 30 années de pratique intensive (pro et perso) n'est pas chose facile.
Persévérez, soyez curieux, toujours à l'affût des évolutions, regardez le code des autres pour vous en inspirer (mais évitez le copier-coller bête et méchant, il ne correspondra que très rarement à votre projet personnalisé).
Prenez dès le début de bonnes habitudes (arborescence de votre projet ou de votre site, commentaires judicieux, indentation...)
et puis... pratiquez, pratiquez encore...
Bon courage et beaucoup de plaisir !!!
9 |
0 |