Aller au contenu principal

35 documents tagués avec "Programmation"

Pages liées à un langage ou une pratique de programmation.

Voir tous les tags

Bash - Avancé

Ce cours suppose que les bases (pipes, redirections, variables, boucles) sont acquises. On passe à ce qui rend un script Bash robuste, sûr et exploitable en production ou en pentest.

Branches & fusion

Une branche Git n'est rien d'autre qu'un pointeur mobile vers un commit — c'est ce qui rend le branching quasi instantané et peu coûteux (contrairement à d'autres VCS où créer une branche pouvait dupliquer tout le projet). Travailler avec des branches permet d'isoler des fonctionnalités en cours sans jamais perturber la branche principale.

C - Avancé

Les bases (pointeurs, tableaux, structs) acquises, on entre dans ce qui fait du C un langage de systèmes — et dans les mécanismes précis des vulnérabilités mémoire, cœur de la sécurité offensive et défensive bas niveau.

C++ - Avancé

Les bases (STL, classes, RAII, références) acquises, on aborde ce qui fait la puissance et la complexité de C++ : gestion moderne de la mémoire, généricité, et les concepts qui distinguent le code C++ professionnel. Toujours avec un œil sur la performance et la sécurité.

Dépôt & historique

Un dépôt Git enregistre l'état d'un projet à travers une série de commits — des instantanés (snapshots) reliés entre eux, formant un historique complet et immuable. Comprendre les trois zones de travail (working directory, staging area, repository) est la clé pour comprendre toutes les commandes qui suivent.

Dépôts distants & collaboration

Un dépôt distant (remote) est simplement une copie du dépôt hébergée ailleurs — sur GitHub, GitLab, ou un serveur privé. Comme Git est distribué, un dépôt distant n'a rien de spécial techniquement : c'est un dépôt Git comme un autre, désigné par convention comme la référence commune sur laquelle l'équipe se synchronise.

Django

Django (2005) est un framework web Python "batteries incluses" : ORM, système d'authentification, interface d'administration auto-générée, protection CSRF/XSS par défaut, framework de formulaires... À l'opposé de la légèreté de Flask, Django vise la productivité sur des applications complètes dès le départ.

FastAPI

FastAPI (2018) est un framework moderne pour construire des API en Python, bâti sur les type hints natifs du langage. Sa promesse : validation automatique des données, documentation interactive générée toute seule, et des performances élevées grâce à un cœur asynchrone (ASGI, pas WSGI comme Flask/Django historiquement).

Flask

Flask (2010) est un micro-framework web Python : il fournit le strict nécessaire (routage, requêtes/réponses, templates) et laisse le développeur choisir le reste (ORM, authentification, validation...) via des extensions. À l'opposé de la philosophie "batteries incluses" de Django.

GitLab : merge requests, CI/CD & registre

GitLab est une plateforme construite autour de Git : elle héberge les dépôts, mais ajoute toute une couche collaborative — revue de code via les merge requests, automatisation via CI/CD, et un registre d'images intégré. Contrairement à Git (protocole/outil), GitLab est un produit, disponible en SaaS (gitlab.com) ou auto-hébergé.

Installation & configuration de Git

Git est un gestionnaire de version distribué, créé par Linus Torvalds en 2005 pour les besoins du noyau Linux (après la fin de l'accord de licence avec BitKeeper). Contrairement à un système centralisé (SVN, CVS), chaque clone d'un dépôt Git contient l'historique complet — il n'y a pas de serveur unique indispensable pour travailler.

JavaScript - Avancé

Les bases acquises, on aborde les concepts qui font la particularité (et la difficulté) de JavaScript : l'asynchrone, les closures, le this, et les enjeux de sécurité côté client comme côté serveur.

Mémo GitLab — infographie (Git & GitLab en 16 catégories)

Aide-mémoire imprimable (recto-verso) : 16 catégories, de la configuration initiale de Git jusqu'au Container Registry de GitLab — commandes git au quotidien au recto, plateforme GitLab (merge requests, glab, CI/CD, releases, registry) au verso.

NumPy

NumPy (2006, héritier de Numeric/Numarray) est la fondation de tout l'écosystème scientifique Python — Pandas, scikit-learn, PyTorch reposent tous dessus, directement ou dans leur philosophie. Son apport central : le ndarray, un tableau multidimensionnel homogène et des opérations vectorisées bien plus rapides que des boucles Python pures.

Pandas

Pandas (2008) construit par-dessus NumPy deux structures pensées pour manipuler des données tabulaires et hétérogènes (comme un tableur ou une table SQL) : la Series (une colonne) et le DataFrame (un tableau 2D avec des colonnes typées indépendamment, et des index nommés).

PHP - Avancé

Les bases acquises, ce cours se concentre sur ce qui compte le plus pour ton profil : les vulnérabilités web côté serveur (leur mécanisme et leur prévention), et les concepts PHP avancés qui les entourent. C'est le cœur du pentest web et de la sécurité applicative.

PowerShell - Avancé

Les bases (objets, cmdlets, pipeline) étant acquises, on aborde ce qui fait de PowerShell un outil d'administration et de sécurité puissant sur Windows — et un outil offensif redoutable qu'il faut comprendre pour défendre.

Python - Avancé

Les bases acquises, on passe aux concepts qui distinguent le code Python amateur du code solide, avec un focus sur ce qui sert en réseau/système/cybersécu. On reste sur le langage et sa bibliothèque standard (les bibliothèques tierces comme scapy, requests, pwntools feront l'objet de sous-cours dédiés).

PyTorch

PyTorch (2016, Meta AI) est aujourd'hui le framework de deep learning dominant en recherche, et de plus en plus en production. Son idée centrale : manipuler des réseaux de neurones avec des tenseurs proches de NumPy, mais qui savent calculer automatiquement leurs propres gradients (autograd) — le mécanisme qui rend l'entraînement par rétropropagation possible sans dériver les formules à la main.

R5.04 — Autoformation Git : des premiers pas au travail à plusieurs

Support d'autoformation (BUT Réseaux & Télécommunications, IUT d'Aix-Marseille, module R5.04) : installer et configurer Git, dépôt/commit/aire d'indexation, branches et fusion, puis travail avec un dépôt distant — avec points de contrôle et quiz auto-corrigés à chaque étape.

Rust - Avancé

Les bases (ownership, borrowing, Option/Result) acquises, on approfondit ce qui fait de Rust un langage complet pour les systèmes, le réseau et la sécurité — et pourquoi il est adopté là où la sûreté compte le plus.

scikit-learn

scikit-learn (2007) est la bibliothèque de référence pour le machine learning classique en Python — par opposition au deep learning (PyTorch, TensorFlow/Keras). Régression, classification, clustering, réduction de dimension : scikit-learn couvre les algorithmes "traditionnels" (arbres de décision, forêts aléatoires, SVM, k-means...) avec une API unifiée qui rend les modèles interchangeables.

Scrapy

Scrapy (2008) est un framework complet d'extraction de données web — à différencier d'une simple combinaison requests + BeautifulSoup : Scrapy fournit une architecture asynchrone entière (crawl de milliers de pages en parallèle), la gestion des files d'attente de requêtes, le respect automatique de robots.txt, l'export structuré, et un système de plugins (middlewares).

SQLAlchemy

SQLAlchemy (2006) est la bibliothèque de référence pour parler à une base de données relationnelle en Python — utilisée seule, ou comme moteur derrière l'ORM de Flask (Flask-SQLAlchemy) ou de FastAPI. Elle propose en réalité deux niveaux d'abstraction bien distincts.

TensorFlow & Keras

TensorFlow (2015, Google) est l'autre grand framework de deep learning, historiquement dominant en production/industrie face à PyTorch, plus présent en recherche. Depuis TensorFlow 2, Keras est son API officielle de haut niveau — au point que, dans la pratique quotidienne, on écrit surtout du Keras, TensorFlow restant le moteur de calcul en dessous.