Skip to content

Une liste organisée de ressources gratuites pour la programmation, le web et le design. Régulièrement mise à jour

Notifications You must be signed in to change notification settings

websealevel/awesome-fr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Ressources gratuites pour les programmeur·euses, designeur·euses web, indépendant·es, bidouilleur·euses et autres intéressé·es

We're Using GitHub Under Protest

Pour en savoir plus rendez-vous à cette section.

This project is currently hosted on GitHub. This is not ideal; GitHub is a proprietary, trade-secret system that is not Free and Open Souce Software (FOSS).

Logo of the GiveUpGitHub campaign)

En quelques mots

Une liste d'outils et de ressources culturelles (sites web, ebooks, podcasts, vidéos, blogs, articles, conférences, guides, programmes, etc.) gratuites plutôt orientés web (en tout cas initialement, ce qui tend à changer au cours du temps).

Cette liste n'est pas exhaustive par choix (il y'a des choses qui ne m'intéressent pas plus que ça et d'autres ressources que je trouve moins pertinentes).

Ce dépôt contient évidemment des opinions sur certains sujets. Libre à vous d'y adhérer ou non.

Des limites de la francophonie

La liste en elle-même est francophone, cependant bon nombre de ressources listées ici ne sont malheureusement que disponibles en anglais. Il serait idiot de ne sélectionner que des outils ayant l'amabilité de nous fournir des traductions fr. L'accessibilité aux francophones reste néanmoins une priorité sur ce dépôt (au même titre que la gratuité) et permettra au moins de proposer un panorama en français de différentes ressources.

Un effort sera fait pour retrouver des ressources traduites en français (par exemple pour les livres) quand cela sera possible. Une traduction n'est pas qu'une opération automatique, il en résulte bien souvent un livre différent du livre de départ. Aussi il est parfois difficile de le recommander aveuglément.

Conseils d'utilisation

Servez-vous de ce dépôt comme d'une banque de marque-pages. Grâce à la table des matières, trouvez quelque chose qui peut vous aider ou vous intéresser.

Spoiler alert : vous n'avez pas besoin - et de toute manière n'aurez pas assez d'une vie - d'apprendre, de lire ou de maîtriser tout ce qui est exposé ici. Naviguez la conscience tranquille vers ce qui vous paraît utile ou vous attire. Ce dépôt donne du vertige aussi à son auteur, et ce dernier est pris dans le douloureux paradoxe d'ajouter du bruit au bruit pour toutes celles et ceux qui cherchent à démarrer en programmation et/ou dans le développement web.

Par souci de simplicité et d'accessibilité, ce dépôt va continuer à grandir dans un fichier bien à plat. C'est comme dans une brocante, faut faire un tour pour voir. Mais bon y'a quand même une table des matières, la recherche par mot-clef et des hyperliens pour faciliter la navigation.

Contribuez et partagez

Un lien mort ? Une typo ? Une ressource que vous trouvez pertinente n'est pas présente ici et vous voulez la partager ?

Proposez votre contribution via l'ouverture d'une issue ou d'une Pull Request. Avant de soumettre une suggestion, merci de lire Comment contribuer au dépôt ?

No time to lose !

No time to lose ! (Monty Python Flying Circus)

Table des matières

Comme évaluer la santé d'un dépôt ?

Quelques conseils pour se faire une idée de la santé d'un dépôt ou d'une bibliothèque, à savoir est-ce que j'en ai vraiment besoin ? Si oui, pourquoi ? Est-ce que ce dépôt est maintenu ou abandonné ? Est-ce qu'il y a une communauté derrière active et prête à dépanner ? Est-ce que cette dépendance de mon projet va casser dans 6 mois ?

Aller sur le dépôt puis

  • Regarder s'il y a une documentation. S'il n'y en a pas, fuyez !
  • Regarder si la documentation est à jour. Si ce n'est pas le cas, vous allez souffrir.
  • Regarder la date du dernier commit
  • Regarder le nombre d'issues ouvertes et à quelles dates les dernières ont été ouvertes. Qu'il y ait un grand nombre d'issues en soit n'est pas vraiment un problème. Au contraire, cela témoigne de l'activité du dépot, de son usage et peut-être de son utilité. Ce qui compte c'est est-ce qu'on répond à ces issues
  • Regarder depuis combien de temps les contributeurs du dépot n'ont pas répondu à une issue
  • Regarder le nombre de stars/fav (attention, métrique pas toujours pertinente)
  • Regarder le nombre de contributeurs
  • Regarder le nombre de pull requests en attente, idem que pour les issues
  • Trouver une coquille dans le README et faites une Pull Request pour la corriger (un espace qui manque, une ponctuation, peu importe). Observer le temps de réaction des contributeurs du dépôt. Cela donne une bonne mesure de son activité. (Merci à @frozar pour cette technique) Essayez donc sur ce dépôt !
  • Essayer de trouver une communauté en ligne (site, wikis, IRC, Discord etc...) Dites bonjour, si on vous répond pas mieux vaut passer son chemin.
  • Est-ce que le projet est versionné ? C'est important pour savoir exactement de quelle version dépend notre projet, traquer les changements rétrocompatibles ou non etc..

Environnements d'apprentissage interactifs

Document Object Model (DOM)

git

CSS grid

JS

Algorithmes

SEO

  • siteliner, trouver le contenu dupliqué sur votre site (et supprimez le !)
  • Carrousels de données structurées (beta), Google utilise des données structurées pour comprendre le contenu de la page et le présenter sous une forme plus riche dans les résultats de recherche (ce que l'on appelle un résultat enrichi). Ce guide se concentre sur un nouveau résultat enrichi de type carrousel, disponible en version bêta (2024)
  • ÉTINCELLE : l'audit en live de ton site WordPress !, un audit live très instructif de sites WordPress et e-commerce, par Daniel Roch de SEOKEY.

API publiques

Divers

Opendata/France

Côté client, Frontend

Agrégateurs de ressources pour le front

  • uxtools.co, un hub des outils, tendances, design pour les designer. Organisent des sondages tous les ans.
  • devtooly, répertorie tout un tas de ressources frontend par catégories
  • webcode.tools, collection d'outils en ligne pour le développement web (générateurs de code)

Templates

Templates HTML5/CSS3 à télécharger, utiliser, modifier :

Typographies/Fonts

Les designers se moqueront de vous si vous utilisez le mot typographie ou typeface au lieu de police de caractères ou font, et inversement. C'est du pur mépris de classe, comme lorsqu'on on vous corrige sur la différence entre URI et URL. Ne vous laissez pas faire.

Mais sachez en gros que la typographie, ou Typeface, c'est le design et la Font c'est l'implémentation de ce design en informatique.

  • typescale, créer facilement un système de tailles de font à suivre
  • typography principles, un guide pour apprendre les principes de la typo
  • fontjoy, trouver facilement des combinaisons de fonts qui fonctionnent
  • google-type, trouver facilement des combinaisons de fonts qui fonctionnent
  • fontsquirrel, bibliothèque de fonts libres pour usage commercial
  • fontsinuse, bilbiothèque de typos
  • fontfabric, tester rapidement ses fonts
  • FontZone, une archive de fonts téléchargeables et gratuites
  • fontshare
  • Typeoff.de, le blog de Dan Reynolds, un designer et historien des typographies

Quelques lectures utiles sur des aspects techniques de la typographie :

Palettes de couleurs

Pack d’icônes/favicons

Des icônes, des icônes et encore des icônes. Faites votre choix :

Images: photos, illustrations, svg

Générateurs/Templates CSS

Générateur d'assets au format SVG

Motifs

Animations CSS (keyframes API) ou JS

Expérimenter et créer des animations CSS

Composants, extraits de code

  • Magic UI, composants
  • shadcn/ui, composants
  • codepad, code snippets dans tout un tas de langages et composants pour le front (html,css,js)
  • snipplr
  • web code tools, des outils clés en mains pour le développement web
  • code my ui, inspirations et code snippets pour le web design/ui
  • cssui, composants interactifs en CSS (sans JS)

Gradients

Générateur de mise en page / layouts

Courbes de Bézier

JS

Backgrounds

Pixel art

Agrégateurs de design, inspiration

Composants

UI/UX

  • figma, actuellement le meilleur éditeur de design (webapp/desktop) gratuit
  • checklistdesing, une collection des meilleures pratiques de design web
  • laws of UX, une autre collection des meilleures pratiques en design web, très bien faite, avec un résumé de ce qu'il faut retenir sur chaque post
  • design principles
  • uiplaybook, un dictionnaire des composants webs (fonction, bonnes pratiques, implémentation etc..)
  • UX challenges, exercices d'UX
  • future learn, apprendre l'ux, maintenu par Accenture
  • baselinehq, un bootcamp gratuit produit par des professionnels
  • springboard, apprendre l'ux/ui
  • UXMTYHS, collection des erreurs de conception en UX avec des explications sur le pourquoi
  • Google UX Design
  • Decathlon figma, Decathlon a ouvert au domaine public tout son système de design

Sitemap

  • octopus, un outil en ligne pour construire le sitemap (architectures des pages, composants) de son projet

Quelques références tierces

Apprendre le web design

Check, check, check

Code

Est-ce-que j'ai oublié un truc ?

  • Landing Page Checklist, des ressources pour votre landing page et s'assurez de n'avoir rien oublié d'important
  • Front-end checklist
  • unused-css, détecte le CSS non utilisé sur une page web
  • Checklist Design, une collection des meilleurs pratiques de design. Pour chaque composant, cochez une à une les cases d'un checklist pour voir si vous n'avez rien oublié (page login, page 404, flot de paiement, logo etc... )
  • faviconcheck, vérifier comment rend vos favicons sur différents os, navigateurs ou thèmes

Accessibilité

L'accessibilité du web est la problématique de l'accès aux contenus et services web par les personnes handicapées et plus généralement par tous les utilisateurs, quels que soient leurs dispositifs d’accès ou leurs conditions d’environnement.

Perfs et config

  • pingdom, tester le temps de chartement d'une page et obtenir un diagnostic
  • pingtest, ping un nom de domaine depuis plusieurs positions sur le globe
  • whatsmydns.net, visualiser la propagation sur les serveurs DNS de votre enregistrement DNS
  • intodns, vérifier votre config DNS (serveur web, serveur mail,etc.)
  • WebPageTest, un projet open-source soutenu par Google avec un focus sur le network. Au top
  • measuring page weight, un article (en anglais sorry, j'essaierai de trouver un article équivalent en fr) qui discute de la façon dont est calculé le poids d'une page et la recherche d'un standard. Liste également tous les outils populaires pour faire des mesures

Analyse de texte

  • word-counter, donne des métriques sur un texte (nombre de mots, caractères, paragraphes etc..)

Contraste

Wordpress

Un mot

En 2021 on comptait environ 455 000 000 sites Wordpress. Cela représente au moins 30% du web, mais en réalité plutôt 40% (estimation haute).

Wordpress est un framework parfaitement adapté pour gérer et publier du contenu sur Internet. C'est un outil versatile qui peut être adapté pour toute taille de projet. Si Wordpress peut être utilisé pour tout faire, il n'est pas toujours la solution la plus adaptée !

Ce framework existe depuis 2004, dans le monde du logiciel libre c'est une éternité.

Wordpress est développé et pensé pour l'utilisateur (celui qui publie et gère le contenu), et non pour le développeur. Les utilisateurs se moquent bien de nos outils tant qu'ils ont ce qu'ils demandent. Wordpress, à l'instar de LibreOffice ou autre, est devenu un standard de gestion de contenu en ligne que beaucoup de personnes non-techniciennes connaissent bien, utilisent quotidiennement et demandent. C'est donc un énorme avantage de capitaliser dessus pour les futurs utilisateurs de votre application web.

Doc officielle wordpress.org

Très bien faite, mais peut parfois demander un peu d'experience pour s'y retrouver. Ne pas oublier que de documenter un immense framework qui évolue sans cesse est un immense challenge en soi.

Articles

Livres de développement Wordpress

A télécharger sur pdfdrive:

Épisodes de podcasts sur Wordpress

Podcasts dédiés à Wordpress

Formations

Starter themes

Banque de thèmes

Plugins recommandés

Le plus recommandé est de limiter au maximum l'usage de plugins pour vos thèmes. Cela dit certains plugins stables et bien maintenus sont souvent de la partie pour des sites en production

  • Advanced Custom Fields, et non SCF
  • ewww image optimizer
  • bulletProof Security, bonne alternative à WordFence
  • carbon fields, alternative gratuite à ACF Pro
  • fakerpress, générateur de faux contenu pour tester son thème
  • RankMath, plugin SEO, bonne alternative à Yoast
  • BuddyPress, plugin pour ajouter une couche réseau social à votre site
  • bbPress, gestionnaire de forums/fils de discussion
  • W3 Total Cache, un plugin pour optimiser les performances de Wordpress, complètement agnostique de l'hébergeur. Mise en cache des pages webs etc... Au final, améliore l'experience utilisateur et le SEO de votre site. Vérifiez que votre hébergeur ne vous propose pas déjà un plugin de mise en cache maison avant de l'installer sur votre site en prod

Articles sur la pratique de WordPress et son évolution vers le FSE

Hébergement gratuit

  • Neocities, Neocities est un hébergeur web ayant pour objectif de faciliter la création de sites internet personnels afin d'offrir une alternative aux réseaux sociaux. Il s'inscrit dans la continuité du légendaire Geocities, un ancien service d'hébergement web gratuit fondé en 1994, fermé en 2009
  • GitHub Pages, GitHub offre la possibilité d'héberger un site statique
  • Free web hosting, héberger vos sites webs PHP,MySQL (ou HTML) hébergé gratuitement et sans pub. Pas de limites de sites, nom de domaine gratuit ou ajouter le votre. 5GB d'espace libre, bande passante illimitée, SSL gratuit
  • AwardSpace, plans d'hébergement gratuits chez awardspace, même idée que précédent

Mots de passe

Gestionnaire de mots de passe

  • KeePassXC, les navigateurs proposent de sauvegarder vos mots de passe. Mais ils ne sont pas conçus pour ça et ce n'est pas l'idéal d'un point de vue sécurité. Mieux vaut utiliser un gestionnaire de mots de passe sur votre machine pour les accès sensibles. KeePassXC est un gestionnaire de mots de passe multiplateforme et open-source. Il stocke vos mots de passe dans une base de données cryptée et respecte les standards. Il offre également tout un tas d'autres fonctionnalités. Il vient même avec une extension pour votre navigateur favori qui se connecte à votre base de données de mots de passe et (essaie) de remplir automatiquement les formulaires de login.

Générateur de mots de passe

  • xkpasswd, créer des mots de passes sécurisés ET faciles à retenir (si vous devez le faire)

Git

Client git

Une fois qu'on maîtrise git dans ses grandes lignes (c'est important de commencer en mode CLI pour bien se familiariser avec son fonctionnement), si on a plus envie de taper tout un tas de commandes

  • github desktop, un client git développé par github, naturellement adapté pour vos dépots remote sur github mais pas que. Windows/Mac
  • github desktop-linux fork, la même mais porté sur linux
  • sourceTree, un autre client mais dispo que sur Windows et Mac :/

Déploiement

  • FileZilla, le client ftp/sftp open source par excellence (évitez de devoir déployer en ftp, il y a de meilleures alternatives pour moins de charge mentale). ça dépanne toujours
  • Capistrano, un outil pour déployer automatiquement sur un serveur distant, avec gestion de version, rollbacks etc... Pour un déploiement sans stress

Mouvement NoCode, outils visual code (no-code ou low-code)

  • No Code Summit, conférence organisée par l'Union Française des Professionnels du NoCode qui fédère et représente les professionnels du NoCode et du LowCode
  • No-Code France, association et espace communautaire francophone dédié au No-Code (slack, chaîne YouTube, veille, meetups)
  • Makerpad, communauté consacrée au NoCode (tutoriels, posts, veille), crée en 2018
  • Webflow University, des cours sur le développement de site webs avec Webflow
  • Bubble Academy, la source principale de guides pour développer avec Bubble
  • La gazette du No-Code, un média 100% NoCode dédiée au NoCode (portraits, actualitiés, interviews, tests d'outils, etc.)

Quitter Github

Le 29 Juin 2022, le software freedom conservancy a publié un article incitant à abandonner GitHub pour se tourner vers des plateformes d'hébèrgement de codebase plus respectueuses de l'open-source et des utilisateurs.

L'article mentionne les raisons très claires de cette initiative et alerte sur la dérive du logiciel propriétaire GitHub. GitHub a porté un coup de grâce en monétisant l'outil copilot entraîné sur les dépôts des utilisateurs sous licence libre (mais non sur les codebases de Windows) et en laissant lettre morte les revendications et questions adressées par la communauté.

Souscrivant à la vision et aux arguments du software freedom conservancy, cette liste sera migrée prochainement vers une autre plateforme.

Des alternatives existent et vont se créer. Voici une liste de plateformes alternatives

Sinon vous pouvez mettre en place vous même votre hebergement de gestionnaire de projets à l'aide de ces outils

Logiciels open-source et logiciels libres (free software)

  • gnu.org, le site officiel de l'OS GNU/Linux et par extension du mouvement du logiciel libre. Vous y trouverez toutes les informations pratiques sur le libre
  • opensourcealternative, trouver une solution alternative open-source à ...
  • degooglisons-internet, remplacer tous vos services tiers propriétaires par du libre (partage de fichiers, communication...)
  • Framasoft, association d'éducation populaire soutenant plusieurs projets open-source dont Framalibre
  • flop!EDT, gestionnaire d'emploi du temps personnalisé open-source
  • Framalibre, l'annuaire des logiciels libres
  • librejs, une extension pour navigateur pour bloquer uniquement l'execution du JavaScript non libre
  • Le piège JavaScript, Richard Stallman (traduction fr), article de Richard Stallman traduit en français sur les problèmes que posent l'execution de code Javascript dans le navigateur vis à vis du logiciel libre et de son éthique
  • En quoi l'open source perd de vue l'éthique du logiciel libre, article originellement publié par Richard Stallman sous le titre Why Open Source Misses the Point of Free Software. Pour bien comprendre les différences philosophiques et pratiques dans des cas très concrets entre les deux mouvements

Capture/Édition vidéo

  • Pitivi, très bon éditeur vidéo open-source, simple à utiliser, avec beaucoup de fonctionnalités avancées et puissant (notamment à l'export impeccable)
  • unscreen, retirer l'arrière plan d'une vidéo en ligne (automatique)
  • ffmpeg, collection de logiciels libres maintenus depuis les années 2000 pour manipuler les flux audio et vidéo. Indispensable
  • HandBrake, un converteur vidéo open source pour convertir et compresser vos vidéos en utilisant les meilleurs algorithmes de compression
  • Shrink my video!, un outil en ligne pour compresser facilement vos vidéos (préférer handbrake pour faire tout le travail en local si possible)
  • SimpleScreenRecorder, un très bon logiciel, simple et complet, de capture vidéo de son écran et du son, parfait pour enregistrer des screencasts et des tutos.
  • OBS Studio, logiciel libre d'enregistremetn vidéo et de streaming en direct multiplateforme

Principes généraux et fondamentaux

Standards

Organismes

Une liste non exhaustive d'organismes qui implémentent et maintiennent les standards ouverts dans différents domaines de l'informatique.

  • OASIS OPEN, groupe de collaboration (individus, entreprises, gouvernements, etc.) en charge de l'implémentation et de la maintenance de standards informatiques ouverts, comme DITA, DocBook, OData, OpenDocument, etc. Voir tous les projets ici.
  • W3C, le World Wide Web Consortium, en charge de maintenir et développer les standards ouverts du Web.
  • WHATWG, le Web Hypertext Application Technology Working Group est un groupe de collaboration qui travaille sur la standardisation des navigateurs webs (voir ici les standards sur lesquels ce groupe travaille) et des standards associés comme le protocole WebSocket, le Storage, XMLHttpRequest, etc. C'est un groupe qui a été formé en 2004, suite à un atelier organisé par le W3C, par des personnes travaillant chez Apple, Mozilla et Opera. Il a été crée en réponse au fait que le W3C partait un peu en cavalier seul sur le futur du standard HTML avec XHTML (qui au final a donné HTML5) sans prendre assez en compte l'état de l'industrie du développement informatique. Il représente surtout le côté industrie du web et les vendor de navigateur web, et cherche à accélérer le développement des standards pour les implémenter rapidement, pour le meilleur et pour le pire (surtout le pire). Aujourd'hui Google et Microsoft ont rejoint ce groupe et il travaille en collaboration avec le W3C dont certains membres en font également partie.
  • Internet Engineering Task Force (IETF), L’Internet Engineering Task Force (IETF), élabore et promeut des standards Internet, en particulier les standards qui composent la suite de protocoles Internet (TCP/IP). L'IETF produit la plupart des nouveaux standards d'Internet. Le but du groupe est généralement la rédaction d'une ou plusieurs Request for comments (RFC), nom donné aux documents de spécification à la base d’Internet.
  • Open Container Initiative (OCI), gouvernance pour maintenir et garantir des standards ouverts sur les formats de conteneurs et de leurs environnement d'exécution. En font partie Docker Inc., Red Hat, Google, etc.
  • Web Developer Experience (WebDX) Community Group, groupe de travail de la W3C regroupant les principaux éditeurs de navigateurs web (Mozilla, Microsoft, Apple, Google ) pour créer un ensemble connu de fonctionnalités sécurisées. Le travail de ce groupe se retrouve sous la forme du Web Platform Baseline, un ensemble d'informations claires sur la compatibilité des navigateurs avec les fonctionnalités du web (actuelles et à venir) que l'on peut utiliser en sécurité (en production). Ces informations se retrouvent sur la MDN Web Docs.
  • MDN Web Docs, documentation open-source et collaborative de l'ensemble des technologies du web (CSS, HTML, Javascript, Wasm, Web API). C'est le projet de documentation de la plateforme de développement web. Maintenue par le groupe de travail Open Web Docs (OWD)
  • Interop, groupe de travail spécialisé dans l'interopérabilité entre les navigateurs (implémentations des standards du web). Ce groupe maintient notamment une suite de tests cross-browsers

SGML

SGML est un métalangage à balise pour définir des langages à balise (markup langages). SGML est à l'origine de tous les langages à balise, comme HTML ou XML qui en sont des applications.

XML

Un mot sur le XML

Le standard XML (eXtensible Markup Language) est extrêmement puissant pour construire des documents robustes, échangeables et faciles à maintenir (lire et écrire) dans le temps. Contrairement aux idées reçues, il n'est pas mort et n' a pas vocation à être remplacé par JSON car les deux standards n'ont pas du tout la même histoire, ni les mêmes ambitions. Loin de là...

XML est un format universel pouvant être lu facilement par des humains et par des machines. XML est né en 1998 du standard SGML (qui a donné l'application HTML, un sous-ensemble du standard SGML, plus simple et plus permissif adapté au web). XML est également une simplification du standard SGML.

Son but initial était de faire office de standard pour conserver les documents numériques dans un format indépendant des machines, des OS ou des supports physiques. L'idée du W3C était de créer un standard qui permettra de lire votre document sur une techno inconnue dans 2000 ans. C'est un projet fascinant. Il était avant tout destiné à des documents narratifs (rapports, articles, catalogues). Il est basé sur la séparation stricte du contenu et de la forme.

Les développeurs s'en sont emparés ensuite pour faire du maintien d'enregistrement pour leurs applications, ce qui n'avait pas été envisagé dans sa conception initiale.

XML s'accompagne d'autres standards comme

  • XPath, un standard qui permet de requêter la structure XML pour naviguer dans la structure de données et la manipuler
  • XQuery, un standard qui permet de reqûeter l'abre via un langage déclaratif (le pied) comme le SQL
  • XSLT, standard plus avancé que le CSS pour mettre en forme les données XML pour la publication (vers un autre fichier XML, le web, le papier, etc.). Permet également de modifier l'affichage d'éléments, de les réorganiser etc...
  • DTD, pour la validation des données par un schéma
  • et d'autres encore (XML Schema, etc.)...

Tous ces standards font d'XML un outil à avoir dans sa poche lorsque l'on a besoin d'échanger ou de construire des structures de données complexes et validables, ou de produire des documents indépendemment de leurs usages (web, présentation, impression papier, etc.).

Apprendre le XML et ses standards associés

Applications XML de prestige

  • Docbook, application XML dédiée à la publication de documents, principalement des articles et des livres d'informatique mais pas que. Le projet a originellement été développé par l'éditeur O'Reilly pour ses éditeurs, il est aujourd'hui maintenu par OASIS OPEN, un groupe de collaboration travaillant et maintenant des standards
  • Dita Open Toolkit, implémentation open-source du standard Dita, the Darwin Information Typing Architecture, projet également maintenu par OASIS OPEN. C'est un framework de documentation et de publication technique où l'on va pouvoir développer et maintenir une source de vérité pour la publier vers différents formats (PDF, HTML, Markdown, etc.)

Standard SQL et bases de données relationnelles

Sécurité des applications web / Audit

Réseau

Protocoles

TCP/IP

SSH

HTTP

OS

  • Minix 3, OS développé par S. Tanenbaum dont s'est inspiré Linus Torvalds pour créer le noyau Linux. OS destiné au départ à des fins pédagogiques, notamment via le livre Operating Systems Design and Implementation, 3rd edition
  • Minix 3, background, un article très intéressant de Tanenbaum sur l'histoire des OS Unix-like, de Minix, de ses rapports avec l'équipe Unix du Bell Labs (Ken Thompson, Dennis Ritchie, Weinberger, etc.) et de Linux.
  • Operating Systems, three easy pieces, ou le Comet OS Book, de Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison), publié par l'université du Wisconsin, depuis 2008 (continuellement mis à jour). Accessible en ligne (version HTML). Une référence sur les systèmes d'exploitation.
  • Operating System Concepts, 9th edition
  • NOC:Introduction to Operating Systems, IIT Madras, de Chester Rebeiro, Indian Institute of Technology. Apprendre les fondamentaux des OS et bien maitriser le langage C. Vous pouvez télécharger les vidéos, les transcripts et le support complet du cours.

Infrastructure

  • Load Balancing, un article bien fait avec visualisations sur les répartiteurs de charge (load balancer) et les différentes stratégies d'implémentation

Request For Comments (RFC), drafts et W3C

Des documents décrivant les aspects et spécifications techniques d'Internet. La source, et des lectures arides mais très intéressantes quand on prend le temps de fouiller certaines sections. Certains d'entre eux définissent des standards.

Unix

REST, Architecture of the World Wide Web

Spécification OpenAPI

Spécifiques à un langage/écosystème

PHP

  • php.watch, news PHP, articles, changements à venir. Le blog officiel qui suit le développement de PHP
  • PHP: The Right Way référence accessible aux standards modernes de PHP
  • The PHP Foundation, groupe de travail sur l'écosystème PHP. En savoir plus.
  • PHP-FIG, le PHP Framework Interop Group, à l'origine des PSR
  • packagist, dépôt principal des composants PHP
  • pecl, le repertoire officiel des extensions de PHP (Modernisation de la distribution et maintenance envisagée par la communauté et initiée par la PHP Foundation et Derick Rethans)
  • PHP Usergroup, trouvez des usergroups PHP près de chez vous
  • Afup, association française des utilisateurs de PHP
  • PHP Documentor, produire de la documentation directement à partir des sources
  • FrankenPHP, un serveur PHP moderne écrit en C et Go, maintenu par Kevin Dunglas, qui permet d'utiliser HTTP 1.1, 2 et 3, et supporte des réponses HTTP multiples. Remplace PHP-FPM
  • NativePHP, framework PHP pour déployer des applications desktop, maintenu par Marcel Pociot. Attention, outil toujours en alpha (2023)
  • psalm, analyseur statique de code, notamment inspiré de Hack
  • phpStan, l'analyseur statique (at compile time) du code PHP par excellence. Find bugs without writing tests
  • phpCodeSniffer, l'outil par excellence pour appliquer des standards de manière semiautomatisé à son code source. Composé de deux programmes: phpcs pour sniffer les erreurs dans votre code et phpcbs pour corriger automatiquement ce qui peut l'être.
  • phpBench, un framework de benchmark pour PHP, inspiré de PHPUnit
  • Le blog de Fabien Potencier
  • Le blog de Kévin Dunglas, membre core de Symfony, mainteneur de FrankenPHP et du protocole Mercure (entre autres). Un grand développeur et contributeur de l'écosystème PHP notamment, plein d'humilité
  • Functional Programming in PHP
  • PHP Quality Assurance

Voir le dépôt dédié à la veille PHP.

C

JavaScript

  • p5js, une librairie JavaScript open-source pour le code créatif. Avec un focus pour rendre le code accessible et inclusif pour les artistes, designers, formateurs, débutants.
  • leaflet, le projet open-source pour développer des cartes interactives et mobile-friendly.
  • jquery, jquery est le parfait exemple de bibliothèque bien faite. On lit souvent qu'elle est morte. Il y a de quoi rire. Jquery n'est pas mort, jquery est partout. Jquery a eu un rôle majeur dans l'évolution du standard de JS. La bibliothèque est tellement solide et populaire qu'il a même été suggéré d'embarquer jquery (en cache) dans tous les navigateurs pour le futur standard HTML6. Idéalement, dans un monde parfait, jquery devrait disparaître tout comme JavaScript devrait disparaître du navigateur. En effet, les besoins de JS reculent toujours d’avantage à chaque nouvelle version du HTML. En attendant, ce n'est pas demain la veille alors autant s'y mettre pour au moins 3 raisons (a) jquery est partout, si vous travaillez sur du legacy code vous allez tomber dessus, (b) c'est hyper pratique et puissant et la surcouche n'éloigne pas trop du DOM, on apprend des choses sur le DOM qui seront toujours utiles même dans un monde post-jquery, même dans un univers vanilla JS (c) ça permet aussi de prototyper rapidement des interfaces dynamiques même si on décide ensuite de passer sur un framework JS (d) ça demande quand même de comprendre le vanilla JS. Voici un tout petit dépôt où l'on a sélectionné l'essentiel du fonctionnement de jquery pour bien comprendre comment cette bibliothèque fonctionne. jQuery chilling (source de l'image)
  • Vanilla JS, le site web qui promeut le vanilla JS

Docker et conteneurs

Suivi de projets

  • clickup, (de plus en plus bloated...)
  • Mattermost, alternative open source à Trello, outil de workflow, travail collaboratif, suivi de tâches, etc.

Gestion de projet, gestion de l'apprentissage et des connaissances d'équipe

Dessin

  • excalidraw, dessiner des diagrammes rapidement avec un look and feel fait-main, en local ou sur le web
  • minimator, un éditeur graphique SVG minimaliste dans le navigateur. Dessinez à l'aide d'une grille et exportez facilement votre svg
  • dddraw, un éditeur graphique SVG gratuit en ligne

Quelques SGBD

  • PostgreSQL, le choix à faire lorsqu'on part sur une base de données relationnelle. Projet open-source maintenu depuis 30ans, le SGBD qui va le plus loin sur l'implémentation du standard SQL
  • Dalibo, l'expertise PostgreSQL, ressources gratuites pour se former sur PostgreSQL
  • ClickHouse, base de données relationnelle orientée colonnes. Optimisé pour l'OLAP. Vérifiez bien avant de vous en servir pour votre projet que ce système soit adapté à votre cas d'utilisation
  • Datomic, un SGBD développé par Rich Hickey. En plus de concevoir la base de données comme une valeur ce modèle incorpore le temps de manière native. Depuis avril 2023, Datomic est accessible gratuitement
  • SQLite, un SGBDR qui contrairement à la plupart des autres systèmes n'utilise pas l'architecture client/serveur et permet de disposer d'une base de données relationnelles dans un simple fichier. On peut utiliser DB Browser for SQLite pour avoir un gestionnaire et inspecteur de bases de données avec GUI.

Modélisation de bases de données relationnelles

Outils de conception de base de données

  • AnalyseSI, un outil open-source distraction-free basé sur Merise 1 pour modéliser une base de données (MCD) et produire un MPD et scripts SQL
  • Oracle SQL Developer Data Modeler, outil graphique complet et plus complexe pour la conception de base de données, proposé par Oracle. La documentation accessible depuis le logiciel est de bonne qualité, le blog d'helifromfinland est rempli d'articles utiles sur l'outil

Analyse, conception : UML et alternatives

Outils d'administration (et conception parfois) de base de données

  • dbeaver, multiplateforme, multi-sgb, open-source que demande le peuple
  • adminer, une alternative open-source a phpMyAdmin (aussi open source) qui commence à être chargé historiquement. Plus légèr, plus performant, plus sécurisé, plus user-friendly. Prend en charge les base de données MySQL, SQLite, PostgreSQL, MS SQL et Oracle
  • pgAdmin, le système d'administration open-source le plus poussé pour Postgresql
  • pspg - Postgres Pager, pspg est un navigateur Unix pour naviguer dans les tables d'une base de données relationnelle

Architecture logicielle

Maintenabilité

Développement informatique et science académique

  • Best Practices for Scientific Computing, un papier en libre accès sur les pratiques recommandées pour le développement, la distribution et la maintenance de logiciels dans le milieu académique

Développement informatique et écologie (ecoconception)

Voir aussi les approches radicales et les fondements du web

Programmation fonctionnelle

Général

Haskell

Voir ce bouquin de référence.

Clojure

Elm

Elm est un langage/ecosystème fonctionnel pour développer des applications web. Il compile vers Javascript. Elm possède peut être le compilateur le plus human-friendly au monde

Racket, le langage-oriented programming language

Langages Assembleur

Rich Hickey

Et oui, Rich Hickey a le droit à sa propre section. Allez directement voir ce dépôt, le job est déjà fait avec talent pour recenser tous ses travaux.

Défis

Apprenez à coder via des défis

  • Root Me, testez vos compétences en hacking
  • Sad Servers, like leetcode for linux
  • codewars, affutez votre lame en réalisant/publiant des katas
  • codinGame, on ne présente plus cette plateforme
  • Flexbox froggy, apprendre CSS flexbox via des challenges
  • Flexbox defense, un tower defense où l'on joue en CSS
  • Knights of the Flexbox Table, un jeu pour apprendre Tailwind CSS
  • Guess CSS, deviner le HTML/CSS utilisés dans des puzzle games
  • Tenix, challenges originaux et corrigés pédagogiques pour découvrir de nouveaux concepts et progresser. PHP, javascript et Python.

Markdown

Markdown, Markdown everywhere !

Le Markdown est tout simplement le meilleur format pour créer de la documentation sur tout ce que vous faites sur votre machine. C'est un langage à balises léger. Facile à lire, facile à écrire. Il a été pensé originellement pour écrire pour le web.

Facile à apprendre, facile à exporter vers tout un tas de formats markup (HTML, PDF, LaTeX, XML, etc.). C'est le markup ultime pour écrire, prendre des notes, partager et surtout créer une base de connaissances, que ce soit en local ou sur le web. Markdown refait apprécier le goût du web : content first, les hyperliens et un processus de publication simple et facile.

Markdown est un "standard (volontairement) incomplet" ce qui a laissé la place à de nombreuses implémentations différentes.

  • Liste des implémentations Markdown, les différentes implémentations ou parsers Markdown
  • CommonMark, une spécification Markdown créée en 2004 par John Gruber et Aaron Swartz, implémentée dans de nombreux langages de programmation
  • Apprendre CommonMark en quelques minutes
  • MultiMarkdown, superset de Markdown qui permet de produire des document complets bien formés. Ajoute des features utiles manquantes à Markdown, notamment la gestion de meta-données et tout ce qui touche à la connectivité entre documents Markdown
  • marpit, framework minimal pour créer des présentations en Markdown.
  • Mark Doc, superset et framework Markdown, open-source, orienté publication de contenu. L'outil a été développé par Stripe, pour développer et maintenir sa documentation structurée, complexe et de qualité.
  • Babel Mark 3, la spécification originale de Markdown (proposée par John Gruber) n'étant pas complète, de nombreuses implémentations de Markdown existent avec leurs spécificités. Babel Mark 3 vous permet de comparer le résultat (HTML) de nombreuses implémentations de Markdown

Présentations (slides) avec Markdown

  • Marp, créer ses diapos dans un écosystème full Markdown. Réutiliser ainsi facilement le contenu structuré de vos présentations pour les publier en PDF ou HTML, ou inversement. Basé sur Marpit,
  • poc Marp, un dépôt simple qui sert de référence sur l'usage de Marp
  • Revealjs, un autre outil, plus lourd mais permettant de faire des présentations plus complexes, basé sur javascript. créer des présentations pour le web mais pas que. Et surtout générer des présentations directement à partir de vos notes en Markdown.
  • Slides, si vous êtes plutôt éditeur graphique/GUI, Slides est une application web qui vous permet de créer vos présentations à la main grâce à un éditeur de qualité, et vous les heberge en ligne.

CV

  • resume.md, écrivez votre CV en Markdown, stylisez le en CSS, exportez le en PDF/HTML

Éditeurs de texte

  • emacs, le projet open-source le plus célèbre après Linux. Faut-il encore le présenter ? Bonne alternative à Vim si vous n'aimez pas les modes.
  • Learn Vim for the last time: A tutorial and Primer
  • ReText, un éditeur petit et puissant pour le Markdown et les langages Markup.
  • Ghostwriter, un éditeur markdown open-source distraction-free, très agréable, minimaliste et configurable.

Écriture technique

Expressions régulières (regex)

Boîte à outils

sed

  • sed, an introduction and Tutorial, par Bruce Barnett. sed (stream editor) est l'éditeur de flux par excellence. Comme l'indique l'auteur de ce site web, sed est un outil merveilleux mais sa documentation laisse à désirer. Privilégiez ce site pour vous y initier

sloccount

  • un outil open-source pour estimer le nombre de lignes de codes d'un projet. Intègre des modèles pour estimer le coût de la codebase (jours-hommes, argent, etc.). Développé par David A. Wheeler

rclone

  • rclone, "The Swiss army knife of cloud storage", une interface en ligne de commande pour gérer (copier, déplacer, synchroniser) ses fichiers sur les hébergements distants (Dropbox, Google Drive, etc.)

wwb (et descendants)

writer's workbench (wwb) était un correcteur de grammaire automatique très avancé, développé aux Bell Labs par Lorinda Cherry et Nina Macdonald. Cet outil a aidé le groupe UNIX à produire de la documentation technique et des documents de meilleure qualité. Un article complet y a été consacré dans le magazine Byte en 1983. Vous pouvez y accéder grâce au précieux travail d'Internet Archive. Sur GNU/Linux, ce projet s'est décliné sous la forme de plusieurs programmes comme spell, style et diction. Une version en ligne est également accessible via ce site web.

Manipulation de fichiers, documents

Aujourd'hui il y a tellement de webservices gratuits pour le faire. Mais quand il s'agit d'automatiser, de se soucier parfois de la base de données qu'on alimente avec nos photos et nos textes, il est toujours bon de se rappeler qu'on a tous les outils en local pour le faire dans le respect de notre vie privée et pour le meilleur.

Convertir des documents, éditer des pdf

  • pandoc : convertisseur de document universel (par exemple markdown vers pdf). Très puissant, facile à scripter et automatiser
  • ImageMagick, L'éditeur d'images par excellence. Exemple, convertir une image en pdf au format A4 convert input.jpg -page a4 output.pdf
  • pdftk (the pdf toolkit): concaténer/découper des pdf. Par exemple pdftk input1.pdf input2.pdf output.pdf

Compresser, optimiser des documents (images, pdf etc..)

  • jpegoptim, un outil pour optimiser/compresser des images au format jpeg,jpg. Une fois installé on peut aussi controler la qualité de la sortie avec un simple paramètre. Exemple : jpegoptim -m50 *.jpeg va compresser tous les fichiers .jpeg du repertoire courant (sur place par défaut attention !) avec une qualité de 50 (cette valeur pouvant aller de 0 à 100). Plus d'infos en lisant le manuel man jpegoptim

Capture vidéo, audio

  • simplescreenrecorder, excellent logiciel libre de capture vidéo/audio (screencast), développé par Maarten Baert. Très simple à utiliser et à configurer

Androïd

  • F-droid, gestionnaire et catalogue de logiciels libres pour la plateforme Android. Paquets vérifiés, mis à jour. Idéal pour vous débarasser petit à petit des applis propriéataires sur votre smartphone. Il n'y a qu'à fouiller et essayer
  • neutriNote CE, une plateforme d'édition, de prise de notes en Markdown/LaTeX, dessins compètement chercheable et que l'on peut backup avec un service d'hébergement pour synhroniser des documents sur tous nos appareils. Le top
  • Nunti, un gestionnaire de flux RSS discret et minimaliste
  • NewPipe, un client Youtube léger sans pub (alternative à feu YoutubeVanced). Permet également de rassembler au même endroit les flux de Youtube, SoundCloud, Bandcamp et PeerTube

Langages/technos à découvrir

Apprenez ce qui vous fait plaisir. Même si vous ne trouverez sûrement pas de poste SmallTalk sur LinkedIn aujourd'hui, apprendre SmallTalk fera de vous un·e meilleur·e programmeur·se. Tout est transférable, aucun chemin d'apprentissage n'est inutile. Le passé est rempli d'idées, de concepts, de méthodes, de technologies intéressantes et longuement débatues collectivement par des personnes intelligentes. Profitons-en et regardons en arrière. La majorité des modes, de ce qui est nouveau dans le domaine informatique, de la hype, sont en fait des vieilles idées des années 60 ou 80. Il faut d'abord aller voir dans le passé, on est surpris d'y constater que la plupart des idées nouvelles ne sont pas nouvelles.

Du bruit au bruit

Ce dépôt n'échappe pas à la règle et ajoute du bruit au bruit. Cela représente un paradoxe assez connu de celles et ceux qui veulent apprendre le web et se retrouvent confronté·e·s à un flow de ressources complètement impossible à digérer. Ces questions sont d'ailleurs discutées dans ce podcast, consacré au sujet Comment apprendre à devenir développeur web ?

SmallTalk

  • squeak, implémentation open-source de SmallTalk
  • pharo, l'héritier direct de SmallTalk, à la fois langage purement orienté objet et environnement de développement
  • Byte Magazine (1981), célèbre édition de Byte Magazine couvrant le langage SmallTalk

Assembleur

Prolog

Scheme (Lisp dialect)

Scheme est un dialecte de Lisp, crée au MIT dans les années 70 par Gerald Jay Sussman et Guy L. Steele. Il conserve les aspects essentiels de Lisp, il est particulièrement adapté pour apprendre la programmation et ses concepts essentiels.

Tcl/Tk

Tcl (Tool Command language) est un langage open-source versatile permettant de développer des applications Desktop, web, CLI, etc. Il vient avec Tk, un GUI toolkit pour développer des applications natives pour toutes les plateformes. Visiter le wiki pour en savoir plus.

RGPD

  • Guide RGPD du développeur, le guide pour rendre son système en accord avec les principes règlementaires du RGPD, publié par la CNIL

Ebooks

Allez fouiller sur pdfdrive, ce site est incroyable. Vous trouverez certainement ici le bouquin que vous cherchez.

Sur le web

Quelques classiques (non exhaustif)

En cours de construction...

  • Structure and interpretation of computer programs (SICP), 2nd edition, de Harold Abelson, Gerald Jay and Julie Sussman, publié chez MIT Press, 1996. Ce livre, et le cours du MIT qui se trouve derrière, est juste à part. Les auteurs vont au coeur de ce que signifie programmer en tant qu'activité humaine, en introduisant le langage Scheme, un dialecte de Lisp. Ce livre va rajeunir avec le temps. Son objectif est de montrer ce que sont réellement les programmes et comment gérer la complexité intellectuelle des grands systèmes d'information. Et comme il est tout de suite dit dans l'intro du cours "Computer science is a terrible name for this business... First of all, it's not a science... It's also not really very much about computers" (Harold Abelson)
  • The C programming language, the white book, écrit par les deux géants Dennis Ritchie, créateur du langage et Brian Kernighan, publié chez Prentice Hall, 1978. Le livre décrit, avec un ton unique, tout le langage C avec des exemples et la concision des grandes heures. La tout première référence sur le langage C. A noter que l'ouvrage a eu droit à une deuxième édition dix ans plus tard (1988), lorsque le langage C a été normalisé par l'ANSI (1989) sous le nom équivoque d'ANSI C.
  • Programmation: Concepts, techniques et modèles, écrit par Peter Van Roy et Seif Haridi, traduction française publiée chez Dunod, 2007. Un livre fondamental sur les principes de la programmation. Excellent support pour réaliser de nombreux cours sur la programmation (cours, exercices, tp). Peter Van Roy a également initié le développement de la plateforme Mozart, un environnemment de développement dédié à la pédagogie et à la recherche
  • Designing data intensive applications, de Martin Kleppmann, publié chez O'Reilly, 2017.
  • RESTful Web Services, de Leonard Richardson, Sam Ruby, O'Reilly, 2007. S'il y a un livre à lire/étudier/feuilleter/avoir sur REST c'est celui-ci. Ce livre est passé sous licence Creative Commons dans le cadre du projet O'Reilly Open Books. Accéder à la version en ligne/PDF gratuite
  • Algorithms + Data Structures = Programs, de Niklaus Writh, publié chez Prentice Hall, 1976.
  • The Art of Computer Programming (TAOCP), de Donald E. Knuth, publié chez Addison-Wesley, 1968-1969
  • Software Engineering, Tenth Edition, un livre canonique sur l'architecture logicielle et l'ingénieurie logicielle (conduite de grands projets informatiques), de Ian Sommerville
  • Operating Systems, three easy pieces, ou le Comet OS Book, de Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison), publié par l'université du Wisconsin, depuis 2008 (continuellement mis à jour). Accessible en ligne (version HTML). Une référence sur les systèmes d'exploitation.
  • Etudes for Programmers, de Charles Wetherell, publié chez Prentice-Hall, 1978
  • The Art of Plain Talk, de Rudolf Flesch, publié chez Harper & Row, 1946. Sur comment écrire de manière à être compris par son audience. Idéal pour améliorer ses compétences en écriture technique (spécifications, documentation)
  • Code Complete, 2nd Edition, de Steve McConnell, publié chez Microsoft, 2004. Un classique tout en un sur la construction de programmes. A pour ambition de faire le pont entre la recherche académique et l'industrie sur les techniques pour programmer de manière efficace

Refactoring, travailler sur du code legacy

Software design

  • A philosophy of software design, de John Ousterhout, publié par la Stanford University, 2018. Excellent ouvrage clair et concis sur la complexité logicielle (sa nature et ses origines) et sur des principes de design généraux. Plein d'humilité et de partage d'experience avisée.
  • Domain driven design, de Eric Evans, publié chez Addison Wesley, 2003

Blog design

Architecture de l'information / Recherche d'information

Les livres de Peter Morville, un pionnier de l'architecture informationnelle. Bibliothécaire de formation, il s'est ensuite intéressé au web. Hyper intéressant

WordPress

Sécurité des applications web

Webmaster

Pour apprendre les bases du web, mettre en prod, configurer un serveur, la programmation CGI

HTTP

Perl

Test driven development

Programmation CGI

Functional programming

Haskell

Rust

  • The rust programming language, considéré comme la référence, mis a disposition en ligne gratuitement par l'éditeur. Souffre cependant de critiques sur le style, donc ne vous conviendra pas forcément
  • Programming Rust, une édition saluée d'O'Reilly

Développement de jeux vidéos

  • Game programming patterns (en), une référence dans le domaine, un livre de Robert Nystrom. Ce livre couvre l'architecture et le design dans le domaine du développement JV.

  • Artificial Intelligence for games, 2n edition (en), un très beau livre très complet qui référence énormément de patterns, stratégies, techniques et algorithmes pour tous vos besoins en terme d'IA. Vient avec une bibliographie très complète pour approfondir un sujet qui a su retenir notre attention

Génération procédurale et game design

Algorithmes

Le projet Open Books de O'Reilly

L'excellent éditeur O'Reilly, éditeur spécialisé en informatique depuis 1978, met en ligne gratuitement beaucoup d'anciennes éditions qui ne sont plus publiées via son projet de bilbliothèque ouverte. Vous pouvez retrouvez tous ces livres ici, téléchargeables en PDF et/ou consultables en ligne.

Éducation, outils/langages pour initier à la programmation

  • 1,2,3... codez !, Le projet « 1, 2, 3… codez ! » vise à initier élèves et enseignants aux sciences informatiques, de la maternelle au collège. Il propose à la fois des activités branchées (nécessitant un ordinateur, une tablette ou un robot) permettant d’introduire les bases de la programmation et des activités débranchées (informatique sans ordinateur) permettant d’aborder des concepts de base de la science informatique (algorithme, langage, représentation de l’information…)

Hacker culture

Compilateurs, interpréteurs

  • Compiler Explorer, un petit outil en ligne qui transforme votre code en code assembleur sur différentes architectures. Un outil intéressant pour expérimenter.
  • A Compiler Writing Journey (en), le dépôt de DoctorWtk. Il y documente étape par étape le développement d'un compilateur pour un subset du langage C. Un véritable livre en ligne avec exemples et pratiques, parfait pour débuter le voyage sur les compilateurs.
  • Crafting Interpreters (en), le site du livre éponyme de Robert Nystrom, développeur actif du langage Dart chez Google. Tout le livre est gratuit en ligne ! Une référence d'un auteur sérieux qui a déjà à son actif quelques ouvrages de grande qualité (dont Game Programming Patterns, lui aussi complètement gratuit en ligne).

Mathématiques, mathématiques et informatique et autres aspects bas niveau

Ressources pour formateur·trice

En vrac

Articles, Billets de blog

Papiers

Blogs

Le coeur du web

Podcasts

Cours

Conférences et séries notables

La vérité par l'humour

Génération procédurale

Game Developers Conference (GDC)

La conférence annuelle de la communauté du développement du jeux vidéos. Des tonnes et des tonnes de conférences gratuites, de qualité (également dans la captation) à regarder.

Chaînes YouTube

  • Krazam (en), un humour tech de niche unique au monde
  • ici Amy Plant (fr), cherchez pas cette meuf produit du contenu unique
  • The Coding Train (fr), l'innénarable Daniel Shiffman. Apprendre plein de trucs en codant des petits projets dans le fun
  • PHP UK Conferences (en), oui c'est la chaine de la conférence éponyme et oui ça parle de PHP. Toutes les captations des conférences de chaque année sont présentes ici. Pour tous les dev qui veulent se maintenir informés sur PHP et son écosystème
  • AFUP PHP (fr), des tonnes de conférences de la communauté PHP française, beaucoup de conférences vraiment intéressantes et de qualité
  • GDC France (fr), notre GDC à nous. Héberge notamment toutes les captations du DevFest ayant lieu tous les ans à Nantes
  • DesignerUP (en), améliorez votre savoir-faire en UI/UX et design produit
  • ParfaitementWeb (fr), une chaîne très appréciable qui est content first, va a l'essentiel et dont le contenu est de qualité sans chercher à capitaliser sur les tendances et montre un état des lieux honnête du développement web
  • Galileo51 Galilei (fr), conférences sous-titrées en français sur la physique ou l'informatique/logiciel (oui c'est la chaine de l'auteur principal, un peu d'auto-promotion mais impartiale et objective)

Playlists

Fondamentaux, radical

Contribuer à des projets open-source

Par où commencer ? Comment faire ?

Rester informé·e

Prendre soin de soi

Des heuristiques à la volée

  • La reconnaissance, ça passe avant tout par le salaire. Même si on aime notre boulot, un boulot c'est un boulot. Faites-vous payer convenablement. C'est plus facile à dire qu'à faire, c'est un rapport de force à négocier, mais tout s'apprend, notamment à se (faire) respecter.
  • Programmer c'est cool mais y'a autre chose dans la vie
  • Quand on bloque sur un bug on s'arrête, on fait autre chose, et on revient avec la solution
  • Quand on est fatigué, on s'arrête (au moins un moment)
  • Quand on voit qu'on arrive plus à rien, on arrête. Si on ne peut pas arrêter tout de suite alors on fait des petites choses qui traînent et qui restent à faire. Au moins on avance et c'est satisfaisant.
  • On peut tenir un journal (en Markdown bien sûr !) où on note chaque jour tout ce qu'on a fait dans la journée (on peut limiter au taf, mais on peut l'étendre à tout ce qu'on veut en fonction des besoins). On fait des listes avec des entrées courtes, pas besoin de détails. Ça sert à quoi ? A se dire "ah ouais quand même j'ai fait des trucs aujourd'hui même si j'arrête ma journée sur un bug que j'ai pas résolu et que j'ai l'impression d'être un gros looser"
  • Quand on bloque sur un truc et que quelqu'un vous propose d'aller X (au choix boire un verre, manger un truc, aller voir un film, etc.) ne vous dites pas "non je ne peux pas, je dois finir ça d'abord. M***, si j'étais bon je pourrais résoudre ce problème et aller X. Mais comme je suis débile bin je dois rester devant mon ordi tout·e seul·e à galérer." Essayez plutôt "J'arrive dans 5 minutes" et lâchez votre ordi.
  • Faire un peu de sport ça fait toujours du bien. Même si on en fait pas beaucoup, au moins se créer une habitude. Par exemple "Le mercredi à 17h je vais à la piscine, c'est non négociable, même si je nage 5min". Le fait d'y aller, qu'on ai envie ou pas, déjà c'est une victoire et le début d'habitudes saines pour vivre plus longtemps
  • Faire (très) attention au burnout et identifier les symptômes le plus tôt possible. Vous n'avez pas envie de vivre ça (votre conjoint·e/chat·te/chien·ne non plus). Un témoignage d'un dev
  • [DevFest Nantes 2022] Ctrl+Alt+Depression, une très bonne et courageuse conf/partage d'expérience sur la dépression et le burnout, donnée par Manon Gruaz au DevFest de Nantes 2022.

Prendre soin de sa machine et de ce qu'il y a dessus au quotidien

  • Lynis, outil d'audit open-source pour les systèmes d'exploitation Unix/Linux. Il vous fera un audit complet des vulnérabilités (configuration, binaires, droits et autorisations des utilisateurs, vulnérabilités de l'OS, etc.) de votre machine à partir duquel vous pouvez prendre les mesures nécessaires.
  • rkhunter, outil pour détecter et supprimer les rootkits (logiciels malveillants donnant un accès non autorisé à un ordinateur de manière furtive) qui pourraient s'être faufilés sur votre machine.
  • Linux Malware Detect, un logiciel anti-malware pour les systèmes Linux.
  • Bleachbit, logiciel open-source gratuit, puissant (il est sorti en 2008 et maintenu depuis), multiplateformes de nettoyage d'espace disque sécurisé, de protection de la vie privée et d'optimisation. Pour prendre soin dans le temps de sa machine. Bleachbit vient avec une interface graphique mais également une interface en ligne de commande pour être utilisé directement depuis vos scritps et workflows.
  • Stacer, optimisation et monitoring de votre machine linux, avec une interface graphique sympa
  • backup-manager, un programme configurable, scriptable, simple et puissant pour faire des backups automatiques ou manuels, complets/incrémentaux, de vos données et vos bases de données. Que vous utilisiez ce logiciel ou un autre, peu importe, la première sécurité c'est de ne pas perdre vos données. Tape is cheap, and rm is forever.

Géométrie, art génératif, algorithmes, procédural

Correction

Dépôts

D'autres dépôts comme celui-ci

Général

Sécurité

  • Damn Vulnerable Web Application, une application web PHP/MySQL extrêmement vulnérable. Son objectif principal est d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement légal, d'aider les développeurs web à mieux comprendre les processus de sécurisation des applications web et d'aider à la fois les étudiants et les enseignants à apprendre la sécurité des applications web dans un environnement de classe contrôlé.

Outils "no code", "low code" ou plutot visual code

Côté client (Front-end)

Développement de jeux vidéos

Applications web et réseaux à héberger soi-même

  • Awesome-Selfhosted, un dépôt qui liste des logiciels libres (free software) webs et réseau à herberger soi-même

Conférences

Revues et magazines informatiques

  • magazines abandonware, bibliothèque numérique consacrée aux anciens magazines informatiques. Découvrir ou redécouvrir des numéros complets d'anciens titres informatiques francophones

Machine learning

Spécifique à une techno

PHP

  • Awesome PHP, une liste organisée de ressources pour PHP (lib, books, podcasts, frameworks...)
  • Clean Code PHP, des principes de clean code appliqués à PHP
  • awesome PHP security, une liste organisée de ressources pour la sécurité des applications PHP

Java

  • Le didacticiel "Développons en Java", le site de la légende française de l'écosystème Java, J.M. Doudoux. Il propose notamment un didacticiel Développons en Java, de 128 chapitres des bases jusqu'aux sujets les plus pointus, toujours mis à jour. Pour approfondir Java il est difficile de faire mieux dans la francophonie
  • A Java geek, blog de Nicolas Fränkel. Excellents articles sur l'écosystème Java

JS

Typescript

Vue.js

Node.js

Flutter

  • awesome-flutter, un dépôt qui maintient une liste filtrée de ressources pour Flutter

Projets open-source

  • awesomo, une liste de projets open-source intéressants (notamment si on veut se mettre à contribuer à l'open source)

Design

Architecture logicielle

Apprendre

  • Teach Yourself Programming in Ten Years, de Peter Norvig.
  • The design system primer, dépôt qui liste de nombreuses ressources pour apprendre à designer des systèmes informatiques sur le web. Focus sur la préparation aux entretiens
  • project-based-learning, une liste de tutoriels dans différents languages pour apprendre des technos sur des idées de projet
  • build-your-own-x, des guides sélectionnés et corrigés pour recréer des logiciels que vous utilisez tous les jours (client BitTorrent, Bot, CLI, git, etc.). Vous permet de comprendre comment ces logiciels fonctionnent et d'apprendre des technos
  • every-programmer-should-know, un immense dépôt qui agrège une collection de savoirs techniques bon à connaître ou à découvrir lorsqu'on est développeur.
  • professional-programming, collection de ressources pour apprendre sur tout un tas de sujets liés aux webs
  • system-design-primer, apprendre comment designer des grands systèmes d'information
  • awesome-guidelines, les standards d'écriture adapotés par chaque communauté (langage/techno)
  • app-ideas, des idées d'applications à développer si on est en panne d'inspiration
  • A Data-Centric Introduction to Computing, de Kathi Fisler, Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz

API

Divers

Lecture : articles, livres techniques (informatique, mathématiques)

Lisez

Trouver des livres techniques d'occasion pas cher

Les livres ça coute cher. Heureusement on en trouve plein en ligne gratuitement. Mais certain·e·s aiment bien le papier, vivre parmi les livres et en devenir familier pour retrouver facilement un chapitre dans un bouquin au pied levé, entourer, surligner, mettre des marque pages partout etc...

Pour cela on peut trouver pas mal de vieux livres mais qui restent toujours pertinent sur recyclelivre.com, une recyclerie de livres en ligne. On peut facilement repartir avec des livres de qualité pour quelques euro. En plus recyclelivre fait de la réinsertion sociale et verse une partie de ses bénéfices à des associations écolos.

Certaines villes ont peut être encore la chance d'avoir des Librairies médicales et scientifiques, un ancien réseau de librairies pour les étudiants. Ces librairies disposaient d'une section informatique et distribuait notamment des livres de l'éditeur O'Reilly.

Si vous avez des adresses de librairies physiques pour des livres techniques en informatique n'hésitez pas à les suggérer via une Pull Request. C'est très difficile d'en trouver malheureusement dès qu'on s'éloigne de la capitale...

Vivre de son travail

Vendre des templates

Vendre des templates HTML/CSS/JS, plugins, graphismes etc. :

Vendre des articles

Trouver du boulot à distance (remote)