lundi 28 septembre 2009

Étudiants en informatique, préparez votre entrée sur le marché du travail

Régulièrement, des étudiants me demandent comment va se passer pour eux l'insertion dans le monde professionnel, à la fin de leurs études. Ma réponse habituelle est « ça dépend », car de nombreux facteurs entrent en jeu : domaines de compétences, technologies actuelles, tendances stratégiques, secteurs ciblés, etc. Mais il est possible d'identifier des éléments universels.

Définir un positionnement

Je recommande vivement à mes élèves de disposer de deux axes forts avec quelques à-côtés. L'idée est de ne pas être un spécialiste poussé dans une seule technologie (qui sera obsolète en cinq ans), mais de se positionner comme un expert de son domaine, avec des compétences d'ouverture.

Le positionnement permet à un recruteur de cerner aisément le profil de l'informaticien, ce qui n'est pas rien quand il s'agit de décrypter des acronymes barbares. Ainsi, on peut songer aux domaines suivants :

  • développement : planification, cahier des charges, génie logiciel, programmation, déboguage
  • base de données : conception, utilisation, optimisation
  • modélisation : collecte d'informations, analyse, transfert vers l'applicatif, adaptation, validation
  • réseau & télécommunication : technologie, topologie, routage, conception, déploiement, liaison
  • humain & social : interaction homme-machine, ergonomie, enseignement, handicap
  • management : conception de projet, conduite de projet, comptabilité, gestion d'entreprise, veille

Maitriser la base

Quelque soit sa spécialité, un informaticien doit être capable de maitriser plusieurs fondamentaux qui sont requis partout :

  • un langage de programmation moderne : objective-c, java, ruby… Le but est d'être en mesure de développer du début à la fin une application graphique.
  • une technologie web actuelle : service web, AJAX, RIA. Le web est de nos jours une plate-forme incontournable.
  • administrer un système d'exploitation : et ce correctement ! Que ce soit un système UNIX ou Windows, vous devez être capable de gérer complètement votre machine principale.
  • connaitre les principaux algorithmes : tri, recherche, parcours, etc. Si ça fait parti de la grande littérature, vous devez avoir une idée de ce que c'est et de comment l'utiliser.

Être familier avec l'inévitable

Qu'on les apprécie ou non, certaines choses sont inévitables : les examens de fin d'année, la visite annuelle chez le dentiste, et :

  • la ligne de commande sur les systèmes UNIX : vous serez nécessairement amené un jour à travailler à distance sur un serveur. Que ce soit pour réparer un site web, déployer une application ou encore partager des fichiers, vous ne pouvez échapper à la ligne de commande des systèmes UNIX (MacOS, GNU/linux, *BSD, etc)
  • la conception de sites web simples, à la main et avec un framework (Drupal, SPIP, Dotclear, WordPress, etc) : mettre en place et maintenir un site web est une activité récurrente : informer ses clients, communiquer sur un évènement, ou encore soutenir un projet. Ne pas être capable de faire une page web, c'est comme ne pas savoir nager lors d'une sortie à la piscine : autant rester chez soi.
  • la recherche d'information : développez votre google-fu. Car ce qui compte n'est pas de disposer de l'information, mais de savoir se la procurer.

À faire absolument

  • créer son profile dans les réseaux sociaux du moment : LinkedIn, FaceBook, twitter
  • préparer, et maintenir à jour, plusieurs CV : orientés compétences, réalisations
  • déployer, et maintenir à jour, un site web personnel : le but est d'exister sur internet Informations standards, liens vers CV, publications, projets passés et actuels, profiles de plate-formes sociales…
  • participer à un projet de logiciel libre : permet de se faire de l'expérience, et démontre sa capacité à travailler en autonomie, en équipe et à distance

mercredi 17 juin 2009

Collection d'extensions pour Firefox ayant pour but de renforcer sa vie privée sur le web

La fondation Mozilla propose désormais aux utilisateurs de créer, partager et de collaborer sur des « collections ». Une collection est un ensemble d'extensions, de thèmes et de greffons qui étendent les fonctionnalités d'un logiciel; dans notre cas, il s'agit du navigateur web Firefox mais cela concerne également Thunderbird.

Pour utiliser les collections, il est au préalable nécessaire d'équiper Firefox de l'extension Add-on Collector.

La collection « Protection Vie Privée »

J'ai créé une collection dédiée à la protection de la vie privée sur le web, qui contient les extensions suivantes :

  1. Get jetable mail : Permet de générer à la volée des alias mail qui expirent automatiquement.
  2. CustomizeGoogle : Permet de filtrer les publicités et cookies de Google.
  3. Torbutton : Permet de basculer simplement sur TOR+privoxy durant la navigation web. Aide à la configuration de Firefox pour une navigation protégée.
  4. BetterPrivacy : Permet la gestion des cookies de Flash, autrement inaccessibles.
  5. Adblock Plus : Permet de filtrer les publicités, soit directement, soit en s'abonnant à des listes de règles prédéfinies.
  6. Adblock Plus: Element Hiding Helper : Permet d'ajouter simplement des filtres à la liste d'Adblock Plus, en créant des règles optimisées.
  7. BugMeNot : Permet la navigation anonyme sur des sites demandant une identification.
  8. FoxyProxy : Permet de passer automatiquement par des proxies prédéfinis par listes ou motifs lors de la navigation web.
  9. User Agent Switcher : Permet de changer à la volée l'identification de votre navigateur web.

Le but de cette collection « Protection Vie Privée » est d'apporter à l'utilisateur un ensemble cohérent d'outils, simples à utiliser, qui lui permettrons de protéger sa vie privée durant son utilisation du web : filtrage des cookies insidieux, des publicités envahissantes (et traçant les profils), gestion automatique des proxies, email jetable contre le SPAM, etc.

Un avantage secondaire des collections est la simplicité pour déployer des configurations standards: en installant une collection contenant les extensions à utiliser, on diminue le nombre de manipulations à faire, et la mise à jour de chaque élément est automatisée via l'administrateur de la collection qui décide quelle version employer.

Je discute avec des utilisateurs a priori avancés dans l'utilisation du web sur les forums Ubuntu-fr afin d'obtenir des retours sur cette collection orientée grand public.

Retours sur la collection « Protection Vie Privée »

La principale remarque est l'absence de l'extension NoScript.

C'est une remarque intéressante, qui s'inscrit dans un contexte plus large. Il y a plusieurs discussions sérieuses sur la pertinence ou non de mettre l'utilisateur grand public sur un Firefox avec NoScript. Cela va plus loin que le simple fait de « bloquer la publicité » ou de « protéger l'utilisateur ». J'expose ici simplement les 4 arguments majeurs qui soutiennent que NoScript n'est pas adapté au grand public :

  1. Impact d'usage. L'extension a un impact très fort sur le web. Énormément de sites populaires s'appuient sur des scripts pour construire leurs interfaces dynamiques. Bloquer ces scripts revient alors à fortement dégrader l'expérience de l'utilisateur sur ce genre de site;
  2. Utilisation contraignante. Il faut identifier puis catégoriser les sites web et les scripts qu'ils comportent. C'est un processus long, complexe et agaçant pour l'utilisateur qui est engagé dans une simple démarche d'utilisation;
  3. Efficacité contestée. Le renforcement de la sécurité est fortement contestable, car sans démarche active il est difficile de proposer une couverture fiable des techniques d'attaque. À moins de désactiver entièrement les scripts, mais là on retombe sur le point 1;
  4. Fonctionnalités déjà disponibles. Adblock Plus permet le blocage des scripts externes (et aussi internes, mais moins facilement) aux pages. Via les listes d'inscription, un filtrage des scripts publicitaires est déjà mis en place pour l'utilisateur.

Bonus : la collection « Utilisation courante du web »

J'ai également créé une collection Utilisation courante du web qui apporte un ensemble d'extensions utiles au quotidien pour la navigation web. On peut considérer cette collection comme un « kit de base » permettant une utilisation confortable du web.