Je progresse en informatique et en développement web mais j’aimerais pouvoir mesurer où j’en suis et ce qu’il me reste à apprendre. J’entreprends donc de dresser la liste des connaissances et compétences d’un bon développeur web. Cette liste me servira ensuite pour définir mes prochaines actions d’amélioration.
Mes sources d’information et d’inspiration
- The 5 Most Important Skills a Web Developer Needs qui liste des « soft skills » autant que des compétences informatique.
- What are 5 essential skills every Web Developer should have?
- My journey to becoming a web developer from scratch without a CS degree, 2 years later (and what I learned from it)
- Free Code Camp
- contribuer à WordPress
Les critères « soft skills »
- Capacité à entrer en relation avec les autres (empathie, communication, …)
- Gestion du stress
- Gestion du temps
- Prendre du recul : pourquoi je fais ça, qu’est-ce que je fais au delà des tâches concrètes ? Ca peut-être « je résoud des problèmes complexes et intéressants », « je travaille dans un environnement intellectuellement stimulant », « je construis des choses qui me plaisent », …
- identifier ce qui apportera de la valeur au client (et donc aux clients du client)
- identifier le niveau d’expertise que peut atteindre le client pour créer un site toujours actuel (si possible souvent actualisé) sans recourir à des compétences trop coûteuses pour celà
- Définir ce que l’internaute voudra (conception de l’interface utilisateur)
- pas de peur d’échouer au point que ça bloque les approches créatives et nouvelles, mais assez pour faire des tests sérieux.
L’aptitude au code
Maîtrise des « langages »
- Maîtriser la programmation (hors syntaxe)
- Maîtrise des concepts de l’informatique tels que Model – View – Controller, Programmation orientée objet, …)
- Savoir créer des algorithmes
- Maîtrise des outils actuels de base
- des langages sous-jacents tels que PHP (côté serveur), Javascript (côté client), SQL pour les bases de données ;
- du codage de pages web (html5, css3, ….) ;
- des outils de test : du code, des caractéristiques responsive, firebug ou chrome dev tools, des rendus sur des moteurs différents (Gecko tel que Firefox, WebKit tel que Safari, Chrome, Internet Explorer et Opera) ;
- Autres tels que utilisation de SVG.
- Maîtrise d’outils plus sophistiqués
- des outils d’automatisation tels que Sass & Less, Grunt & Gulp (ces deux derniers nécessitent de savoir faire fonctionner NodeJS) ;
- compréhension du DOM (document Object model) et d’AJAX
- utilisation de Ruby, angularJS, REACT (voir son utilisation avec l’API Rest de WordPress dans Building a better WordPress) & Redux
capacité à obtenir des résultats
- savoir créer un thème wordpress
- savoir créer une extension wordpress
- concevoir un site rapide, sûr
- créer un site crypté en SSL (https)
- gérer l’accessibilité, les cookies, si nécessaire prévoir une version pour les imprimantes (css)…
- administration du serveur (hébergement)
- API
Méthodes de travail
Connaissance du workflow le mieux adapté au cas présent.
- Savoir déployer un environnement de test puis le transférer à l’environnement de production
- choisir ses outils de développement et debogage – voir aussi https://atom.io/
- gérer les versions (git ou Subversion )
- gestion de projet
L’aptitude au design
Aptitude à identifier ses limites techniques, à estimer le temps requis et la faisabilité d’un choix d’interface.
Comprendre les bases du design telles que la typographie, les choix de couleurs, les conceptions de grilles sous un angle visuel (et pas technique).
L’idée est « d’en savoir assez pour savoir quand on n’en sait pas assez » (Tim Wright dans The 5 Most Important Skills a Web Developer Needs).
L’utilisation d’autres outils / concepts essentiels
- Maîtrise du SEO
- Savoir choisir et régler des extensions wordpress
- Savoir utiliser wordpress (de l’activation d’un thème ou d’une extension à la création d’un « multisite » ou réseau de site)
- Utiliser google analytics
- utiliser OVH
- utiliser google for webmasters tools
- savoir maintenir un site
- traiter l’information, la mettre en perspective, la rendre intéressante
- savoir créer un site marchand efficace
- Savoir créer un site multilingue
Comment s’évaluer ?
Comme point de départ et jalons intermédiaires, il faudra lire cet article sur le syndrome de l’imposteur… : Breaking Out of Imposter Syndrome and Isolation ;
Après avoir lu attentivement l’article My journey to becoming a web developer from scratch without a CS degree, 2 years later (and what I learned from it), j’ai identifié des actions à mener pour mieux voir ce que je sais / ne sais pas :
- Livre (gratuit !) the Eloquent Javascript: A Modern Introduction to Programming book par Haverbeke, absolument excellent. On pourra aussi lire ces deux livres en ligne, sur les « design patterns » : JavaScript Design Patterns de doFactory et Learning JavaScript Design Patterns de Addy Osmani ;
- cours en ligne Intro to HTML and CSS, sur Udacity (gratuit) ;
- Sur le responsive design, l’article de Froont sur 9 basic principles of responsive web design et le cours Responsive Web Design Fundamentals by Google, sur Udacity (gratuit) ;
- Sur les outils de développement de Chrome, le cours gratuit de Codeschool Explore and Master Chrome DevTools ;
- Sur la gestion de versions avec Git, Try Github (cours gratuit sur CodeSchool) et le tutoriel très complet Become a git guru;
- Les tutoriels de Scotch.io’s sur Grunt et Gulp, qui permettent, entre autres, de compiler des fichiers LESS ou SASS, de minimiser des fichiers JS ou CSS,
Je liste quelques pistes, que je vais explorer :
- créer un profil stackoverflow et commencer à aider d’autres personnes à résoudre des problèmes ;
- lire attentivement , suivre tous les liens et identifier ce que je sais / ne sais pas
- lire 10 Coding-Focused Careers You Can Do Remotely
- lire 7 Courses That Turn WordPress Users into Developers (Free and Paid Options)
- S’inscrire sur Freecodecamp, participer à tous les challenges puis contribuer à la création d’applications pour des ONG.
- Contribuer à WordPress (documentation du Codex, traductions, support technique) – voir Contributing to WordPress et get involved with WordPress
- Mettre un thème ou une extension dans le dépôt WordPress, voir :
Et maintenant ?
Il n’y a plus qu’à chercher à m’évaluer et apprendre ce qui correspondra à la prochaine étape du développement de mes compétences informatiques !
merci beaucoup pour ces explications ;j’adore ce site .je vous souhaite une bonne continuation.