Archives pour la catégorie Divers

Un MOOC sur la « Fantasy »

J’aime beaucoup le principe des MOOCs. Ce système permet de se former à son rythme, à distance, avec des horaires généralement plutôt compatibles avec une vie de famille puisque l’on travaille un peu quand on veut (ce qui ne veut pas dire que l’on peut ne rien faire ;-)). J’ai suivi depuis quelques années plusieurs MOOCs, la plupart en lien avec l’informatique. J’ai commencé par le tout premier mis en ligne par OpenClassRooms.com (anciennement le site du Zéro) sur le développement de sites web avec HTML5 et CSS3. Je parlais d’ailleurs de mon expérience dans cet article.

Aujourd’hui, pour changer, je ne vais pas parler informatique, mais d’un MOOC que j’ai suivi il y a à peu près un an, dont le sujet était la « Fantasy ». On parle ici du genre littéraire et médiatique, pas de « fantaisie ». 🙂 Que l’on aime ou pas, tout le monde de nos jours est capable de citer une œuvre de fantasy : Harry Potter, Le Seigneur des Anneaux, Game of Thrones

Précisons tout d’abord que ce MOOC en français est hébergé par la plateforme FUN (France Université Numérique) et proposé par l’université d’Artois. Le titre complet de la formation est « Fantasy, de l’Angleterre victorienne au Trône de Fer« . Tout un programme.

Le programme est réparti sur cinq semaines et est plutôt fourni, avec des intervenants de qualité. Le cours est divisé en modules composés chacun d’un cours en vidéo, de sa transcription en texte, de la bande son indépendante (de cette façon, on peut vraiment choisir son format pour travailler), de repères littéraires et d’un forum pour dialoguer avec les autres participants et les enseignants. Chaque module peut être validé par un QCM et des exercices d’appariement (faire correspondre des ouvrages avec des styles, des titres, des couvertures… en rapport avec le module). Des activités corrigées par les pairs sont proposées pour ceux qui le souhaitent. Les thèmes abordés sont variés avec l’histoire de la Fantasy, des origines à nos jours, avec les mythes fondateurs, les médias, les jeux de rôle, la littérature actuelle… Je n’en cite ici que quelques-uns, et pas forcément dans l’ordre d’apparition.

L’équipe pédagogique est composée de :

  • Anne Besson, maître de conférences en Littérature générale et comparée à l’université d’Artois (Arras). Elle est spécialisée dans la littérature de genre.
  • Isabelle-Rachel Casta, enseignant-chercheur à l’université d’Artois. Elle est spécialisée dans les littératures noire, criminelle et fantastique.
  • Isabelle Olivier, agrégée de Lettres Modernes, maître de conférence à l’université d’Artois, auteure d’une thèse sur la littérature arthurienne sous un angle anthropologique et mythologique.
  • Emmanuelle Poulain-Gautret, agrégée de Lettres Modernes, maître de conférences en langue et littératures médiévales à l’université de Lille 3. Elle est spécialisée dans l’épopée médiévale, la chanson de geste.
  • Myriam White-Le Goff, agrégée de Lettres Modernes, maître de conférences en langue et littératures médiévales à l’université d’Artois.

Ne vous laissez pas impressionner par les qualifications de l’équipe pédagogique, elles ont su se mettre au niveau de leurs interlocuteurs afin de rendre les cours tout à fait accessibles.

J’ai pris énormément de plaisir, tout d’abord à en apprendre plus sur un genre littéraire (entre autre chose) que j’aime particulièrement, et ensuite à toucher du bout du doigt sur ce qui se cache derrière ce terme de « fantasy » (on y trouve bien plus de choses que ce que l’on pourrait penser).

L’an dernier, le même parcours était proposé à tous les participants. Il semblerait cette année que trois parcours soient disponibles, en fonction du temps et de l’engagement que chacun pourra mettre dans le suivi de ce MOOC. Les parcours « Hobbit », « Elfe » et « Mage » permettront d’aller de plus en plus loin en fonction des envies et des disponibilités de chacun. L’équipe a donc visiblement pris en compte les remarques (positives et négatives) des participants de la première édition afin d’améliorer encore le cours, ce qui est une bonne chose, et qui me donne envie de m’y inscrire de nouveau cette année afin de pouvoir profiter des nouveautés ! 🙂

Quelques mots sur la plateforme FUN en elle-même… Que dire si ce n’est qu’il s’agit d’une plateforme de e-learning tout à fait opérationnelle et simple d’emploi. Il est possible d’y suivre ses modules, sa progression, de visualiser les différents supports et de communiquer avec les autres participants, comme avec l’équipe pédagogique (assez présente durant le MOOC). Le seul bémol pour moi est le moteur de forum utilisé, absolument pas pratique. Il n’était pas toujours facile de suivre une discussion, principalement à cause de la présentation des messages (pas d’arborescence claire message/réponse). A part ça, je suis prêt à suivre de nouveau un cours sur FUN si l’occasion se représente (le cours Fantasy peut-être  ? ;-)).

Pourquoi en parler si longtemps après ? Tout d’abord, parce qu’à force de laisser traîner les choses, je ne prends le temps d’écrire un article que maintenant (j’ai hésité d’ailleurs, parce que le sujet du MOOC s’éloigne un peu du sujet de ce blog… mais après tout, ça permet de faire connaître une plateforme de MOOC française, alors pourquoi pas). Ensuite, seconde bonne raison, une nouvelle édition de ce MOOC est prévue et commence le 2 février 2016. Attention, les inscriptions sont ouvertes jusqu’au 15 mars 2016 (cela permet aux retardataires de s’inscrire tout de même et de rattraper le temps perdu). Passé ce délai, il faudra de nouveau attendre un an (vu la qualité des supports et l’intérêt du sujet, nul doute qu’il y aura au moins une édition par an).

Le MOOC « Fantasy » sur les réseaux sociaux :

Baromètre des salaires du PHP 2015

Je parlais de la deuxième édition du baromètre des salaires publiée en 2014, dans cet article.

Pour la troisième édition, l’AFUP s’associe avec Human Coders, centre de formation pour développeurs. Pour la première fois, le questionnaire n’est pas réservé aux développeurs PHP, mais est ouvert aux autres spécialités. L’objectif est entre autre de déterminer à partir des réponses qui seront envoyées quelles spécialités sont les mieux rémunérées, dans quel type d’entreprise et sous quelle forme.

Le questionnaire est assez court, une vingtaine de questions dont dix obligatoires, et il ne faut donc pas beaucoup de temps pour y répondre. Elles concernent la rémunération, l’employeur, le poste occupé et les spécialisations. Les réponses sont complètement anonymes.

Rendez-vous donc sur le site du baromètre AFUP, et répondez aux questions ! Plus vous serez nombreux et plus les résultats seront fiables et exploitables.

Les résultats du baromètre 2015 seront communiquées en novembre.

Baromètre AFUP / Agence-e des salaires de l’écosystème PHP en France

En 2014, l’Association Française des Utilisateurs de PHP (AFUP) et l’Agence-e (cabinet de recrutement spécialisé) s’étaient associés pour mettre en place le baromètre AFUP – Agence-e des salaires de l’écosystème PHP en France. Un questionnaire avait été mis en place afin d’obtenir des informations sur les personnes travaillant dans tous les domaines liés à PHP (localisation géographique, types de société et de contrat de travail, conditions de travail, rémunération, avantages, ancienneté…) et l’agrégation et l’analyse de ses données ont donné pour résultat ce fameux baromètre des salaires.

En 2015, l’AFUP et l’Agence-e récidivent ! En obtenant 25 % de réponses supplémentaires par rapport à l’année précédente, soit 1635 participants, nous pouvons déjà dire que c’est un succès.

L’objectif de ce baromètre est de répondre à un certain nombre de questions que nous nous posons tous : où se situe mon salaire par rapport à la moyenne, dans quels secteurs trouve-t-on les meilleures rémunérations, quelle spécialisation est la plus susceptible de m’aider à faire évoluer mon salaire ?…

La grande nouveauté cette année est que les résultats sont différenciés en fonction de la localisation géographique des participants, ce qui manquait l’an dernier et qui peut être très utile pour un recrutement ou pour une candidature.

Comment lire le baromètre ?

Toutes les rémunérations évoquées dans le baromètre s’entendent hors avantages et avantages en nature. Ne sont donc pas pris en compte les tickets restaurants, les mutuelles d’entreprises, les voitures de fonction ou de service, les téléphones mobiles… Seuls sont considérés les salaires bruts annuels de base et les salaires bruts variables annuels. La médiane des valeurs a été utilisées plutôt que la moyenne, de façon à lisser les effets des salaires les plus élevés et des plus bas.

Dans la mesure où il existe de grands écarts de rémunération pour un même poste, entre l’Île de France et la province, l’étude différencie ces deux cas.

Des réponses provenant de toute la France

Si des réponses sont parvenues de la France entière, un certaines régions ou villes concentrent tout de même un grand nombre des 1635 participants : Paris / Île de France (598), la région lyonnaise (205), la région Nord (155), la région nantaise (113) et enfin la région Marseillaise (109).

Qui a répondu ?

Une majorité de développeurs PHP ont répondu, suivis de « lead » développeurs et de chefs de projets. Les autres fonctions représentées sont les architectes, les consultants, les cadres responsables et chefs d’équipe et les cadres dirigeants. La majorité des participants ont entre 2 et 10 ans d’expérience et ont obtenu une licence, un BTS ou un DUT, ou un niveau Master 2.

Quels départements paient le mieux ?

En Île de France, trois départements tirent les salaires vers le haut : les Yvelines, Paris (oui, en second) et les Hauts de Seine. En province, ce sont les régions PACA, Rhône-Alpes et Nord-Pas-de-Calais, qui correspondent également aux régions les plus peuplées.

En résumé

Je ne vais pas détailler l’ensemble des résultats ici. Le mieux est naturellement que vous lisiez par vous-même l’étude (ça se lit vite, environ 45 pages, et on y trouve beaucoup d’informations qui peuvent être utiles).

Certains résultats ne surprennent pas. Les salaires en Île de France sont plus élevés qu’en province et progressent plus vite. Plus le salarié gagne en expérience et plus l’écart se creuse. Par contre, quelle que soit la localisation géographique, il est courant que le salaire comprenne une partie variable, mais celle-ci ne représente qu’entre 5 et 8% de la rémunération globale.

Les questions concernant la satisfaction des salariés nous apprennent que plus de 40% des franciliens estiment leur rémunération suffisante mais que la tendance s’inverse nettement en province : 40% des salariés de province s’estiment mal ou très mal payés. Ce sentiment est encore plus répandu parmi les jeunes diplômés.

En Île de France, le secteur d’activité qui paie le mieux est sans aucun doute l’édition de logiciel. Viennent ensuite les startups, les agences de communication, la presse et les médias et les SSII. En province, il s’agit plutôt de la presse et des médias, les services informatiques d’un client final et l’édition.

Une forte progression du framework Symfony en Île de France et de Zend Framework en province

Si en début de carrière les écarts sont négligeables, ils se creusent rapidement avec l’expérience entre les développeurs spécialisés sur un framework ou un CMS reconnu et ceux n’ayant aucune spécialisation particulière.

En Île de France, on note une augmentation importante des rémunérations autour du framework Symfony, sans aucun doute due au fait que la demande de compétences pour ce framework est forte. Concernant les CMS, ce sont les spécialistes Drupal qui sont les mieux rémunérés. En province, la situation est un peu différente. C’est le Zend Framework qui a l’avantage.

La formation sans incidence sur l’évolution du salaire

Environ 29% des participants à l’étude ont suivi une formation dans l’année, mais elle n’a débouché sur une augmentation de salaire que dans 23% des cas. Le salarié augmente donc ses compétences et sa performance mais cela n’a pas d’incidence directe sur sa rémunération.

Quelle motivation ?

Si la qualité et la technicité des projets sont citées en priorité pour les motivations qui poussent à accepter un poste, la rémunération, l’ambiance dans l’entreprise en font également partie. La qualité de vie est également privilégiée en province.

Les atouts du langage PHP

Les participants ont également dû répondre à des questions concernant les atouts de PHP. Plus d’une personne sur deux déclare que la grande force de PHP est son écosystème, avec une grande implication de la communauté dans l’évolution du langage et des outils associés. Les performances ne semblent pas en revanche être un atout. L’étude montre aussi que la vision du langage évolue avec le temps. Si pour un débutant, la facilité d’utilisation de PHP est cité comme un atout, ce n’est plus le cas avec les développeurs ayant plus de deux ans d’expérience.

Conclusion

J’ai essayé ici de vous donner une vision globale de ce que l’on trouve dans le baromètre des salaires, mais ce n’est naturellement pas exhaustif. Je vous encourage vivement à télécharger et à lire le document dans son intégralité. Vous y trouverez sans aucun doute un grand nombre de choses intéressantes. Cette étude pourra vous aider, pourquoi pas, à choisir dans quel sens faire évoluer votre carrière, à situer votre salaire par rapport aux valeurs médianes…

Et surtout, n’hésitez pas à répondre au questionnaire lors de la prochaine édition. Plus le nombre de participants sera important, et plus la synthèse des informations sera fiable.

Le baromètre des salaires est accessible gratuitement ici.

Un an déjà ! :-)

Déjà un an, jour pour jour, que j’ai commencé ce blog sans prétention ! L’heure est donc à un premier bilan.

Si j’y consacre moins de temps que je le souhaiterais, j’essaie de publier assez régulièrement, et si possible du contenu intéressant (mais je suis mal placé pour en juger ;-)). Et surtout, je prend toujours autant de plaisir à écrire, même si j’aimerais trouver le temps de publier plus d’articles purement techniques.

A l’origine, je pensais que ce blog contiendrait exclusivement du contenu technique. Mais finalement, j’essaie de vous faire partager toutes les expériences et compétences que je juge intéressantes, toujours en rapport avec le développement web et le PHP naturellement.

Même si ça reste très modeste, ce blog a connu à ce jour 5441 visites, pour 3073 visiteurs uniques. J’en suis très content, n’ayant eu que des retours positifs et des contacts professionnels pour la plupart, intéressants. 22 articles ont été publiés, soit presque deux par mois, alors que j’espérais partir sur un rythme de un par mois.

J’ai été un peu surpris également de constater que mes visiteurs proviennent de France (en grande majorité quand même), mais aussi de Belgique, de Suisse, du Maroc, de Tunisie, d’Algérie, de Madagascar, de Côte d’Ivoire, du Canada et des États-Unis. Je pense que ce n’est pas sans rapport avec mes participations aux MOOCs d’OpenClassrooms et des comptes-rendus que j’en ai publié, un certain nombre de participants venant de ces pays.

J’espère continuer encore longtemps à vous faire partager mon modeste expérience !

Ne sachant pas encore si j’aurai le temps de publier durant les fêtes de fin d’année (les vacances, ce n’est pas que pour les enfants ;-)), je vous souhaite à tous un peu en avance de bonnes fêtes de fin d’année.

Bon anniversaire le blog ! 🙂

 

Forum PHP 2014, jour 2

Ouf, presque un mois s’est écoulé depuis que j’ai publié mon compte-rendu de la première journée du Forum PHP 2014

Voici donc (enfin) mes impressions sur le déroulement de cette seconde journée.

Je passe rapidement sur la qualité de l’accueil, de l’organisation et les différents sponsors qui sont les mêmes que la veille. La description du premier jour est ici.

« Frameworks, a history of violence », François Zaninotto

François Zaninotto nous a gratifié d’une performance… inoubliable !

Sur le fond, sa présentation de l’évolution des frameworks au cours des âges était tout à fait intéressante. Il semble que l’avenir soit plus aux micro-frameworks qu’aux grosses machines de guerre. Les applications demandent de plus en plus de développement, se complexifient, mais elles peuvent généralement être découpées en plusieurs petites applications, pouvant chacune utiliser un micro-framework très spécialisé, et par conséquent très efficace, se concentrant sur l’essentiel.

Les frameworks « full-stack » pallient parfois à des lacunes du langage en attendant qu’il évolue, mais ils évoluent aussi moins vite, car ils sont beaucoup utilisés et que les changements ne doivent pas, dans la mesure du possible, casser la rétro compatibilité du code.

Pour essayer de résumer ses propos (que j’espère ne pas trop trahir) :

  1. Il faut se concentrer avant tout sur le domaine : l’application doit être structurée par le modèle métier, et pas par le framework.
  2. L’utilisation des micro-frameworks va se répandre de plus en plus, car ils sont plus souples et évolutifs.
  3. Il ne faut pas hésiter à métisser les langages et les frameworks, afin de tirer le meilleur de chacun d’eux.
  4. Il est impératif de nos jours de connaître plus de langages et de frameworks et de ne pas s’enfermer dans une seule technologie : la formation continue prend alors tout son sens, et il faut que les entreprises fassent cet effort.

François, en très grande forme, a structuré son propos autour d’un discours de candidat de parti politique : le parti de l’Innovation ! Les traits d’humour et les clins d’œils ont rendu cette présentation plus qu’agréable à écouter !

La vidéo est ici.

« Développement rapide avec Symfony et un modèle de contenu », Bertrand Dunogier

Le contenu sur le web évolue et devient de plus en plus complexe. Les CMS (Content Management System ou Système de Gestion de Contenu) se transforment rapidement en usine à gaz quand on commence à les adapter à des besoins spécifiques, qui sont parfois à la limite de leurs possibilités.

Symfony2 (mais également d’autres frameworks modernes centrés autour de HTTP) répond en partie à ce problème.

Le contenu est :

  • complexe,
  • versionné,
  • sécurisé,
  • flexible,
  • sémantique,
  • internationalisé.

Le framework doit s’intégrer et non s’imposer (on rejoint un peu ici les propos tenus dans la conférence de François Zaninotto), et ne pas tout réinventer : il fait partie d’un tout et n’est pas une fin en soi. L’important, c’est le contenu.

On passe donc maintenant d’un CMS à un CMF : Content Management Framework, ou Framework de gestion de contenu.

Bertrand Dunogier nous a donc présenté les composants eZ Publish Platform, basés sur Symfony2, et comment ils peuvent aider les développeurs à se concentrer sur la logique métier du projet.

La vidéo est ici.

Eh oui, c’est tout. Je n’ai malheureusement pu assister qu’à ces deux conférences lors du second jour. Des impératifs professionnels m’ont obligés à rentrer plus tôt que prévu et j’ai dû faire l’impasse sur l’après midi.

Un point positif, cette année, j’ai pu tester les « cliniques » présentes sur les stands des sponsors. Merci notamment à Zend pour leur accueil, à Blablacar pour leur service que j’ai été amené à utiliser dans les semaines qui ont suivi, et à SensioLabs pour leur gentillesse et leur efficacité : même si ils n’ont pas pu répondre à ma question assez technique sur le stand, j’ai reçu la semaine suivante par email une réponse de leur support (normalement payant).

Bref, encore une bonne cuvée pour ce Forum PHP, félicitations aux organisateurs, et à l’année prochaine ! 🙂

Forum PHP 2014, jour 1

Cette fois ça y est !

L’édition 2014 du Forum PHP s’est déroulée cette année encore au Beffroi de Montrouge.

C’est terminé, et de mon point de vue, c’était encore une bonne cuvée ! 🙂

J’ai mis près d’un mois pour finir d’écrire cet article, qui ne concerne que le premier jour du Forum… Le bon côté des choses, c’est que presque la totalité des conférences filmées sont disponibles maintenant sur la chaîne Youtube de l’AFUP et que j’ai donc pu ajouter directement les liens. Je publierai (plus rapidement j’espère ;-)) le compte-rendu de la seconde journée.

L’accueil était comme toujours de bonne qualité (et ça fait plaisir de revoir des personnes que l’on ne rencontre que quelques fois dans l’année), et après avoir récupéré mon badge et mon sac de goodies (dont un bien utile puisqu’il s’agit d’un chargeur autonome usb pour téléphone de 2600 mAh), j’ai pu monter au 1er étage à la rencontre des différents stands des sponsors.

Zend France, SensioLabs, Theodo, Blabacar, AlterWay et l’Agence-E (qui publie en partenariat avec l’AFUP le baromètre des salaires dans le milieu PHP) notamment ont répondu présents.

J’ai ensuite pu assister à mes deux premières conférences (le programme que j’avais établi précédemment a grandement évolué au fil du Forum, en fonction de mon humeur et des places disponibles). Attention, ça se remplit vite !

Il faut dire aussi qu’il faut parfois faire des choix difficiles entre assister aux conférences, discuter avec des personnes que l’on n’a pas souvent l’occasion de croiser durant l’année et assister à des démonstrations sur les stands des sponsors.

« Keynote d’ouverture », Fabrice BERNHARD :

Le président de l’AFUP a ouvert l’édition 2014 en nous présentant rapidement le déroulement du Forum PHP, de l’AFUP, les différents partenaires…

La vidéo est ici.

« Le métrique, ce n’est pas que pour les DevOps », présentée par Olivier GARCIA et Patrick ALLAERT (Catchy.io) :

Olivier et Patrick nous ont expliqué l’importance des métriques et comment ils peuvent aider à prendre des décisions dans une entreprise.
Ils nous ont présenté le Lean Startup (dont le concept a été formalisé par Eric Ries) et qui suit quatre grands principes :

  • La production par étapes,
  • Une offre adaptée à la demande,
  • Une focalisation sur la production de valeur,
  • Une amélioration continue.

Les métriques doivent être « AAA » : Actionnables, Auditables et Accessibles.

Nous avons également vu quelques outils de récolte de métriques :

Google Analytics : très facile à mettre en place, permet de récolter n’importe quelle mesure stockée dans GA.

StatsD + Graphite : très à la mode en ce moment, écrit en Python, plus long à mettre en place.

La vidéo est ici.

Mon avis : une bonne introduction aux métriques. Reste maintenant à approfondir le sujet.

« Live coding : construisons ensemble notre premier site Drupal 8 », présentée par Bastien JAILLOT (Jolicode) :

Bastien est venu nous présenter la nouvelle version de Drupal qui vient de sortir en beta2.
Première grosse évolution : Drupal est maintenant (en partie) basé sur Symfony2. Cette version n’est bien entendu pas à utiliser en production, mais l’installer permettra d’anticiper sur les futures fonctionnalités.

La vidéo est ici.

Mon avis : présentation sympathique de Drupal, prouvant une fois de plus que l’effet « Bonaldi » est toujours présent lors d’une démonstration, aussi bien préparée soit-elle. 🙂

« Laisse pas traîner ton log », présentée par Olivier DOLBEAU (Blablacar)

Encore trop souvent, pour consulter les logs (parfois disséminés un peu partout), on se connecte en SSH sur le serveur et on cherche, à la main, avec un script…, dans les logs l’information dont on a besoin. La plupart du temps, ce n’est ni récupérable ni réutilisable, et il faut refaire la même chose à chaque fois.

Olivier nous a présenté l’ensemble ELK, pour ElasticSearch, Logstash, Kibana.

ElasticSearch est un moteur de recherche et d’analyse de données.

Logstash est un outil permettant de parcourir, d’analyser et d’enrichir des données.

Kibana est un moteur de visualisation de données, permettant de construire des tableaux de bord personnalisés.

Ces trois applications combinées forment un puissant outil d’extraction et d’analyse de logs. Nous avons pu voir comment cette solution a été mise en place chez Blablacar, qui traite environ une trentaine de Go de logs par jour.

La vidéo est ici.

Mon avis : je n’ai pas eu jusqu’à maintenant une grande quantité de logs à traiter quotidiennement, néanmoins, je me retrouve parfaitement dans la description du développeur devant rechercher une information cruciale cachée dans quelques milliers de lignes… 🙂 Je vais garder cette idée dans un coin et essayer de l’expérimenter pour voir ce qu’elle peut m’apporter (et donc à mon client) rapidement.

« Composer Best Practices », présentée par Jordi BOGGIANO

Après un petit rappel sur la gestion sémantique de version, Jordi, qui est tout de même, Lead Developper de Composer, nous a présenté quelques bonnes pratiques, et notamment l’utilisation de « ~ », le fait de ne jamais mettre Composer.lock dans git.ignore

La vidéo est ici.

Mon avis : utilisateur très récent de Composer, je trouve que Jordi nous a fait une présentation très claire de ce qu’il vaut mieux faire dans Composer, et j’ai appris plein de choses. 🙂 Le fait qu’il ait fait cette présentation en français, ce qui lui arrive rarement (ayant parfois du mal à retrouver certains termes en français, il avait prévenu que ses phrases ressembleraient parfois à des citations de JCVD), a sans doute contribué à la clarté de son exposé.

« Et si on utilisait WordPress ? », présentée par Julio POTIER (BoiteAWeb.fr)

Je me suis intéressé sérieusement pour la première fois à WordPress il y a un peu moins d’un an pour la création de ce blog. J’avais donc très envie de voir ce que Julio Potier pouvait nous dire à propos de WordPress.

J’espérais une présentation un peu plus technique, mais c’était quand même intéressant de voir d’où était parti WordPress et où il en est maintenant (23% du web mondial, +6% en un an, 37 millions de sites sur WordPress.com, 2 millions de téléchargements par seconde sur WordPress.org).

Nous avons vu ce que WordPress peut faire (on peut tout faire, du simple blog à un site très élaboré, en passant par du e-commerce, mais ce n’est pas forcément LA solution à tout), ce qu’il ne peut pas faire (peu de limites en fait) et les différentes idées reçues (WordPress, c’est uniquement pour les blogs ou les petits sites).

La vidéo est ici.

Mon avis : une présentation sympathique de WordPress qui m’a donné envie de creuser un peu plus le sujet. 🙂

 

 

 

MOOC OpenClassrooms PHP/MySQL – semaine 4

Cette dernière semaine concerne l’utilisation « avancée » de PHP. En quoi consiste donc l’utilisation « avancée » de PHP pour les auteurs de cette formation ?

Il s’agit principalement de l’utilisation des expressions rationnelles et de la programmation orientée objet ou POO.

La première chose que je remarque en allant sur la page dédiée à cette dernière semaine, c’est l’absence de TP. Je suis déçu (comme beaucoup, si j’en crois les réactions sur le forum). C’est très dommage. Même si le TP de la semaine précédente avait demandé beaucoup de travail aux participants, il n’y a rien de plus formateur que d’utiliser ce que l’on apprend sur des cas concrets.

Les cours en vidéo :

Trois vidéos sont disponibles cette semaine.

  1. Les expressions régulières, partie 1/2
  2. Les expressions régulières, partie 2/2
  3. La programmation orientée objet

1. Les expressions régulières, partie 1/2 (16’25)

Une introduction à l’utilisation des expressions rationnelles  pour effectuer des recherches dans un texte (preg_match()). Présentation de la syntaxe des expressions rationnelles, des options disponibles (sensibilité à la casse ou non…), des délimiteurs, des classes de caractères… au travers de différents exemples.

2. Les expressions régulières, partie 2/2 (10’10)

Utilisation des expressions rationnelles pour effectuer des remplacements dans un texte (preg_replace()) et/ou en extraire des parties.

3. La programmation orientée objet (15’38)

Introduction à la programmation orientée objet : les classes, les attributs, les méthodes…

Une présentation assez simple de la POO destinée aux débutants avec des exemples pour gérer un membre d’un site web. On y apprend comment créer une classe, des attributs et des accesseurs.

Les exercices :

Un QCM composé de dix questions comptant chacune pour un point est proposé.

Six questions concernent les expressions rationnelles et quatre la programmation orientée objet. Elles sont simples dans l’ensemble et n’importe qui ayant visualisé les vidéos devrait être capable d’y répondre correctement.

Les échanges sur le forum :

Les messages échangés concernent principalement l’utilisation et la conception des expressions rationnelles. Il s’agit d’un sujet vaste et complexe et les participants se posent beaucoup de questions. Certains vont assez loin dans la pratique et conçoivent des scripts assez avancés pour tester les expressions rationnelles.

Au final, assez peu de sujets traitent de la POO. C’est assez normal. Il y a déjà eu assez d’informations à assimiler durant les trois premières semaines et comme il n’y a pas de TP, tout le monde n’est pas motivé pour s’intéresser réellement à la POO et l’expérimenter.

Mon sentiment concernant cette quatrième et dernière semaine :

Cette dernière semaine est intitulée « Utilisation avancée de PHP ».

En fait, nous avons seulement une présentation des expressions rationnelles et une brève introduction à la programmation orientée objet. C’est assez peu finalement.

Autant la présentation des expressions rationnelles est intéressante, autant l’introduction à la POO est trop succincte pour être réellement utile.  C’est un sujet bien trop vaste à mon avis pour être abordé en quinze minutes à la fin d’un cours.

Bref, je suis un peu déçu par cette dernière semaine. Il n’y a pas à mon sens réellement de « PHP avancé » cette semaine, qui ne tient donc pas ses promesses. D’autre part, je trouve discutable le choix de survoler la POO à la fin du cours. La programmation orientée objet mériterait un MOOC à elle seule tellement il y a de choses à voir.

Les participants débutants ont pas mal d’informations à assimiler durant les trois premières semaines. Peut-être aurait-il été plus intéressant par exemple d’insister un peu plus sur la sécurité (les risques, les différents types d’attaques et les contre-mesures à utiliser) et de proposer un TP récapitulatif, un peu comme pour le MOOC HTML5/CSS3 (d’ailleurs ce TP a été réclamé par un certain nombre de participants sur le forum).

Pour conclure…

Je suis content d’avoir participé à ce premier MOOC PHP/MySQL. L’ambiance a toujours été bonne sur les forums, les participants étaient motivés et à l’écoute de tous les conseils que pouvaient leur donner les plus expérimentés. Les vidéos étaient de bonne qualité, à part quelques problèmes de son sur certaines la première semaine. Je pense que les participants ayant bien suivi les vidéos ont pu acquérir quelques bases de PHP, ceux s’étant en plus aidé du support écrit ayant sans aucun doute plus progressé.

Je note deux points négatifs : la rareté des travaux pratiques (un seul sur quatre semaines, même si l’étude et la reproduction du code présenté dans les vidéos pouvaient passer dans la pratique) et la programmation orientée objet survolée dans la quatrième semaine. Rien ne remplace la pratique pour comprendre et assimiler le fonctionnement de PHP. Par conséquent, je pense qu’un TP par semaine aurait été mieux, avec une difficulté croissante naturellement. Par exemple : première semaine, manipulation des variables, calculs, boucles et tests. Deuxième semaine : transmission des informations en utilisant un formulaire et utilisation de la session et des cookies (identification d’un utilisateur par exemple). Troisième semaine : même chose que la deuxième semaine, mais en stockant les informations dans une base de données. Quatrième semaine : analyse des failles possible et optimisation de la sécurité. Les participants auraient sans doute été plus conscients de leur progression avec quatre TPs. Par contre, ça leur aurait demandé plus de travail durant la semaine (2h30 prévues selon OpenClassrooms, ce qui est je pense déjà sous-estimé), entre la consultation des vidéos, la réalisation des TPs, et la correction de trois TPs des autres participants. Il faudrait je pense également prévoir un MOOC spécifique pour le « PHP avancé » afin d’y aborder les sujets importants de façon plus complète qu’un survol lors de la dernière semaine.

Pour conclure, j’ai passé quatre semaines sympathiques à suivre ce MOOC. Les échanges sur les forums ont été riches et m’ont permis de faire quelques « rencontres » intéressantes. L’organisation et les outils (qualité des vidéos, correction du TP) ont fait beaucoup de progrès depuis le MOOC HTML5/CSS3 auquel j’ai participé fin 2013, même si il reste encore des choses à améliorer (plus de travaux pratiques, forum peu pratique à utiliser, tous les messages étant affichés à la suite sans possibilité de classement par discussion…). Le fonctionnement des MOOCs a été modifié : désormais, il est possible d’en commencer n’importe quand, chaque partie étant validée une semaine après l’inscription effective. C’est très intéressant pour ceux qui ne peuvent pas forcément s’organiser comme ils le souhaitent et libérer suffisamment de temps pour suivre un MOOC à dates fixes.

A l’heure où j’écris ces lignes, le MOOC n’est pas encore tout à fait terminé. Je ne connais donc pas exactement le nombre d’inscrits, ni le nombre de participants ayant réellement terminé le MOOC. Je ne manquerai pas de vous en faire part dès qu’OpenClassrooms publiera les statistiques…

MOOC OpenClassrooms PHP/MySQL – semaine 3

Je commence la rédaction du compte rendu de cette troisième du MOOC alors que s’achève bientôt la quatrième… Il semblerait que j’aie pris un peu de retard.

Durant cette semaine, nous avons abordé l’utilisation d’une base de données avec PHP, en l’occurrence, MySQL, ainsi que naturellement, le langage SQL.

Organisation du MOOC :

L’organisation reste la même que celle des autres semaines, à un détail près : un TP est prévu. Enfin de la pratique ! 🙂

Les cours en vidéo :

Sept vidéos sont disponibles cette semaine.

  1. Présentation des bases de données
  2. phpMyAdmin
  3. Lire des données
  4. Écrire des données
  5. Les fonctions SQL
  6. Les dates en SQL
  7. TP : un mini-chat

1. Présentation des bases de données (6’26)

Introduction aux systèmes de gestion de bases de données et à MySQL en particulier, et quelques exemples de requêtes SQL.

2. phpMyAdmin (12’00)

Utilisation de phpMyAdmin pour créer, gérer des bases de données, des tables et manipuler les données via l’interface ou des requêtes SQL.

3. Lire des données (23’38)

Récupération et sélection de données dans une base. Utilisation de PDO MySQL.

4. Écrire des données (8’46)

Création de requêtes de création, de mise à jour et de suppression de données. Utilisation de PDO MySQL et des requêtes préparées.

5. Les fonctions SQL (10’33)

Présentation des fonctions SQL. Comptage des résultats, calcul de moyenne, transformation en majuscules ou en minuscules…

6. Les dates en SQL (8’15)

Fonctions de manipulation des dates en SQL.

7. TP : un mini-chat (2’50)

Présentation du sujet du TP :  la réalisation d’un mini-chat permettant à un utilisateur de saisir un pseudo et un message, d’enregistrer ce dernier dans une base de données, et de consulter la liste des messages existants.

Les exercices :

Un QCM composé de dix questions comptant chacune pour un point est proposé.

Les questions ont toutes pour sujet l’utilisation des bases de données (logique non ? ;-)). Elles sont relativement simples et reprennent les sujets abordés dans les vidéos.

Le TP :

Cette semaine est à mon avis sans aucun doute plus intéressante. Enfin l’occasion de mettre en pratique les connaissances acquises au travers des cours. Le sujet en lui-même n’est pas très complexe, il s’agit de la réalisation d’un « mini-chat » permettant à l’utilisateur d’enregistrer un message et de consulter la liste des messages existants. Ce TP permet de mettre en œuvre la théorie abordée dans les chapitres précédents : transmission de données entre les pages, utilisation d’un formulaire, lecture et écriture dans une base de données, utilisation de session et/ou de cookie…

Le TP sera corrigé par les participants eux-mêmes. Chaque participant doit envoyer son travail, et pour obtenir sa note validée, corriger lui-même trois TPs. Chacun obtiendra par conséquent trois notes provenant de trois correcteurs différents. La note moyenne comptera pour la réussite du MOOC au même titre que celles obtenues pour les QCM.

Pour faciliter la correction, un barème précis (présence de fichiers, fonctionnalités…) est fourni.

J’ai corrigé trois copies, et j’ai mis de mémoire les notes de 8, 9 et 10. De bonnes copies, avec quelques petits défauts que je me suis permis de signaler à leurs auteurs. Je remarque que les débutants ne commentent pas beaucoup leur code, et je les encourage à le faire. 🙂

Ma version du TP est ici. Elle vaut ce qu’elle vaut. J’ai remplis je pense le cahier des charges. Je n’ai pas créé une interface sophistiquée, préférant répondre à la demande, et uniquement à la demande. De plus, étant donné que les corrections sont effectuées par des débutants la plupart du temps, et que j’ai choisi une solution avec un certain nombre de fichiers séparés, j’ai ajouté à la racine du TP un fichier LISEZMOI.txt décrivant avec suffisamment de précisions l’installation, la configuration, l’utilisation et les choix techniques pour la notation.

Les échanges sur le forum :

Les échanges sont très nombreux cette semaine. Il est naturellement principalement question de la réalisation du TP et des difficultés rencontrées. Il y a un peu de tout, des propositions, des appels à l’aide, des réponses à ces appels… Beaucoup de débutants trouvent l’exercice très difficile. Certains le trouvent même impossible à réaliser. Des encouragements les aideront à continuer. Je pense que nous verrons à la fin du MOOC les statistiques qui nous diront combien de personnes ont rendu leur TP et quelles notes ont été distribuées. Il y a des débats sur les différentes façons de faire : un fichier ou bien plusieurs, prise en compte de la sécurité au travers des attaques XSS et des injections SQL, utilisation de la session et / ou d’un cookie pour la mémorisation du pseudo de l’utilisation…

Mon sentiment concernant cette troisième semaine :

Enfin de la pratique !!!

Tout le monde l’attendait ce TP. C’est là l’occasion d’utiliser tout ce qui a été vu durant ces trois semaines. Il a également permis à beaucoup de mesurer le gouffre qui sépare la théorie de la pratique. Ce qui paraissait pourtant simple dans le cours est finalement plus complexe que prévu à mettre en place avec un véritable exemple.

Certains participants se plaignent de la complexité du TP. En effet, il mêle tous ce qui a été vu jusque là, et cela fait sans doute beaucoup d’un seul coup lorsque l’on est débutant. Le temps de travail prévu par semaine (2h30) a dans ce cas sans aucun doute été largement sous-estimé.

Comme je l’ai fait remarquer sur le forum, il aurait sans doute été judicieux (mais plus long et complexe à mettre en place, ne serait-ce que parce qu’il faut corriger les copies) d’avoir un TP par semaine, avec une difficulté croissante au fil des semaines. J’ai même poussé le vice à proposer mon aide mon la rédaction de ces TPs… il faudra maintenant que je trouve le temps de le faire. 🙂

La quatrième et dernière semaine traitera de l’utilisation avancée de PHP, avec les expressions rationnelles, et la programmation orientée objets (POO).

MOOC OpenClassrooms PHP/MySQL – semaine 2

Mes impressions concernant la première semaine du MOOC « Concevez votre site web avec PHP et MySQL » organisé par OpenClassrooms ont été publiées ici.

Comme promis, voici un aperçu de la deuxième semaine de ce MOOC, dont le résumé est le suivant :

Transférer des informations d’une page à une autre est une des clés d’un site web dynamique. Que ce soit dans la barre d’adresse ou via des formulaires, il existe de nombreux moyens de faire transiter des données.
Nous découvrirons aussi les mécanismes des sessions et des cookies, deux techniques très pratiques pour retenir des informations.

Organisation du MOOC :

Depuis cette semaine, l’organisation des MOOCs OpenClassrooms a été modifiée. Jusqu’à maintenant, un MOOC commençait un lundi, et la semaine s’achevait le dimanche à 23h59 avec la date limite de validation des exercices. Même si chaque participant était évidemment au courant de ce fonctionnement et des dates limites, des problèmes d’emploi du temps, de charge de travail ou encore de connexion (nous ne sommes pas tous égaux devant l’accès à Internet, les participants se situant dans le monde entier) pouvaient en empêcher certains de valider la semaine dans les temps. Si la semaine n’était pas validée, la note de l’exercice était de 0, et même si elle n’est pas éliminatoire, cela provoquait assurément de la frustration chez ceux qui avait rencontré un problème. Cela représentait également un handicap pour ceux qui souhaitaient obtenir la certification OpenClassrooms à la fin (la validité et la reconnaissance de cette certification est un autre débat).

Désormais, il est possible de rejoindre un cours OpenClassrooms quand on le souhaite. On a alors accès directement à la semaine 1 et l’on dispose de 7 jours complets pour valider le ou les exercices. La deuxième semaine sera disponible 7 jours après l’inscription, et ainsi de suite pour les semaines suivantes.

Toutes les informations concernant cette nouvelle organisation se trouvent ici.

Pour le reste, le fonctionnement est le même que celui de la semaine 1 : des cours en vidéo (trois cette semaine pour une durée totale d’un peu moins d’une heure), un QCM et le forum.

Les cours en vidéo :

Trois vidéos sont disponibles cette semaine.

  1. Transmettre des données avec l’URL
  2. Transmettre des données avec les formulaires
  3. Variables superglobales, sessions et cookies

Elles sont dans l’ensemble plutôt de bonne qualité, et je n’ai pas constaté de différences de niveau sonore comme dans celle de la première semaine (je n’ai d’ailleurs pas non plus relevé de remarque à ce sujet sur le forum comme ça avait été le cas pour la semaine 1).

 1. Transmettre des données avec l’URL (18’58)

Présentation au travers d’un exemple simple de la façon dont il est possible d’échanger des informations entre le client et le serveur en se servant de l’url. Au passage, quelques conseils avisés sont distillés concernant la sécurité de base (ne jamais faire confiance aux données provenant du client 😉 ) et quelques fonctions permettant de tester et filtrer les variables sont proposées.

2. Transmettre des données avec les formulaires (13’58)

Démonstration du fonctionnement d’un formulaire, présentation des méthodes GET et POST, de la récupération et du traitement des données en PHP. Il est de nouveau conseillé de ne jamais faire confiance aux données provenant de l’utilisateur (introduction très rapide aux attaques XSS, utilisation de htmlspecialchars()).

 3. Variables superglobales, sessions et cookies (14’43)

Présentation des différentes variables superglobales, notamment $_SERVER, $_SESSION, et $_COOKIE et de leur utilisation pour la transmission d’informations d’une page à une autre.

Les exercices :

Un QCM composé de dix questions comptant chacune pour un point est proposé.

Les questions se font un peu plus précises, ce qui est normal puisque nous sommes rentrés dans le vif du sujet. Elles mettent en évidence les difficultés de compréhension que les participants peuvent parfois rencontrer. On retrouve notamment sur le forum beaucoup de questions concernant l’utilisation des timestamp, pour calculer la date d’expiration d’un cookie par exemple. Beaucoup confondent date d’expiration (date courante + durée de vie en secondes) et durée de vie du cookie. La dernière question du QCM a fait l’objet de plusieurs « contestations » sur le forum alors qu’à mes yeux elle était très claire.

Un exercice supplémentaire noté devait également être proposé cette semaine. Il l’a été quelques temps mais a été retiré rapidement, le système de notation entre participants n’étant visiblement pas encore tout à fait au point. Certains l’ont néanmoins fait et leurs contributions ont fait l’objet de nombreuses discussions sur le forum.

J’espère que le système sera au point pour la semaine 3.

Les échanges sur le forum :

Les échanges sont nombreux cette semaine encore. Normal, on attaque les choses sérieuses avec la gestion des formulaires. Beaucoup de questions concerne le code, la façon de gérer le formulaire côté serveur, les erreurs commises.

On y parle également de sécurité, d’injection, de filtrage… de bonnes pratiques en général. Tout le monde n’est pas d’accord sur les méthodes à adopter, sur le fait qu’il faille filtrer ou non les données, mais dans l’ensemble, grâce aux échanges entre les participants de différents niveaux, tout le monde progresse.

 Mon sentiment concernant cette deuxième semaine :

Si les vidéos sont un peu plus « pointues » que celles de la semaine 1 qui abordaient les notions de base, elles ne fournissent encore une fois qu’une base à partir de laquelle travailler. Elles sont suffisamment claires pour permettre d’amener les participants à la réalisation d’un petit formulaire et au traitement des données envoyées, et elles laissent suffisamment de points dans l’ombre pour qu’ils soient obligés de chercher des informations ailleurs. Le réflexe « je vais voir dans le manuel PHP » commence à rentrer. 🙂

Les discussions sur le forum sont logiquement plus « pointues » également, avec des questions pratiques concernant l’utilisation des variables, le traitement des données côté serveur, la sécurisation d’un formulaire… Quelques questions ont également été posées sur des notions qui sont abordées dans le cours PHP au format PDF pour ceux qui y ont accès et qui ne sont pas mentionnées dans les vidéos (forcément moins complètes), comme les constantes. Les deux supports sont bien entendu complémentaires.

La semaine prochaine, nous allons aborder l’utilisation de bases de données avec PHP, et notamment MySQL et le langage SQL.

A bientôt pour la semaine 3 du MOOC.