---
# System prepended metadata

title: Compétences DATA/IA

---

# Compétences DATA/IA

## 1 - Unix Shell

- Savoir ce que fait exactement `apt install`
- Connaitre les redirections `>` et `>>`
- Connaitre les pipes  `cmd | cmd`
- Connaitre les variables d’environnement
- Connaitre le fonctionnements de `PATH`
- Comprendre la difference entre `apt install` et `pip install`
- Connaitre la commande `grep`
- Connaitre la commande `find`
- Connaitre la commande `which`
- Savoir se connecter via `SSH` sur un serveur distant
- Connaitre la notion de `port forwarding` en SSH
- Savoir créer une clef SSH et savoir où elle est localiser

## 2 - GIT

- `git status`
- `git add`
- `git log`
- `git commit - m`
- `git push origin`
- `git pull`
- `git reset`
- `git clone`
- `git stash` / `stash pop`
- `git checkout` / `git checkout -b`
- `git branch`
- `git fetch`

## 3 - Python basique

- Les différentes structures de données : `String`, `Integer`, `List`, `Dict`
- Savoir importer un module
- Comprendre ce qui se passe réellement lors d’un import
- Savoir créer son propre module python
- Savoir écrire et utiliser une class
- Savoir utiliser une méthode d’un objet
- Savoir expliquer la difference entre class et objet
- Savoir lire / écrire un fichier (`CSV` par exemple)

## 4 - API

- Savoir utiliser le module requests
- Savoir la différence entre une requête `GET` et `POST`
- Savoir interpreter le format de réponse (`JSON`)
- Connaitre les principaux codes de réponse `HTTP` (200, 202. 404, 502, etc)
- Comprendre la notion d’identification et de coût d’usage d’une API comme Twitter
- Connaitre la notion de `query param` => les `?clef=valeur` dans l’URL
- Savoir créer sa propre API via `Flask`

## 5 - Base de données

- Savoir ce qu’est une base de données concrètement et son usage
- Savoir que le SQL n’est pas le seul type de base de données (`no-SQL`, `GraphDB`, `in-memory DB`, etc)
- Savoir se connecter à un serveur SQL (que ce soit en local ou sur Azure)
- Savoir utiliser les différentes interfaces (SQL workbench par exemple)
- Savoir faire des requêtes simples (`FROM students SELECT *`)
- Comprendre la notion de relationnel entre plusieurs tables (notion de jointure)
- Savoir communiquer avec une base de données depuis python

## 6 - Azure

- Savoir créer une machine virtuelle et savoir évaluer la puissance matériel nécéssaire
- Savoir créer une instance base de donnée et interagir avec (ajouter de la data, etc)
- Connaitre la différence entre `IaaS` / `SaaS` / `PaaS` / `FaaS`
- Savoir lire la documentation et être autonome sur un service de la partie Cognitive Services (`Face API, Speech`, `Language Understanding`, `Custom Vision`, etc)

## 7 - DevOps

- Savoir maitriser docker (`pull`, `run`, etc)
- Savoir créer son propre `Dockerfile`
- Savoir réaliser des tests unitaire de son code
- Connaitre la notion de `CI/CD` (`Jenkins`, `CircleCI`, etc)

## 8 - Python avancé

- Maitriser la notion de concurrence / parallélisme
- Savoir gérer les exceptions
- Savoir bien réaliser des messages de logs
- Expressions régulières (RegEx)


## 9 - Machine Learning

- Savoir afficher des graphs (via `matplotlib` par exemple)
- Savoir analyser la data avec `Pandas`/`Numpy`
- Savoir nettoyer la data non-conforme (données manquantes, données aberrantes)
- Savoir mesurer la qualité du modèle entraîné (overfitting et underfitting)
- Savoir choisir le type de modèle : supervisé, non supervisé, regression, classification
- Savoir réaliser une approche Machine Learning avec `Scikit-learn`
- Savoir établir un dashboard de la data via `PowerBI`

## 10 - Soft skills

- Faire preuve de pragmatisme pour répondre à la problématique donné
- Savoir être autonome dans sa recherche de solutions techniques
- Savoir experimenter (en local par exemple) du plus simple au plus complexe de façon iterative
- Savoir restituer à l’oral en vulgarisant


