14ème séquence

Matin

Plénière sur Git

Après midi

Lancement d’ateliers thématiques afin de comprendre plus spécifiquement les besoins de chaque apprenante

Ateliers:

( A ) - Kata syntaxe
( B ) - Différence entre les types de données / structures (à venir)
( C ) - Exercice sur les piles (à venir)
( D ) - Atelier portée des données,version simple et version plus complexe
( E ) - Atelier organisation du code
( F ) - Exercices d’algorithmie
( G ) - Atelier sur la charge de mémoire (ex: que fait la création de plusieurs objets à la mémoire) (à venir)
( H ) - Atelier sur le lien entre le code et la BDD
( I ) - Atelier sur l’organisation des recherches en programmation (non affecté)(à venir)
( J )- Atelier livraison
( K )- Atelier de refactorisation du code
( L ) : Exercices sur exercism / codewars => avec retour à l’encadrante pour échanges (à venir)
( M ) : Exercice nombre en toutes lettres

Affectation et ordre des ateliers pour chacune :

Laurine : J / H
Mohamed : E / K
Nicolas: H / E / G
Florian : E / K
Adriel : E / K
Fayal: A / D / M
Soumayat: F / D / M
Loan : A / D / F
Zakia : A / D / F
Wara : A / F
Lydia : A / F
Patricia : A / B / F
Gwen : A / L
Marine : Atelier produit sur l’énoncé J puis mise en pratique technique

Possibilités d’organisation:

  • chacun.e pour soi
  • chacun.e pour soi avec des discussions de groupe pour compréhension
  • en binôme (discussions en appel, et code final identique mais fait à deux)
  • en pair / mob programming (une personne code, l’autre dit quoi faire, ça tourne toutes les 10 min, en partage d’écran)

Journal du lundi 16 mars 2020.

(Jour de confinement n°1)

J’ai commencé ma journée avec un petit kata.

Kata : Faire deviner un nombre entre 0 et 100. Je m’explique ! Le programme choisi un nombre aléatoirement entre 0 et 100 (inclus), et on doit essayer de le deviner. Concrètement, le code va demander à chaque fois « Entrez un nombre », et une fois qu’on a répondu, le programme nous dit si ce nombre est plus petit ou plus grand ! (Comme le juste prix)

J’ai bien réussi, mais j’ai pas trop compris quoi tester, donc je suis un peu dégoutée de pas avoir réussi à faire des tests sur ce kata.

En fin de matinée j’ai fais des recherches sur les variable (et les fonctions) public / private / protected en php. Et sur l’héritage en général.

L’après midi j’ai fais un petit carpaccio (théorique, puisqu’il faut commencer à rationner …), c’était très sympa. J’ai appris pleins de choses et l’aprem est passé très vite.

Je vais finir la journée avec un peu de sport et quelques courses (je n’ai pas assez de chocolat chez moi pour tenir tout le confinement :scream:) et ce sera niquel !

Journal du mardi 17 mars 2020

(Jour de confinement n°2)

Ma journée a été FAN-TAS-TIQUE !

Début de journée avec un petit kata, j’ai repris le même qu’hier, mais j’y ai ajouté quelques difficultés. Je me suis donné pour consigne d’adapter le code pour faire une classe joueur avec une méthode joueur, où joueur est défini par un pseudo et son nombre de vies. Faire jouer deux joueurs et déterminer le vainqueur.
C’était sympatique.
Mes entretiens se sont plutôt bien passé, je suis rassurée la dessus, mais encore stressée pour les entretiens techniques. Les personnes qui nous ont fais passé ces entretiens étaient très bien choisies (Le monsieur de Deezer était super !)
Ce midi j’ai rajouté des éléments dans le tribe concernant l’experience map.
L’après-midi, j’ai continué à rédiger quelques readme dans mon github, et j’ai terminé mon elephant carpaccio.
Et j’ai terminé ma journée avec un petit cours sur l’UML, et un peu de sport en début de soirée.

Je pense avoir trouvé un rythme excellent !

Journal du mercredi 18 mars 2020

(Jour de confinement n°3)

Manipulation de listes chainées dès le matin. BAAAAM !! On commence fort !
(Déclaration, Ajout d’un élémeent, Ajout en tête, Ajout un fin de liste, Supprimer un élément en tête, supprimer un élément en fin de liste, rechercher un élément dans la liste, compter le nombre d’occurence d’une valeur, rechercher du i-ème élément, récupérer la valeur d’un élément, compter le nombre d’éléments d’une liste chainé, effacer tout les éléments ayant une certaine valeur)
Et exo 1: Coder la fonction void afficherList(llist, liste);
exo 2 : Je dois utiliser 3 fonctions (ajouterEnTete, ajouterEnFin, et afficherListe. Je dois écrire le main permettant de remplir et afficher la liste chainée ci-dessous. J’ai droit à 1 seule boucle for
=> 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10
exo 3 : Ecrire une fonction qui renvoie 1 si la liste chainée est vide et 0 si elle contient au moins 1 élément. prototype : int estVide(llist liste);
exo 4 : Coder de manière itérative la fonction nombreElements int nombreElements(llist liste);
exo 5 : Fonction permettant d’effacer complètement une liste chaînée de la mémoire. D’abord en itératif puis en récursif.
Pour l’itératif il faut : parcourir la liste, stocker l’élément suivant, effacer l’élément courant & avancer d’une case. Return NULL quand liste est null.
Midi : Test de perception en UX sur le tribe.
Aprem : Recherche sur gestion de compte.

Journal du Jeudi 19 mars 2020

(Jour de confinement n°4)

J’ai beaucoup de choses à dire aujourd’hui !
Superbe masterclass de Alya. J’ai adoré ! Elle a bossé sur le Nabaztag (que j’ai adoré petite), sur la tablette qooq, que j’ai aussi adoré !
Je suis super motivée pour faire un atelier « mettre en place une appli à partir d’une API » !
J’aime beaucoup le fait qu’Alya, même avec un parcours technique, soit allée dans une boite RH, je trouve ça super interessant.
Voila, Alya si tu me lis, j’adore ta vie ! ^^ (et j’adore ta table basse en bois avec Paris dessus !)

Sinon je me suis levée tôt ce matin, en pleine forme, donc j’ai commencé ma journée à 8h avec ça :

Manipulation d’un arbre binaire pour la matinée :

  • Création d’un arbre,
  • Vérification de l’existence de l’arbre,
  • Accès à la racine de l’arbre,
  • Vérification de la nature d’un nœud,
  • Parcours et affichage des éléments,
  • Ajout d’un élément dans l’arbre,
  • Élimination d’un élément de l’arbre,
  • Calcul du nombre d’éléments d’un arbre,
  • Calcul de la hauteur de l’arbre,
  • Comparaison de 2 arbres,
  • Équilibrage d’un arbre.

Les opérations sur les nœuds :

  • Modification ou accès au fils gauche,
  • Modification ou accès au fils droit,
  • Définition ou accès à la valeur,
  • Création du nœud,
  • Destruction du nœud.

Ce midi j’ai continué à découvrir l’UML, ça me plaît de plus en plus !
Du coup j’en ai aussi fais cet aprem
Mais j’ai aussi continuer mes recherches sur le fonctionnement d’un système de compte & de connexion, et j’ai lu pas mal de code.
Je pense pouvoir commencer à coder demain ou lundi.
J’ai appris à quoi correspondait les dossiers bin & config & translations dans github que j’ai déjà vu dans plusieurs dépôt.

Journal du vendredi 20 avril 2020

(Jour de confinement n°5)

Journée animation en css & Js !
Ca faisait un moment que je voulais essayer donc j’ai sauté sur l’occasion du forum ouvert.
J’ai commencé par installer sass, qui permet de faire des animations avec du css, ça m’a pris plus de temps que prévu, mais j’ai finalement réussi !
Sinon j’ai pas mal codé sur codepen.io, c’est assez pratique pour les animations.
Voila donc journée très cool, j’y suis vraiment allée doucement aujourd’hui, mais finalement j’ai des résultats.

2 J'aimes

Journal (lundi 16)

J’oublie toujours qu’il faut pull pour choper les branches distantes !

J’ai (ré)appris à utiliser -L, -l et -I pour link des bibliothèques avec gcc.
J’ai appris que g++ prenait des paramètres très équivalent à ceux de gcc.

J’ai appris la notion de « namespace » en c++.
J’ai appris qu’il existe des vector, des set et des map comme structure de données.

J’ai appris à utiliser la bibliothèque UnitTest++ pour faire des tests unitaires en c++.

  • SUITE(EnsembleDeTests) {} → je met tous mes tests qui se rapportent à une fonctionnalité
  • TEST(DécrisUnTest) {} → j’y met un seul test, et le code nécessaire pour le faire tourner.
  • CHECK_EQUAL(expected, result) {} → la structure de base pour faire un test unitaire.
  • CHECK_ARRAY_EQUAL(expected, result, end) {} → je n’ai pas encore trouvé la syntaxe des array.

J’ai utilisé un golden master pour vériifer qu’il n’y avait pas de régression dans mon code.
C’est assez magique quand on l’utilise avec la commande diff, automatiquement après compilation.

Journal (mardi 17)

J’ai épluché ce pavé qui parle d’ePortfolio.
J’ai été plutôt séduit par la démarche, je chercherai à l’appliquer à mon cas.
J’ai envie d’apprendre à faire un ePortfolio.

J’ai appris que ! en suffixe de fonction pour rust signifie qu’elle est divergente.
C’est un peu l’équivalent de ne rien retourner, si j’ai bien compris… lien avec void
J’ai appris que println!() était en réalité une macro, avec les avantages et les inconvénients.

J’ai appris l’existence du cadriciel check pour faire des tests unitaires en C.

Journal (mercredi 18)

Je pars dans une quête à la découverte des designs patterns.
Je compte me baser sur cette page qui semble bien documentée.

J’ai appris à utiliser les bases de tmux, the terminal multiplexer.
J’ai appris à lire la barre de statut en bas, qui m’affiche les différentes fenêtres.
J’ai lancé une session en ssh sur ma raspberry, à laquelle je me suis connecté par l’ordi de mon frère et le mien.
Ça a fonctionné ! Un changement sur son écran résultait immédiatement en la réponse sur le mien, et inversement !
J’ai appris des raccourcis de base avec le préfixe C-b (se lit contrôle + b) :

  1. C-b + d pour se détacher de la session (tmux attach plus tard pour revenir)
  2. c pour créer une nouvelle fenêtre (regarder en bas à gauche de la barre de status)
  3. n pour passer à la fenêtre suivante (next)
  4. % pour spliter l’écran verticalement
  5. ; pour switch entre les splits d’écrans
  6. PgUp, le plus stylé, pour naviguer dans tout l’historique, à l’infini, avec les bindings vi.
  7. t pour afficher l’heure dans la fenêtre.

J’ai encore un peu de mal avec le vocabulaire qui vient avec (distinguer une fenêtre caché, d’un écran partagé en deux fenêtres).
Je ne fais que des manipulations de base, qui sont pour moi le minimum vital pour s’en sortir, et naviguer correctement.

J’ai aussi appris de nouvelles choses sur Arch Linux, en réparant ma propre bêtise sur l’ordinateur de mon petit frère.
J’avais oublié de mettre une entrée pour /boot dans /etc/fstab, le fichier qui décrit les disques à monter au démarrage.
Du coup, lors de mises à jour système, un changement dans le noyau n’était pas inclus dans le bon initramfs.
Ça a fini par provoquer un numéro de version différent entre /usr/lib/modules/<num version> et pacman -Qi linux.
Pour régler ça, je suis passé par une ISO, un fichier qui contient une « image » d’installation de arch.
J’ai remonté à la main le système de fichier dans /boot (du vfat), et j’ai relancé la màj avec pacstrap.
Je n’aurais pas pu le faire sans l’ISO, parce que les modules ne chargeait pas, donc je ne pouvais pas monter du vfat via le système.
Pour la prochaine fois, essayer de charger un module en lui spécifiant un path spécifique, plutôt que celui par défaut.
J’ai donc appris beaucoup de choses aujourd’hui encore !

Journal (jeudi 19)

J’ai appris deux-trois trucs en haskell…
Il y a beaucoup de choses à faire…
Je me base sur http://learnyouahaskell.com/chapters[ce livre] qu’Élodie m’a envoyé.
Il est super, j’apprend vite !
Il y a quand même des formes compliqués, qu’il va être difficile de retenir.

Je suis un peu lassé par les formes classiques d’écriture dans le code.

Journal (vendredi 20)

J’ai appris à installer arch linux sur un MacbookPro8,1 !
La petite galère, c’était le pilote pour la carte wifi broadcom…

J’ai lu un bout de clean code en python ici, envoyé par Élo.
C’est chouette, il y a la même chose adapté à plein de langage, ça me donne un peu l’impression d’avancer, sur SOLID.

cf journal @Adriel du mardi 17

  • la fonction main est toujours créé dans tous les langages mais pas forcément visible (ex: python le cache)
    c :(*.c)
  • assert.h, stdio.h => h pour header = fichier prototype de fonction mais pas leur définition ; std pour standard
  • un main est obligatoire (le truc qu’on doit exécuté en premier)
  • ptr : pointer = variable qui représente une adresse mémoire dans l’ordinateur (à une coordonnée x,y sur la grille que ~représente la machine)
  • gcc pour compiler le code = créer un exécutable [javac pour java]
  • « fonction » ìnt mainretournera obligatoirement un entierreturn 0` si rien;
  • %s = string ; %d = (int) digit ; %f = float (2 fois plus de place qu’un int); %e = double ( 2 fois plus qu’un float, pour des simulation très lourd ou autre chose de très gros)

rust :(*.rs)

Jasmine > release > télecharger la dernière version de jasmine-standalone-???.zip > dans le terminal unzip jasmine... > les tests dans spec, le code dans src, exécute avec SpecRunner.html sur le navigateur.

ternary in python

Journal mardi 17

  • Suivi candidature et mise à jour des emails pour communiquer aux candidat·es notre dispositif en ligne
  • Essais de mise en forme de la page charte de adatechschool.fr > conclusion : une page chapeau avec la version courte et 4 pages dédiées à chacune des parties
  • Début du travail de mise en forme de la brochure sur Indesign
  • Définition des projets sur les semaines à venir : conception et mise en place stratégie SEO, campagnes social, revoir le header du site pour ajouter une entrée charte et nos partenaires, supprimer les boutons de la home sur le premier bandeau (trop de CTA)

Journal mercredi 18

  • Suivi candidature
  • Mise en forme de la brochure sur Indesign
  • Analyse des résultats de premières campagnes Social puis point avec Chloé & Estelle pour prévoir les prochaines
2 J'aimes

Journal jeudi 19

  • Suivi candidature
  • Fin de mise en forme de la brochure sur Indesign et mise à disposition sur le protocole de téléchargement du site