La programmation

L’une des premières chose à regarder pour devenir plus efficace est la programmation.  Tout le monde sait qu’elle est la pierre angulaire du domaine informatique.  Les langages de programmation ont évolués et sont devenus de plus en plus puissants au fur et à mesure que la technologie le permettait.

Lors de mes premiers cours de programmation au collège, on ne commençait pas directement à écrire « du code » dans un langage machine, mais on faisait des algorithmes.

C’est quoi un algorithme ?  C’est comme une recette de cuisine qui explique étape par étape ce qui doit être réalisé. Par exemple :

Afficher « Entrez une valeur : »
Enregistrer la valeur dans X

Si X est pair
       Afficher « Le nombre entré est pair »
Sinon
       Afficher « Le nombre entré est impair » 
Fin SI

Cet exemple est minimaliste, mais il démontre bien ce qu’est un algorithme :)  Il permet de créer, de planifier et d’organiser le code, et ce, peu importe (ou presque) le langage qui sera utilisé.

En programmation, le plus important est de trouver un algorithme qui va faire exactement ce que l’on veut.  C’est important de réfléchir avant de coder, sinon les probabilités de devoir recommencer sont plus fortes.

Lorsque vient le temps de coder, le plus important est que l’utilisateur soit à l’aise avec le langage qu’il choisit.  Ils ont tous leurs avantages et leur inconvénients.  Certains doivent être compilés, d’autres non.  Certains fonctionnent uniquement sur certains systèmes d’exploitation. À vous de choisir en fonction de vos besoins.

Mon langage de prédilection est le PHP.  Il roule sur presque tous les OS, il n’a pas besoin d’être compilé et il a de nombreuses extensions qui donnent beaucoup de flexibilités.  Bien sur, il n’est pas le plus sécuritaire, mais puisque je m’en sert comme outil de travail, il rempli parfaitement son rôle.  Par exemple : utiliser un fichier de données pour générer à la demande et à la vitesse de l’éclair une centaine de fichiers de configuration, ça fait la job…

En plus du PHP, je dois souvent faire du Visual Basic pour application (VBA), souvent appelé « macro » dans ce monde Microsoft.  On ne se le cachera pas, la suite office est très utilisées et plutôt puissante, surtout conjuguée avec les macros qui apportent une flexibilité très intéressante.  Par exemple : connecter Excel à une base de données pour aller chercher des données brutes et les analyser dans un tableau croisé dynamique est très efficace, surtout quand on nous demande des statistiques mensuelles et que manuellement, ça prend un temps fou :)

Ce qu’il faut savoir sur les langages de programmation est qu’ils ont, pour la majorité, bien des choses en commun.

  • Ils utilisent tous des variables.  On crée une variable (espace en mémoire) et on y met quelque chose dedans.
  • Ils ont tous des instructions de contrôle pour faire des comparaisons, des choix ou des boucles.
  • On peut créer des fonctions.  Une fonction est un bout de code avec une tâche bien précise à réaliser.  En créant une fonction avec ce bout de code, tout ce que l’on a à faire pour l’exécuter est d’appeler la fonction.

En gros, il n’est pas totalement faux de dire que de connaitre la programmation dans un langage ou dans un autre, il y a peu de différences.  La logique en arrière du code prime d’abord et avant tout.

Dans mon prochain article, j’aborderai les bases de la programmation.

La connaissance générale, un outil efficace

L’une des caractéristiques du domaine des TI est qu’il est très vaste.  Il se découpe en plusieurs domaines : matériels, systèmes d’exploitation, logiciel, réseaux, bases de données, Internet, sécurité de l’information et j’en oublie surement.  Bien sur, tous ces domaines vivent en symbiose puisque l’un ne vivrait pas sans l’autre.

Ce n’est pas pour rien que la formation donnée dans les programmes des TI touche à plusieurs de ses domaines.  Lors de ma formation en informatique de gestion au collège, j’ai touché à la programmation, aux bases de données, à la réseautique, aux systèmes d’exploitation, etc.  Je sais aussi que les formations axées réseaux introduisent des notions de programmation, des systèmes d’exploitations et surement d’autres.

Cette connaissance générale est très importante puisqu’elle permet de mieux comprendre comment toutes ces technologies interagissent entre elles.  Je ne veux pas dire par là qu’il ne faut pas se spécialiser dans un domaine précis, mais bien que d’avoir une connaissance générale bien établie est un outil important pour améliorer son efficacité.

L’un des premiers domaines à maitriser est bien sur son domaine de spécialité.  Il faut bien commencer à quelque part, non ?!?  Tout le monde s’attend à ce qu’un spécialise en télécommunication connaisse comment un routeur et un commutateur fonctionne.  Mais s’il ne connait que ça ?  Sera-t-il vraiment un atout important pour l’entreprise qui l’engage ?

Prenons l’exemple suivant : Jean est un technicien réseaux qui est très spécialisé.  Il ne connait que ça.  Son collègue, Luc, est aussi technicien réseaux, mais détient une connaissance générale plus complète.  Un projet en cours requiert que 80 nouveaux commutateurs soient configurés puisqu’il faut changer les vieux équipements.  Une configuration, basée sur le standard de sécurité qu’un architecte réseau à décidé, doit être la même sur tous les nouveaux équipements, sauf les informations qui personnalisent l’équipement (adresse réseau, masque de sous réseau, passerelle, nom, mot de passe administrateur, etc).  Jean a le réflexe d’installer tous les équipements manuellement.  Ce type de procédé peut être long et les probabilités d’erreurs sont grandes.  Luc, lui, tente une autre approche.  Il crée un petit programme qui, à l’aide d’une base de donnée rudimentaire (fichier csv), va générer les fichiers de configuration pour tous les équipements à l’aide d’une configuration modèle.  Lors de l’installation du premier équipement, il s’assure que le fichier de configuration généré par son programme fonctionne bien.  Il peut même apporter des corrections au modèle et régénérer les autres configurations pour apporter des corrections.  Ainsi, tout ce dont il a à faire pour les autres équipements est d’y installer la configuration générée par son programme.  De plus, Luc a fait en sorte que son programme soit réutilisable pour d’autres besoins et le rend disponible à ses collègues.

Selon vous, quelle est la méthode la plus efficace ?  Lequel des deux techniciens s’en est le mieux tiré ?  Lequel des deux techniciens risque de se démarquer à long terme ?

Tout est dans cet exemple.  Depuis que je suis sur le marché du travail, j’ai vu des Jean et des Luc.  J’ai vu des gens se démarquer et avancer rapidement dans la profession.

Le but de ce blogue est de partager avec les lecteurs des trucs, des idées, des exemples pour devenir plus efficace.  Selon moi, la connaissance générale est un des meilleurs outils pour se démarquer.  Elle s’acquière souvent par essais et erreurs, mais lorsqu’on réussi, c’est une corde de plus à son arc.

Il faut parfois juste se poser la bonne question : comment pourrais-je le faire pour que ce soit rapide et juste ?  Si la réponse vous force à aller en dehors des sentiers battus, alors foncez !

Hello world!

Bienvenue sur mon blogue tout neuf !

Quoi de mieux comme premier article que ce bon vieux Hello world!

Le but principal de ce blogue est d’apporter des idées, basées sur mon expérience, pour améliorer la productivité des personnes oeuvrant dans le domaine des technologies de l’information.

Au cours des années, j’ai remarqué que la formation que j’ai reçue au collège et à l’université m’a permise d’avancer très rapidement dans le domaines des TI simplement en utilisant et en maximisant tout ce dont j’y ai appris.  Bien que je travaille principalement en sécurité de l’information, mes connaissances en programmation, en base de données, en systèmes d’exploitation et bien d’autres m’ont été très utiles pour progresser dans ce monde où la rapidité d’exécution, la rigueur et la justesse sont importants.

Ainsi commence cette palpitante aventure du blogue.

Au plaisir de lire vos commentaires :)

Jonathan Lebel, nouveau blogueur.