Session du 30 avril 2022 à 18h00
Pratique & Live Coding
Développement Web & Frameworks
Frontend & UI
DevOps & Environnement
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Django, CSS modernes et culture Linux
Explore l’usage de Django avec les frameworks CSS, révise un exercice sur les nombres romains et découvre les bases indispensables à maîtriser sous Linux pour développer efficacement.
00:00:00 :J'ai envie de faire un tab chrome ou quel que soit le navigateur.Je vais être sous Python car j'ai une licence pro par ma boîte et je suis un peu plus à l'aise.
00:00:31 :Mais ça ressemble à ce que faisait Thierry, c'est le même moteur derrière, c'est du Jupyter Notebook.Donc ça va être très proche.Je vais faire une mini présentation de qui je suis et on pourra faire un petit tour,comme on n'est pas beaucoup, ça devrait aller vite, pour voir ce que vous faites, où vous en êtes, etc.
00:01:05 :Et on va essayer d'avancer comme ça.Du coup, mentorat de Red Dare, la date du jeu, etc.Donc je suis Lionel Hattie, alias Lionel, sur Docstring et un peu partout.
00:01:15 :Je le traîne depuis je ne sais pas combien d'années, ce nickname, j'ai eu 30 ans ou plus.Je suis senior developer back-end Python, senior plus de 15 ans, il faudrait que je compte.
00:01:28 :Mais je suis chez Unowire, c'est une boîte en région parisienne, Neuilly-sur-Seine,où on fait des espaces numériques de travail pour lycées, collèges et primaires.Et donc on essaie de designer un peu l'école du futur.
00:01:44 :Unowire, sa première mission, c'est fabricant de matériel, donc il développe des portables, des tablettes,mais à visée éducative, pour être utilisé en classe ou même à la maison après,dans les périodes de confinement, etc. avec du remote et du cloud.
00:02:05 :Et du coup, moi je travaille côté back-end sur les solutions logicielles déployées pour ces appareils.En background, j'ai une formation CC++, je ne sais pas si tu as vu mon message, je ne l'ai pas lu,oui oui j'ai lu le team.
00:02:21 :Donc formation CC++ au départ, j'ai fait d'autres langages, j'ai une formation universitaire,donc les universitaires aiment bien les langages un peu exotiques, genre du Fortran, du Hada,des vieux trucs que plus personne quasiment n'utilise, du Lisp aussi, j'ai fait pas mal de Lisp,et du Pascal, des trucs comme ça.
00:02:42 :Et après quand ça a commencé à devenir sérieux, c'était plus Java, CC++, mais bon Java j'ai jamais été très bon,et ça ne m'a pas passionné de ouf, donc je suis resté dans le côté CC++.
00:02:54 :Après j'ai fait, en formation universitaire, j'ai fait de l'art-cherche, j'étais dans un labo,on faisait pas mal de QT dans ce labo, c'était l'INRIA à Grenoble,donc équipe artistes, s'il y en a qui sont dans le coin et qui connaissent.
00:03:11 :Et après j'ai utilisé QT avec le portage Python, donc PQT à l'époque,maintenant c'est plus du PySide il me semble, mais c'est à peu près le même état d'esprit.
00:03:25 :Donc pareil en formation initiale, je suis computer graphique,donc formation génération d'images sur ordinateur, donc en recherche chez l'INRIA,et après en entreprise j'ai eu une petite période jeux vidéo, design et implémentation dans le moteur,donc côté génération d'images.
00:03:43 :Et après j'ai eu pas mal d'expérience en SIG, donc système d'information géographique,donc à l'IGN, c'est l'Institut National Français de Géographie, des projets de VR&D,principalement sur des projets d'architecture logicielle.
00:03:59 :Et après j'ai travaillé aussi un peu dans des start-up qui étaient sur des problématiquesd'utilisation des zones géographiques.Et quasiment toutes les missions que j'ai eu là-dessus c'était du back-end,back-end et quasiment que Python principalement.
00:04:16 :Ce sont des intérêts donc orientés à développement, donc langage Python,là j'apprends le ROST en ce moment, c'est sympa, s'il y en a qui connaissent,ou qui sont intéressés par les trucs.
00:04:27 :Bon après c'est un peu dur quand même le langage, si vous êtes débutant, débutant,c'est pas forcément le premier langage qu'il faut faire,mais il y a des trucs super intéressants dans ROST.
00:04:37 :Et j'essaie de réactiver mon C++ de temps en temps,ça marche pas comme le vélo où tu te mets dessus et tu refais de la bicyclette,c'est plus douloureux.
00:04:50 :De temps en temps je me fais des piqûres de rappel.Je suis intéressé par tout ce qui est design pattern, design code, design architecture,donc ça c'est avec la séniorité en général, on va verser,tant qu'on ne fait pas du management et qu'on reste dans le côté développement,on va sur ce type de thème et de secteur.
00:05:07 :J'ai eu une grosse période microservice, en particulier GRPC,là je me suis un peu calmé, il faudrait que je m'y remette.C'est des vagues, de temps en temps ça me prend, je suis à fond dedans,après ça redescend et je fais autre chose et souvent ça revient.
00:05:24 :Sinon pas mal sensible et je fais pas mal de tests unitaires fonctionnels, CI, CD,peut-être on aura l'occasion de vous parler dans ce mentorat, on verra.
00:05:34 :C'est des trucs un peu plus avancés, ça dépendra de votre niveau et de vos envies, vos motivations.Donc par exemple, MyTest, GitLab, GitHub Action, après c'est des buzzwords.
00:05:45 :Si ça vous intéresse ou si vous en avez entendu parler, que vous êtes curieux sur les sujets,pour revenir vers moi, il n'y a pas de souci, je communique avec plaisir là-dessus.
00:05:55 :En ce moment pour le travail, je suis sur le vaste sujet de l'authentification,donc SSO via KeyClock.Donc SSO c'est Single Sign User, c'est ce qu'on appelle l'authentification uniqueoù avec un service on peut s'authentifier sur un groupe de services.
00:06:10 :Un peu ce qui est fait parmi les impôts avec France Connect et ce type de systèmeoù avec plusieurs services on peut s'authentifier dans d'autres services.
00:06:22 :Donc on le fait sur notre suite logicielle, métier, perso, enfin pas perso mais corporate.Après juste un petit détail, ça c'est mon setup sur lequel je développe et suis,donc je suis sous Debian, donc Linux. Après j'ai un Latitude, c'est un tout du boulot.
00:06:43 :Et je suis sous Linux, mon champ d'expertise c'est Linux.Après j'ai fait du Dev Windows et tout, mais plus j'arrive à m'éloigner de ça,mieux je me porte.
00:06:55 :Donc juste pour s'il y a des questions après d'installation ou système,en particulier Mac ou Windows, je serais peut-être moins fort là-dedanset moins amen, enfin de capacité de vous répondre.
00:07:13 :Mais bon, après j'ai fait aussi un peu d'infra et de DevOps,et j'ai fait aussi du support sur Mac en particulier,parce que le Mac a vachement la hype en ce moment,même des DevOps, enfin la plupart des DevOps sont des Mac maintenant,c'est encore un autre sujet, et j'ai pas envie de troller là-dessus.
00:07:33 :Donc du coup j'ai aussi un peu joué avec Mac.Et voilà, c'est à peu près le tour.Donc, il faut que tu acceptes les gens qui rentrent, oui, bonne remarque.
00:07:49 :Est-ce qu'il y a d'autres gens? Oui.Ah, désolé Loïc, c'est vrai que j'ai oublié de regarder régulièrement.Ah, mais c'est bien en fait, du coup ça enregistre aussi ce que je partage, nickel.
00:08:01 :Bah là je vois que...Salut, excusez, j'ai bien répondu à vos AP.Non, non, non, mais t'as bien fait, j'imagine que t'as parlé sur le...
00:08:11 :Sur le général, il y a un parti nouveau liens, donc bonsoir à tous.Ouais, bonsoir. Je faisais juste une petite présentation d'où je viens et ce que je fais,
00:08:22 :mais de toute façon je filerai la présentation pour ceux que ça intéresse.Du coup, on va faire un petit tour de table par ordre d'arrivée,ou alphabétique, c'est comment ça...
00:08:35 :Ah, bon, alphabétique du coup.Et je vais représenter un peu ce que vous faites, ce que vous voulez faire,et niveau d'expertise, entre guillemets, comme ça, ça me donnera un truc pour jauger,pour adapter mon discours.
00:08:50 :Tu peux commencer Baptiste, si tu veux.Yes, salut. Du coup, moi je suis développeur web depuis un an professionnellement,sinon, je vais dire cinq ans en tant que autodidacte.
00:09:08 :J'ai commencé Python il y a maintenant deux ans.Je ne suis pas forcément débutant, mais je ne suis pas un expert non plus,je ne suis pas super bon, c'est pour ça que j'ai pris cette formation.
00:09:24 :J'ai déjà développé un site web avec Django, du coup ça me l'a vachement plu.Du coup, Python, j'ai envie de l'apprendre pour apprendre un autre langage,un vrai langage, on va dire.
00:09:42 :Les langages web, pour l'instant, c'est que le JavaScript et un peu de PHP,donc ça ressemble un peu à un vrai langage de programmation.J'ai deux bacs plus deux, un en développement web du coup,et un autre en réseau et télécom.
00:10:04 :C'est grâce au réseau et télécom d'ailleurs que je suis parti en développement web,parce que j'avais des cours de dev en Java, PHP et Python aussi d'ailleurs,ce qui m'a vachement plu.
00:10:22 :Ce que je fais en ce moment, à part mon boulot,c'est beaucoup d'apprentissage de Python et de C Sharp avec Unity,parce que j'adore le dev de jeux vidéo en fait.
00:10:39 :Et voilà, après, plus tard, pourquoi pas trouver un job en back-end Python.Voilà, je pense que...OK, cool.Du web PHP, c'est ça du coup?
00:10:55 :Comment?Quand tu as dit que tu étais développeur web et le...En ce moment, oui, c'est PHP,je suis pris là en CDI dans une boîte qui développe sur un framework propriétaire,sur le langage Enablone qui n'est pas du tout connu.
00:11:18 :Bon après c'est des trucs propriétaires, c'est souvent des trucs un peu exotiques.OK, cool, ouais, marrant, profil intéressant.Il y a pas mal de trucs, ouais c'est cool.
00:11:33 :OK, du coup, Hugo, si tu veux.Ouais, bon, alors moi j'ai un parcours assez atypique.Donc là, j'ai 25 ans, je sors de 5 années de pharmacie,et puis j'ai décidé de changer totalement de voie.
00:11:47 :Donc en août 2021, j'ai arrêté et je me suis lancé dans l'informatique.C'était un secteur qui me plaisait beaucoup en parallèle,mais je n'avais jamais osé me lancer dedans.
00:11:56 :Et puis voilà, c'est fait.Donc là, globalement, j'ai pour ambition de rentrer dans une école en alternanceà la rentrée, là, au mois de septembre.
00:12:05 :Mais comme vous l'aurez deviné, je suis actuellement en train de rechercher une alternance.Bon, mis à part ça, j'ai pas attendu...J'ai commencé à bosser en fait avant, là,donc depuis août 2020, je bosse en autodidacte, etc.
00:12:19 :J'ai commencé par apprendre Python, parce que j'avais déjà vu un peu en terminale,on fait des petits algorithmes mathématiques, etc.Et ça m'avait vachement plu.
00:12:27 :Et là, j'ai pas mal pensé le langage, je connais toutes les bases, etc.Et puis j'ai bossé aussi de l'HTML, du CSS, JavaScript un peu moins.
00:12:37 :Globalement, je me semble intéressé par le langage web.Et donc du coup, qui dit web plus Python, vous l'aurez compris,m'amène à du Django en ce moment, et pourquoi pas plus tard d'autres frameworks.
00:12:51 :De toute façon, je suis ouvert à tout, même hors que ça soit pas du web,par exemple Data Science, Machine Learning, peu importe.Je sais pas où je vais, mais en tout cas, soit l'alternance ça va le faire,soit ça va pas le faire, donc je maximise toutes les chances.
00:13:05 :Il y a des écoles civiles, déjà?À Pau, là, actuellement, ça s'appelle le CISI.Je sais pas si vous connaissez, mais...Donc là, trouver une alternance en ce moment, c'est un peu compliqué,parce qu'ils demandent déjà, j'ai l'impression, des gens qui ont des connaissances,alors qu'on est censé être débutants, mais bon...
00:13:22 :Ouais, c'est le paradoxe du junior, du débutant,j'ai vu une annonce, un mème, sur Twitter, je crois,où il disait « Junior développeur avec 8 ans d'expérience »,c'est le mec...
00:13:37 :C'est exactement ça.Ils demandent des gens sur Python, qui ont déjà fait des sites avec Django, etc.Il faut s'imaginer qu'il y a des mecs qui sortent du bac,donc qui ont peut-être jamais fait de code,et on leur demande de maîtriser déjà toutes ces technologies,donc c'est un peu de l'hypocrisie, mais bon...
00:13:53 :Ouais, mais après, dans l'IT et la tech, il y a souvent ce côté...Ils cherchent des gens passionnés, avec des limet autour, des renvos,tu ponces comme un ouf le week-end,et tu fais des projets à côté tout le temps.
00:14:07 :Donc ils essayent de filtrer ce genre de profil.Exact.Du coup, j'avais rejoint DocSpring,l'idée actuellement, c'est de développer au max mes connaissances sur un peu tout,que ce soit du Git, là en ce moment je fais beaucoup de Git, GitHub,peut-être pas loin de faire du Docker bientôt.
00:14:26 :Je fais de l'Unix aussi, je sais vraiment tirer un peu partout.Et DocSpring me permet aussi...J'ai pris l'accompagnement, parce que je voulais maximiser toutes mes chances.
00:14:38 :Ouais, t'as raison.Au cas où ça ne marche pas l'alternance,moi j'optimise toutes les chances de mon côté.Ok, cool.Il nous reste Loïc.Eh bien, écoutez, moi j'ai 32 ans,j'ai aussi un petit parcours atypique.
00:14:57 :En fait, j'ai commencé par un BTS SEO il y a 10 ans,et puis je me suis reconverti il y a 3 ans dans l'horlogerie.
00:15:08 :Et puis suite à des problèmes de santé récemment,j'ai décidé de revenir à mon premier amour.Et en fait, j'ai besoin de flexibilité,je vais quitter le salariat, enfin en tout cas essayer.
00:15:22 :Donc pour moi, ça a tout de suite été le freelanceet le développement qui se sont vus à l'esprit.Donc, bah, Python, c'est le feu, je dirais.
00:15:36 :En tout cas, c'est ce qui me plaît le plus.Donc voilà, en tout cas à terme, le but c'est de devenir freelance.Donc je ne sais pas encore si je me re-rentrerai vers du web,ou pour l'instant, peu importe, j'en suis vraiment au bal du ciment.
00:15:50 :J'apprends Python, j'ai fait comme si j'avais jamais touché de la programmation.Donc voilà, disons que Doctrine, c'est vraiment la chose sérieuse,la première chose sérieuse dans laquelle je m'embarque.
00:16:04 :Et puis là, je viens d'intégrer Open Classroom.On verra bien ce que ça donne.Ton B.T.C.C. est quoi? Le nom?SEO, alors SEO, je ne sais pas comment ça s'appelle aujourd'hui,mais c'est, attends, je vais vite reçoivre internet, je ne sais plus,la chronologie de main, c'est en informatique, si tu veux,
00:16:24 :service informatique aux organisations.Et j'avais pris option SISR, donc qui correspond au réseau.Et comme moi, partir avec Open Classroom juste après.Ah oui, d'accord, ok. Et alors?
00:16:38 :C'est génial, Open Classroom, c'est vraiment très très bien.Bah écoute, je suis instruit depuis trois jours.Ouais, c'est près.Donc on verra.Tu vas faire beaucoup de projets, et ça va être exigeant, mais ça va être très enrichissant.
00:16:57 :Après voilà, c'est moi ce que je recherche, enfin c'est ce que je recherche,et puis à 32 ans, j'ai aussi quand même une petite carrière professionnelle,donc je ne cherchais pas quelque chose de, comment dire, de frivole, quoi.
00:17:14 :J'ai besoin de quelque chose de sérieux, c'est pour ça que Dockstring, moi j'adore, quoi.Les cours de Dockstring, les cours…Ah, il y a la qualité, il y a la qualité.
00:17:22 :Ça n'a rien à voir, parce que Open Classroom, j'ai regardé un peu leurs cours,et franchement… Ouais, bah après, il faut investir du temps,et il y a de la compétence, il est fort Thibaut en pédagogie et en communication,et après il faut investir masse de temps, et c'est beaucoup d'énergie.
00:17:38 :Enfin, tu peux dire, moi typiquement, j'ai plutôt la connaissance,enfin par rapport à, on n'est pas dans les mêmes champs avec Thibaut,mais j'ai plus de connaissances dans pas mal de trucs,mais j'ai pas du tout son niveau, genre de générateur de contenu, et de même qualité vidéo,genre ils assurent très belle ses vidéos, il a l'aution, il est nickel,
00:18:02 :il y a plein de choses qui sont nickels.C'est vraiment formidable, en tout cas, moi ça me plaît énormément,et à côté, Open Classroom, j'ai choisi ça pour le côté certifiant,et puis, je sais pas si c'est une bonne ou une mauvaise idée, peu importe, mais...
00:18:20 :Bon, ça commence, non non, ça a de la renommée, ça commence à être considéré,et valorisé dans les CV, si besoin de CV, mais non, ça commence à être une vraie compétence,et comme ils sont vachement orientés sur des projets, plein de projets,donc la personne en face, si elle connaît la formation en ligne,
00:18:38 :elle sait qu'il y a eu beaucoup d'expérimentations, beaucoup de projets,ça peut rassurer.Ouais, donc on verra bien, en tout cas, je vous tiendrai au courant.
00:18:49 :Ok, cool.Ok, du coup, si vous avez des sujets, ou des choses à me montrer, ou à parler,chacun va prendre la parole et me montrer, ou poser des questions.
00:19:07 :Après, juste pour préciser, je l'avais dit dans le Discord, mais moi je suis clairement back-end,du front, je refais peu ou très peu, et le peu que j'ai fait, c'était en flasque à l'époque,et là, en ce moment, je fais du back-end en face d'API, du coup Django, c'est un truc que j'ai pas trop touché,
00:19:26 :j'ai juste regardé par curiosité un peu les vidéos de Thibaut sur YouTube,mais c'est à moi, je suis plus côté back-end et langage, le langage Python par rapport à la façon de l'écrire,d'organiser, et la qualité de code, que sur du métier front.
00:19:45 :Donc juste pour préciser.Ok.Ok, qui a un sujet ou qui veut parler de quelque chose?Après, d'après ce que je comprends, je suis le plus bas level d'entre nous, c'est ça?
00:20:03 :Pas forcément, de toute façon après, y'a pas de notion de compétition.Ah non, non, mais...Non, mais dans le sens que quelque soit l'expérience que t'as, y'a des choses à apprendre, y'a des choses à transmettre.
00:20:15 :Oui, bien sûr, disons que vous avez plus de choses à m'apprendre que moi, j'ai à vous apprendre.Après on est tous, c'est la vieille phrase de Sage, la vie est un long apprentissage.
00:20:26 :Mais clairement, moi j'apprends toujours, en plus je m'intéresse à d'autres langages, etc.Donc entre guillemets, la formation, elle est vraiment, faut la voir comme un projet long.
00:20:38 :Ouais, ouais, ouais.Ok, ça marche.Quelqu'un a un sujet ou une envie de...Moi j'ai une petite question.Donc là, comme j'ai commencé les bases de Django, je me pose une question.
00:20:51 :Bon, j'ai vu les fonctions, j'ai vu vraiment les bases, les views, et notamment les renders avec des templates HTML.Donc actuellement je fonctionne avec des fichiers HTML et CSS, et donc je pense que...
00:21:03 :En fait, soit je me débrouille avec ça pour faire un site vitrine, ou alors je me posais la question,est-ce qu'il faut pas que je me lance tout de suite dans des frameworks du style Bootstrap ou Tailwind?
00:21:15 :Ou est-ce que vous me conseillez d'attendre ou pas?Ben, je redis ce que j'ai dit, la phrase de l'avance, et moi je fais pas de front.
00:21:25 :Mais on peut quand même discuter et en parler.Après, ça dépend, là c'est par rapport à un projet perso, c'est un projet de formation?Ouais, projet perso, portfolio.
00:21:34 :Ok. Après, moi j'avais joué un peu avec Bootstrap, c'est vrai que ça se prend assez vite en main,et ça te fait des trucs assez jolis, normalisés en tout cas.
00:21:43 :Donc qui s'lisent bien, qui se mettent bien, qui réagissent bien.Après, c'est toujours dans ce type de questions, c'est en fait la considération et l'équilibreentre le temps investi dans une nouvelle tech ou dans un nouveau framework,et ce que tu vas en gagner en lisibilité, en qualité, etc.
00:22:02 :Si t'es à l'aise en HTML, CSS, et si tes besoins dépassent pas, pour l'instant, ce que t'offrent ces outils,de mon point de vue, ce que je pourrais te conseiller par rapport à d'autres types de projets,ou même des projets pro, c'est qu'en général, on commence toujours par une version 1 ou une version 0,
00:22:22 :une alpha, où tu prototypes ce que tu veux faire, et tu mets les grands jalons de tes fonctionnalités.Et après, tu peux te poser des questions sur, si tu veux des services ou des features autres,tu peux te demander si l'outil que j'ai actuellement permet de résoudre ce problème, ou est-ce qu'il faut que je change d'outil.
00:22:44 :D'accord.Donc, si je pouvais te donner un conseil, c'est déjà essayer de voir ce que tu sais faire,ou de rester sur ce que tu sais maîtriser, et de voir jusqu'où tu peux aller avec ça,et le plus rapidement possible. Et avoir le plus de valeur ajoutée le plus rapidement possible.
00:23:01 :Ok, ok. Merci.Vous avez d'autres sujets, ou des questions, des interrogations,pipons sur des façons de faire, des façons d'organiser votre code,ou des trucs qui sont mal passés, que vous n'avez pas compris, ou vous êtes bloqué actuellement?
00:23:28 :Je suis encore sur la formation de base, la formation complète Python, du coup pour l'instant ça va.Moi aussi. Moi aussi. Moi j'ai commencé à l'orienter objet, je me suis d'abord mis en PLS,
00:23:43 :je me suis mis en PLS, j'ai pris un sac, j'ai vomi, et après ça s'est allé mieux.Après sur l'orienter objet, c'est un outil assez puissant et générique,mais après il faut être, là vous faites le côté pédagogique formation,après en utilisation opérationnelle, il faudra vraiment se poser la question,
00:24:08 :est-ce que vraiment j'en ai besoin? En gros, l'orienter objet c'est un design pattern,c'est une façon de designer une application, et souvent, en particulier chez les débutantsqui essayent d'apprendre des nouveaux designs, ils ont tendance à tordre le problème pour entrer dans un moule.
00:24:25 :C'est-à-dire au lieu de trouver le bon moule, le bon réceptacle pour ce qu'ils essayent de faire,ils essayent de prendre tout et de le mettre dans le même moule, genre un cercle dans un carré.
00:24:48 :Un des stigmates qu'on voit assez souvent, c'est de l'over-engineering,genre des trucs qui sont très complexes alors que la fonctionnalité est extrêmement simple,et tu vois du code qui utilise des fonctionnalités super compliquées,des modèles de données ou des modèles de design de classes super compliqués,alors que la fonctionnalité ou le service qui doit être rendu,
00:25:14 :alors avec une fonction ou même avec du code direct, on pourrait le faire.Donc il faut être assez attentif de ne pas rentrer dans de la complexité inutile,sauf si derrière il y a un gain ou un objectif pédagogique,genre j'ai envie d'apprendre une techno, comment faire des métaclasses ou des contextes managers,
00:25:36 :ou des je sais pas, il y a plein de choses dans les objets Python.Mais sauf si on est sûr de savoir ce qu'on veut faire et dans quel but on veut faire,faire attention de ne pas compliquer inutilement un code.
00:25:48 :Il y a un acronyme, c'est KISS, qui est vraiment très puissant et qui marche pendant très très longtemps,voire je pense qu'il marche jusqu'à la fin de ma vie.
00:26:00 :Donc c'est KIT, IT, SIMPLE, STUPIDE.Au départ et dans les premières itérations, tu restes simple au point d'être stupide.Et ça marche vraiment pendant très longtemps cette méthode,où tu essaies de faire le plus simple possible, le plus de valeur ajoutée possible,donc répondre au service, et quitte à être un peu stupide ou pas faire des trucs très évolués,
00:26:26 :mais c'est fait exprès quoi.Du coup j'ai encore une question.J'en profite que tu sois là parce que ça te concerne personnellement.C'était moi qui avais posé la question sur l'exo et le chiffre en romains,qui demandait si on pouvait faire plus court que ce que j'avais fait ou pas.
00:26:48 :J'aime bien toujours vraiment aller au...Alors que ce soit lisible, mais surtout réduire mes...Je fais souvent ça dans mes exos, je commence en mode...
00:26:56 :Je m'en fous, j'écris 40 lignes et ensuite j'essaie de concater des...Et tu vois à faire des antipatterns, des trucs qui allongent le code, et après tu refais la liste.
00:27:06 :Exactement.Et alors du coup, toi tu m'as envoyé ta solution avec la fameuse fonction ZIP.Alors il y a une partie que j'ai du mal à comprendre, c'est qu'il y a à l'intérieur de la somme en fait.
00:27:17 :Tu peux me retransmettre dans les commentaires l'extrait de code que je t'ai écrit?Euh... Ouais.S'il te plaît.Alors je ne sais pas si ça marche...
00:27:35 :Si tu cliques là-dessus, tu l'as ou pas?Euh... Ouais, ouais, sinon dans Discord, ouais, je vais le copier.Ouais, le mieux c'est que tu le fasses.
00:27:43 :Ouais, en plus a priori, j'avais suivi vite fait le reste des converse, mais il était bugué l'énoncé.Oui, au final, il y avait un truc.
00:27:51 :Après, moi personnellement, quand j'ai vu ça, j'ai fait ouais, je m'en fiche un peu.Moi j'ai l'énoncé avec les tests, tant que ça passe, le reste après...
00:27:59 :La logique c'était mal.Je vais peut-être réduire un peu.Ok.Donc ouais, tu avais compris le test, tu avais parlé des dog tests.Alors ça, pour le coup, j'ai l'impression que c'est un truc automatique, c'est ça ou pas du tout?
00:28:17 :Ouais, non, ça ne marche pas. Bon tant pis.Mais grosso modo, c'est après quand tu es dans un éditeur style PyCharm ou même avec la suite de tests, genre PyTest,il peut prendre en compte en fait ce code et valider ton implémentation en faisant ses exécutions.
00:28:33 :D'accord.Bah attends, je vais te montrer.Bon en fait, il faut juste... là on dirait que ça ne marche pas dans les notebooks Jupyter, ou du moins je ne maîtrise pas assez.
00:28:43 :Donc là typiquement, j'ai créé, enfin j'ai copié la fonction.Ouais, la fonction.Et là si je fais clic droit, normalement il me dit « run.test ».
00:28:50 :Et là pareil, si je me mets là, ouais, tu vois je peux tous les faire.Et là il va tous, normalement il est censé tous me les exécuter, ou pas? Pourquoi il ne les fait pas?
00:29:00 :Test starting... Ah tiens c'est marrant, pourquoi il ne les fait pas?Normalement il devrait les faire.Ah non, ouais ok.Ah mais il m'a, ok il m'a reset, ok bon bref.
00:29:12 :Et donc là il fait tous les tests, et en gros il fait tous les tests.Donc là typiquement, je rajoute un qui est faux, je ne sais pas, on peut réfléchir à un truc.
00:29:22 :Genre 1, et je dis que c'est égal à 0.Normalement si je relance, il va me dire « hop, il y en a un qui ne va pas ».
00:29:28 :Ok, d'accord.Donc là il me dit « lui il ne va pas ».Il dit « j'attendais 0, donc ce que j'ai mis, et en fait ce que j'ai eu c'est 1 ».
00:29:36 :Ok, d'accord.Donc ça te permet d'écrire ça dans la documentation, c'est pour ça qu'on appelle ça des « doc tests », « documentation tests ».
00:29:43 :Et moi je l'ai utilisé plus pour te montrer comment s'utilise la fonction, et les cas limites.Ça peut être utile dans les cas limites, par exemple là j'ai montré un cas limite,scientifiquement dans l'énoncé il disait qu'il fallait relever une exception, j'avais pas vu l'énoncé.
00:29:58 :Là moi j'ai choisi de, si je reconnais, parce qu'il y a un caractère que je ne connais pas,qui n'est pas dans le dictionnaire, je renvoie à 0.
00:30:05 :Donc là ici je le documente en fait.Je dis « tu mets toto, tu récupères 0 ».Donc le mec il lit en fait l'imprésentation, il peut anticiper le comportement de la méthode sur quelque chose d'incorrect.
00:30:18 :Ok.Alors on va revenir à ta question qui était...C'était « comprends la logique globale ». Le début je comprends, c'est juste le return sum là à l'intérieur.
00:30:30 :Ouais, ça en gros, ça en fait c'est juste pour économiser des lignes,sinon tu pourrais le faire en, je sais pas, conversion, en entier, genre entier par exemple, ou résultat entier.
00:30:48 :Et après tac, et là tu fais le return de ça.Enfin c'est juste une... parce que c'est ça la question, mais je pense que c'est pas ça.
00:30:55 :Non enfin c'est juste la logique à l'intérieur de l'algorithme.Sinon c'est absolument bon.Tac. Alors qu'est-ce qu'on fait?Du coup, ça c'est donc sum, c'est l'opérateur.
00:31:07 :Ouais.Donc là, retourne la somme, blabla, donc là t'as la documentation.En gros tu lui files une liste, un itérable en fait, de valeurs,et lui il fait, il applique l'opérateur sum sur chacun des éléments.
00:31:20 :Ok.Après tu lui files ce qu'on appelle une liste compréhension.Donc c'est une construction, ça c'est une liste compréhension, c'est une construction d'un résultat.En l'occurrence tu lui... tiens d'ailleurs on pourrait même faire ça en fait.
00:31:33 :On est pas obligé de... on pourrait faire une liste...parce que la différence entre ça et ça, c'est qu'il y en a un qui est en read-only,et l'autre qui est en read-and-write.
00:31:42 :Genre ça c'est une liste que tu peux lire et écrire dedans,et ça c'est une liste qui est juste en lecture.D'accord, je sais pas.
00:31:49 :Bon c'est une désoptimisation, c'est pas... bon c'est un détail.Donc là en gros tu fais une liste compréhension.Donc une liste compréhension c'est, tu ouvres les opérateurs de liste, donc crochet ou parenthèse,tu dis le statement, donc comment t'évalues quelque chose,et après tu décris la boucle, donc comment tu itères sur les éléments.
00:32:06 :Ok.Donc en gros...De toute façon là tu as déjà fait une liste compréhension juste au-dessus, avec le nombre...Ouais j'avais déjà fait ici, c'est le même format, juste là j'ai fait, j'ai cité la ligne.
00:32:15 :Donc là ce qu'on fait c'est que... donc avec nombre ici...Bah tiens d'ailleurs on peut... bon tiens ce qu'on va faire, on va faire un run en debug,
00:32:25 :comme ça on va observer ce qu'il s'y passe.Donc là tac, chiffre romain, donc là ça à la limite on pourrait le mettre même en dehors,ça c'est une statique en fait.
00:32:34 :Donc là ici la liste compréhension elle itère sur nombre romain,nombre romain qui a, tiens d'ailleurs je l'ai pas mis, c'est une string.Est-ce que c'est important de mettre deux points et c'est-à-dire, parce que moi par exemple...
00:32:46 :Du coup là typiquement, par exemple en faisant le truc, j'ai hésité.Genre nombre romain, j'en sais rien, c'est ton format en fait.Ok.Et du coup là avec l'indication j'aurais su que c'était un string en fait.
00:32:59 :Ok.Bon, par exemple.C'est ce qu'on appelle là, ce que je viens de faire, c'est ce qu'on appelle le tipping en Python.C'est pas obligatoire, mais ça aide.
00:33:08 :Donc là typiquement par exemple, si après tu fais un...Tac, convertir, et là si par exemple tu dis 42,et là ici normalement il va te faire une indication qui dit...
00:33:26 :Ah, pourquoi il l'a éclifé?Alors il doit être ça.Ah, pourquoi il y est plus?Bon, normalement là ça te dit que le type est pas bon.
00:33:37 :Et ce qu'il attend c'est ça quoi.Ça est ce que tu as, ok.Je sais pas pourquoi là Python il est pas content.Normalement t'as une pop-up...
00:33:44 :Ouais, bon bref.Donc en gros, mais ça te fait un indicatif, comme en Python tout est dynamique,tu peux faire ce que tu veux avec ce que tu veux.
00:33:52 :T'as pas une erreur en fait de syntaxe,c'est pas une erreur syntaxique, c'est pas une erreur,y'a pas de compilation donc c'est pas une erreur de compilation.
00:34:00 :Mais en gros, si t'as un outil style MyPy qui fait l'analyse de type,là il te dira que là c'est bizarre dans la signature.Donc ici, t'as dit que c'était un string,mais là quand tu l'invoques c'est un entier,t'es sûr qu'il y a un truc qui va, que tout va bien quoi.
00:34:19 :Ok, d'accord.Donc là ici ce qu'on fait c'est qu'on iter sur le nombre romain qui est une string.Donc quand tu iter sur une string tu récupères caractère par caractère,donc tu récupères un chiffre romain.
00:34:32 :Donc ce qu'on fait c'est juste qu'on regarde, on utilise le chiffre romainpour récupérer dans le dictionnaire des chiffres romains qu'on reconnaît.Et si, là c'est là qu'on voit le truc, si on reconnaît pas le genre toto par exemple,ça c'est la valeur par défaut, donc là, ouais voilà.
00:34:47 :En gros t'as, ouais la documentation est pas terrible là sur le get.Le get en fait c'est donne moi une valeur dans un dictionnaire,avec cette clé, donc chiffre romain,et en alternative, j'sais plus comment elle s'appelle.
00:35:01 :Défault peut-être?Ouais c'est défaut, du coup là c'est plus explicite.Et sinon en alternative, mais zéro si tu trouves pas.Donc ça en gros, ça évite d'avoir une key error.
00:35:13 :Si tu fais pas ça, et si tu fais directement le chiffre romain comme ça,avec je sais pas, toto, là ici ça va te déclencher une...
00:35:23 :Ah tiens, c'est pas bon.Ouais là ça va arrêter.Là ça va faire une key error en fait.Ok d'accord.Donc ça c'est une autre façon d'écrire, par contre après il faut que tu gères ton default value.
00:35:33 :Comme ça va pas lever une exception ou une erreur,c'est à toi de gérer dans la juke métier comment tu vas gérer ça.Ok d'accord.
00:35:40 :Donc en l'occurrence j'ai dit tu mets des zéros à la place.Donc en gros là, si par exemple je mets ici, là si je mets un 1 ou un 5,en gros il va me faire 4 là.
00:35:48 :Normalement il devrait me faire 4.D'accord.On pourrait vérifier, d'ailleurs bon ça peut être un bon test.On va le rajouter, ça on verra après.
00:35:56 :Donc là en gros, il récupère chacune des conversions des chiffres romains en nombre.Donc normalement tu as un tableau de nombre après.Ouais ok.Tac, donc là ici tu as le tableau de nombre.
00:36:10 :Donc là c'est l'exemple III, donc tu as 1 dans le tableau.Et après ce qu'on fait c'est qu'on va itérer sur les nombres,enfin la liste des nombres qu'on a en décimales, en intégraux,sauf le dernier.
00:36:27 :Donc on part du premier à l'avant dernier.Ok.Tu connais, enfin vous connaissez ce formalisme ou pas?Ouais c'est le slicing, et la liste.En gros le slicing, tac ici tu as ta liste.
00:36:43 :Si tu fais slice, tu t'indexes directement.Après si tu peux utiliser le slicing avec les deux points,donc là c'est ta liste, tu peux définir un début.
00:36:53 :Ouais mais là en même temps la liste c'est toujours le même nombre,c'est pas terrible, on va faire un truc un peu plus facile à lire.
00:36:59 :Donc là tac, si tu fais le premier élément, si tu fais le dernier élément,tu peux faire avec ça, donc ça revient au même,tu peux dire ton premier élément, tu peux dire que tu commences en I,donc ça va faire 2, 3.
00:37:12 :Tu peux dire que tu t'arrêtes à l'avant dernier, donc ça fera 1, 2.Et tu peux combiner les deux, donc là ça fait juste 2,puisque tu prends pas le premier, tu prends pas le dernier, il te reste 2.
00:37:23 :Ok, donc là tu as fait 1, 2, 3, et du coup 3, 2, 1,enfin 3, 2, 1 et 1, 2, 3, ça fait deux listes.
00:37:29 :En fait tu peux soit indexer directement, donc en donnant une position,soit tu peux indexer en relatif, c'est ce que je fais là avec les deux points.
00:37:35 :Je dis 1 par rapport au début, ou moins 1,donc avec le moins c'est par rapport à la fin,combien tu te décales.Ok.Donc là en gros je dis, tu prends tous les éléments sauf le dernier,et là tu prends tous les éléments sauf le premier.
00:37:49 :Sauf le premier, ok.Et du coup tu fais une paire, donc ça le zip c'est pour appareiller.Je sais pas si la doc elle est claire là-dessus.
00:37:57 :Create and return new object, ouais putain elles sont dégueulasses les docs en fait.Parce que zip je crois que ça ne retourne rien.Zip en fait du coup ça te retourne un itérateur, on va l'observer.
00:38:10 :Donc ça c'est des trucs en piton un peu avancés,c'est ce qu'on appelle les lazy evaluation,c'est à dire ça te retourne un opérateur qui va te faire une opération,mais c'est l'opérateur qui va faire l'opération,c'est à dire que tant que tu ne l'as pas invoqué ça ne te coûte rien.
00:38:23 :Donc là c'est ce qu'on voit ici, ça te retourne un zip object,et en fait tant qu'il n'est pas évalué, je sais pas c'est quel type,ouais c'est un zip object, bon bref.
00:38:33 :Tant qu'il n'est pas évalué en fait c'est juste un objet vers quelque chose qui va être fait.Donc pour l'évaluer tu peux faire list ou itérer dessus,et là tu as quelque chose qui se passe.
00:38:42 :Ok.Donc là en gros le zip va réunir les deux lists,donc la première list c'est à dire tous les éléments sauf le premier,et tous les éléments sauf le dernier,donc en gros ça va te faire un nombre courant et un nombre suivant,ça va te faire un appareillage, nombre courant, nombre suivant.
00:38:58 :Ok donc deux nombres, ok.Et donc ça va faire, c'est ce qu'on a vu là quand je l'ai évalué,ça va te faire 1, 2, 2, 3 dans notre exemple.
00:39:08 :1, 2, 2, 3, ok d'accord.Donc là ici tu as le courant suivant, courant suivant.Ah oui ok, nombre courant c'est 1, 2, nombre suivant c'est 2, 3, ok.
00:39:21 :Nombre courant c'est 1, 2, ouais c'est ça.Ok.C'est un, ouais, bah là dans ce genre de truc simple,on ne fait pas des numtuple ou des trucs complexes,comme on est vraiment sur une ligne,on met la sémantique directement dans la ligne.
00:39:35 :Ici là je mets la sémantique directement dans la ligne.C'est vraiment pas bête parce que moi j'essayais avec une fonction range,et je galérais en fait avec un start, stop et un step,parce qu'à chaque fois j'étais, au bout d'un moment,en prenant les nombres 2 à 2, j'arrivais jamais,
00:39:51 :en fait je sortais de la range et ça faisait cracher le code.Ouais, après là ce que je montre c'est un design pattern de code,où quand tu veux faire ça, tu fais ça en fait.
00:40:00 :Là je n'ai même pas réfléchi, je sais que pour faire l'association de courant suivant,c'est comme ça que tu l'écris.Et je réfléchis même plus, je sais que ça s'écrit comme ça.
00:40:10 :Ouais, ok.Donc là ici tu récupères, tu t'éteins, tu récupères les courants suivants,donc le premier élément, deuxième élément, deuxième élément, troisième élément.Et là tu fais ta petite opération, ça c'est pour code métier,pour convertir et savoir si tu as une retenue,telle que ce dont on avait parlé.
00:40:28 :Et par contre il te manque quand même le dernier élément,parce que les paires ça sera premier, deuxième, deuxième, troisième,mais du coup tu n'auras pas pris en compte le troisième.
00:40:36 :Donc c'est là que je dis en gros, prends le dernier élément,et transforme-le en liste, et rajoute-le à la liste de résultats.Que le dernier élément, il n'y a pas de notion de retenue en fait.
00:40:50 :En gros, après ça c'est du code métier, mais typiquement dans SEAL par exemple,est-ce que ça marche ce truc?En gros, les derniers éléments ici, il n'y a pas de notion de retenue,tu sais qu'il n'y aura pas une histoire de moins un quelque part.
00:41:10 :Ok d'accord.Et il faut le prendre en compte, parce que là par exemple ça fait 1, 1, 2 et 2, 3,donc c'est le 1 et 2 qui sont évalués, savoir s'il y a une retenue ou pas.
00:41:19 :Par contre tu n'as pas pris en compte le 3 pour rentrer dans la somme, encore.Ok, ok, ouais ouais.Donc en gros tu te dis, fais le truc d'appareillage courant suivant,et fais l'histoire de retenue s'il y a un i qui se balade,et à la fin, rajoute quand même le dernier élément, parce que je sais que je ne l'ai pas pris dans ce fort là.
00:41:40 :Ah oui ok, ah oui tu retournes dans la somme.Là si je dis on rajoute le dernier élément car il n'a pas de suivant,donc il n'est pas pris dans cette boucle de courant suivant.
00:41:48 :Ok.Et après on fait une somme sur tout ça, donc normalement on a nos nombres et les retenues.Donc là en gros, ce truc d'opérateur, c'est si on regarde s'il y a une différence entre le courant et le suivant,genre un i5 par exemple, ou un iL,mais même là dans ce cas là, en fait ça ne marche pas ce code.
00:42:08 :Parce que là si tu as un VL qui retranche 5 de,il faudrait que je regarde quand même la définition de comment tu convertis des chiffres romains,mais je ne suis pas sûr que ça marche.
00:42:21 :Il faudrait essayer d'autres cas en fait.Mais là, de ce que tu m'avais transmis d'exemple et de ce que j'ai lu de l'exercice, ça ça marchait.
00:42:30 :Bref.Et après tu fais la somme de ça, donc la somme sur un itérateur.Donc ici on a fait une liste compréhension, plus une, tiens d'ailleurs on pourrait la faire comme ça aussi.
00:42:40 :Une liste.Et en fait du coup ça donne pour résultat.Donc on va voir si ça marche toujours.Parce que là j'ai, ouais, j'ai un peu de mal.
00:42:48 :Donc on va voir si ça marche toujours.Parce que là j'ai, ouais, j'ai modifié des trucs.Ah tiens c'est, pourquoi il gagne?Ah, j'ai modifié get.
00:42:58 :Ah ouais, get default il n'aime pas.Ah ouais, il n'aime pas le default.Ah ouais, marrant, ok.Bon, on va lui remettre ça.Euh...Ah!
00:43:10 :Ah oui, ouais, du coup, ouais, ils sont enrhumés dans le...Ah c'est le code game, c'est pour ça que je l'ai fait, ok.Comme je fais une création d'une nouvelle liste, là ici avec le plus.
00:43:18 :Je ne peux pas le faire avec des listes de tuples.Donc c'est pour ça que je l'avais laissé comme ça.Ok, t'additionnes deux listes à la fois, ok.
00:43:24 :Et il est toujours pas content.Toto...Ah il dit que c'est, ok, c'est marrant ça.Il met 0 quand même.Euh, comment c'est... Parce que là j'aurais pensé à...
00:43:36 :Attends, regarde ce qu'il y a là.Ah oui, non, celui-là, ouais, non.Attends, on ne va pas mettre les deux, ouais, ça n'a pas de sens.
00:43:42 :Mais le deuxième aussi il ne marche pas.Mais du coup il dit quoi?Expected for...Ah oui, ouais, et j'ai 6.Pourquoi j'ai un 6 là dessus?
00:43:52 :Ah c'est marrant ça.Ah mais du coup là il y a, je dirais qu'il y a un bug.Là c'est carrément un nouvel exo.Ouais, ouais, bon bref.
00:44:05 :Je regarderai, celui-là il est marrant, il y a un truc qui ne se passe pas bien, je ne sais pas pourquoi.Ok, bon en tout cas j'ai bien compris la logique.
00:44:12 :Surtout le truc du zip là, pour le coup, ça c'est vraiment un truc que je vais garder.Et les tests au début là, pareil, je ne connaissais pas du tout.
00:44:20 :Ouais, ouais, les tests, bah en fait, ouais, genre les doc tests, c'est bien pour faire une sorte de documentation,c'est-à-dire dire comment le comportement de ta fonction.
00:44:31 :Après, ça c'est limite, c'est-à-dire là ici tu invoques directement ta fonction.Si tu commences à avoir du code trop compliqué, c'est-à-dire tu dois créer des objets ou avoir des dépendances avec d'autres choses,tu passes à ce qu'on appelle des tests unitaires.
00:44:46 :Bon, on peut en écrire, genre je vais faire la conversion de ça en test unitaire.Du coup, tac.Est-ce que tu as un truc pour créer des tests, je ne sais plus.
00:44:59 :Test, auto-test.Quand tu m'as envoyé la doc, je pensais que c'était un espèce de module qu'il fallait importer.Et j'ai un peu du mal à le faire.
00:45:11 :Ouais, bah du coup, c'est un module.Peut-être de base, il me semble que c'est, attends, il me semble que c'est de base, tu as toujours accès.
00:45:21 :Après, moi j'ai toujours PyTest installé, donc c'était pas un bon exemple.Là tu fais un PyTest.Ouais, voilà, en fait c'est une option PyTest, tac, et je ne sais pas si ça marche.
00:45:35 :Ah ouais, réussi de le faire, ok.Je ne sais pas si on peut avoir plus de détails.Ouais, il n'y a pas des masses de détails.
00:45:41 :Bon bref, en gros c'est ce qu'on appelle les doc tests.Et par exemple, un moteur de tests comme PyTest, tu lui dis, vas-y, fais aussi les doc tests,donc ce qu'il y a dans le code source, et il va t'exécuter ces tests.
00:45:53 :Et là, par exemple, pour faire, je vais le faire vite fait, directory, donc on appelle ça test.Je ne sais plus si il y a un... Bon, c'est de la convention ça.
00:46:02 :Et après, pour faire des tests, en fait tu fais test, et en général tu mets le nom du fichier ou du service.Donc là on va rester sur le nom du fichier, mais souvent c'est plus intelligent de mettre une logique service.
00:46:15 :Et là, après ici, tu définis...Donc là, la convention c'est, pour être reconnu comme un test, c'est que tu tapes test, underscore,et après tu mets ton truc.
00:46:25 :Donc là on dit qu'on va tester main. On va récupérer ça.Ouais, bon, ouais.Ah, du coup, non, là ici, non, il faut mettre la logique, sinon ça n'a vraiment plus de sens.
00:46:38 :Donc ce qu'on veut tester, c'est ça. C'est conversion blabla blue.Tac. Tac.Bon, je vais vous faire la version simple, après il y a des trucs plus compliqués, mais ça va être chiant.
00:46:51 :C'est pas que ça va être chiant, mais c'est peut-être un peu trop compliqué pour rien.Et là, ce qu'on dit, après c'est un assert, tu sais pas si vous avez déjà vu un assert souvent?
00:46:59 :Pas du tout.Ok, je vous montre, c'est pas très compliqué.Tac.Donc en gros, un assert, c'est juste que tu fais un... Ah, non, ouais.
00:47:08 :Tu fais un assert, il s'attend à un boulet 1.Si c'est vrai, tout se passe bien.Si false, ça explose, ça fait un asserter.Là, par exemple, si je fais assert true, ça se passe bien.
00:47:24 :Si je fais assert 0, ça se passe bien.Assert false, ça se passe bien, etc.Euh, false, non, euh, pardon.Tac. Et ça fait un asserter.
00:47:36 :Donc là, en gros, tu dis, tu lances la fonction et tu t'attends à un résultat.Donc, une autre façon d'écrire, qui est peut-être mieux, c'est computed result.
00:47:48 :C'est plus explicite, je vais vous faire la version plus explicite.Tac. Expected result.Là, tu t'attends à avoir 3.Et en général, ta boucle, c'est computed égale expected.
00:47:59 :Et en fait, tu écris tes tests comme ça en général.Tac.Et après, normalement, je suis censé avoir le moteur...Ah tiens, c'est marrant.Ah, mais j'ai pas dû... Ouais, bon.
00:48:10 :Du coup, il faut un pytest.Normalement, il est installé, mais bon, c'est bizarre.Tac. Est-ce qu'il va me le faire?Ah, pourquoi il fait pas les tests?
00:48:22 :Run pytest. Yes, c'est ça que je vais faire.Voilà. Et après, ça te lance le générateur.Et ça te dit que ce test s'est bien passé.
00:48:34 :Après, ce que tu fais en général quand t'as des trucs comme ça...Ouais, bon, je vais pas vous le faire.Mais grosso modo, tu réécris ça pour tous tes tests.
00:48:42 :Là, en fait, c'est que des tests qui passent, donc c'est la même logique de test.Après, tu peux t'intéresser à des tests qui passent pas.
00:48:51 :Et là, tu peux réécrire un autre test underscore, genre erreur,conversion roman entier, with error, des trucs comme ça.Donc on va juste...J'ai vu, c'était quoi? 149.
00:49:07 :Un truc dans le genre.Tac. Et normalement, ça passe.Ouais, ok, d'accord.Et là, si par exemple, on revient sur le truc de Toto qui marche pas, d'ailleurs.
00:49:16 :Genre là, si je fais un T, T...Non, ça va faire le même chiffre, d'ailleurs.Mais je crois que ça marche pas terrible, ça.Du coup, il y a un truc qui va pas.
00:49:27 :Genre typiquement, là-bas, il y a un truc qui...Non, moi, ça devrait remplacer par des zéros.En fait, ça doit remplacer par des zéros.Donc ça, c'est ce truc, ça doit faire 0, C,bah je sais pas, 100, 0.
00:49:40 :Ouais, bon bref.Et style, il doit dire que lui est inférieur à lui,donc j'enlève 1 ou des conneries comme ça.Ok, ouais.Là, ici, il y a un problème de métier, par exemple.
00:49:49 :Ici, erreur à voir.Bref.Les tests, en fait, elles servent à ça.Et t'assurer que quand tu fais des modifications de code,que ça, ça reste valide.
00:50:02 :Ok.Bon, je regarde après.Du coup, c'est bon, là?Ouais, tout est clair, ouais.J'ai de nouveaux outils à mettre dans ma sacoche.Les autres, Hugo et... Non, pas Hugo.
00:50:14 :Loïc et Baptiste, ça vous a parlé?Ouais, ouais, c'est bon.Ok.Sur les tests unitaires, ça, vous aviez vu aussi, ou...Ou le concept, ou la façon de faire?
00:50:27 :Ouais, au moins, je pense que j'ai vu.Ouais, et les dog tests, vous aviez vu aussi cet outil?Non, dog test, non.Après, dog test, à utiliser avec parsimony, c'est dans des cas assez simples.
00:50:39 :En général, moi, j'utilise sur ce qu'on appelle des fonctions helperou des outils de fonction,c'est-à-dire des fonctions qui font des choses très simples et très précises.
00:50:47 :Et des fois, c'est un peu lourd d'écrire des tests unitaires,genre avec PyTest, comme c'est ce que je viens de faire.Donc, je mets les tests unitaires,et je mets les tests unitaires,comme c'est ce que je viens de faire.
00:51:00 :Donc, je mets les tests en mode documentation,directement dans la fonction.Ok.Comme c'est une faute, la fonction, elle est génératrice, en fait.Elle suffit à elle-même pour faire son action.
00:51:10 :Ce genre de fonction, j'ai tendance à les mettre en dog test.D'accord.Après, si c'est une fonction qui dépend d'autres trucs,ou même d'un contexte d'exécution,ou d'autres objets qui doivent se déclarer, etc.,
00:51:22 :là, tu rentres dans une autre logique de test,t'as un autre niveau de complexité pour le test.Ça marche.Sur les listes compréhension, sur le...
00:51:32 :Là, en fait, cette version-là,c'est ce qu'on appelle du functional programming.Donc, c'est des trucs un peu plus avancés, Python.C'est-à-dire, au lieu de faire des boucles à la mainet de faire des calculs à la main,tu fais tout en listes compréhension et en fonctionnal...
00:51:48 :Enfin, genre la sum, par exemple,c'est une functional order,c'est une fonction qui utilise un itérateur et qui itère dessus.Et du coup, tu réfléchis avec cette logique d'itération,où t'as des éléments dans une liste,tu peux les zipper, donc créer plusieurs éléments,tu peux faire diverses choses pour changer ton flux d'entrée,
00:52:07 :et après, en itérant sur le flux d'entrée,tu réfléchis en termes d'itération.Comment j'atteins mon résultat en itérant élément après élément?C'est un modèle de pensée...
00:52:19 :C'est un design pattern,c'est un modèle de pensée différent du genre le functional programming,c'est un peu en opposition,c'est différent de l'itératif,ou même de l'objet,ou de hiérarchie d'objet, ou de la récurrence.
00:52:33 :Typiquement, en parlementaire,il y a d'autres modèles, c'est la récurrence.On pourrait penser la conversion aux mains entières comme une récurrence,ou on pourrait peut-être réfléchir à décomposernombre aux mains,et de passer au fur et à mesure le résultat.
00:52:50 :C'est une autre façon, on pourrait le voir différemment.En gros, selon la méthode que tu choisis,ou tu es à l'aise de résolution,de design pattern,moi j'aime bien le fonctionnel,donc souvent je vais là-dedans,ta façon de penser et de résoudre le problème change aussi.
00:53:08 :Par exemple avec un fork classique,tu fais le truc un peu différent,genre tu fais un fork,d'ailleurs comment ils l'ont fait?Ah oui, ils ont une variableoù ils gardent le résultat précédent,et dans la boucle de fork,tu te rappelles toujours du précédent,donc le courant,et tu traites le précédent,
00:53:30 :et du coup le courant c'est le suivant du précédent.Donc ils jouent comme ça,avec la boucle d'exécution.Ici le trick c'est de faire le zip,qui permet de lier,le courant et le suivant,ils sont l'un après l'autre,donc je fais un petit trick avec le zip.
00:53:49 :D'ailleurs c'est un petit truc,pour avoir fait pas mal de formations Python,en plus de celles de Thibaut,sur W3school, etc.Les built-in-functions,c'est des choses qu'on ne parle pas beaucoup,mais il y a tellement de choses qui sont denses.
00:54:05 :Pour moi,tester comme en C++,l'équivalent c'est la STD lib,et après tu as 3 milliards de choses dedans,et c'est extrêmement puissant,et souvent les gens,en C++ c'était un truc que j'observais beaucoup,c'est les gens qui partaient dans du boost,ou même la Qt,ils ont plein de choses autres que de l'interface,
00:54:25 :et du coup les gens partaient dans des lib,qui faisaient des trucs super complexes,et souvent ils oubliaient de regarder dans le standard,genre qu'est-ce que le standard,déjà, te propose comme solution.
00:54:35 :Et dans Python c'est un peu la même chose,il faut souvent regarder dans le standard,il faut souvent regarder dans les lib standards,soit les built-in functions,enfin les built-in méthodes,genre qu'est-ce que Python,dans son design de base,te permet de faire ou te permet de résoudre.
00:54:51 :Et après si tu vois que tu es limité,ou que c'est compliqué,ou qu'il faut refaire là,enfin qu'il faut faire plein de choses,tu peux regarder des packages,des libs externes,qui peuvent peut-être t'aider pour ta problématique.
00:55:05 :Mais je pense que c'est vraiment une très bonne chosede regarder déjà la documentation Python,dans la liste des fonctions qui sontaccessibles gratuitement,genre qu'est-ce que tu peux faire.
00:55:15 :Ouais.D'ailleurs je vous inviteet je vous incite à lire la documentation Python,si ce n'est pas déjà fait.Elle est bien écrite, il y a des exemples,ça se lit bien.
00:55:29 :Celle que tu as envoyé là, le site blanc là,je trouve ça imbuvable personnellement.Ouais, ouais, mais c'est la base.C'est la base.Il faut connaître les concepts,les comprendre,et c'est là-dedans qu'ils sont définis.
00:55:43 :Après, oui,c'est sûr, si tu comparespar rapport à une vidéo pédagogiquede Thibaut, on est à des égards.Mais après, si tu veux devenirun développeur proet gagner des thunes, tout ça,c'est là-dedans qu'il faudra aller à un moment.
00:55:59 :Ouais, c'est sûr,je suis d'accord.On a un beau langage,ils devraient quand même se démerder pour faire une belle doc.Ouais,encore une fois, moi je ne suis pas front,moi ça me suffit largement.
00:56:13 :Ce niveau,moi c'est ce qu'il y a dedans qui compte.Mais oui,il y a d'autres types de docs, c'est vrai qu'ils pourraient le refaire,je pense que c'est historique, ils ont un moteurde documentation,ou un framework de documentation qui date,et ils ne l'ont pas remis à jour.
00:56:31 :Mais il y a Bermudit de doc,ou MKdoc, qui font des très belles docs.Genre, une belle doc que j'aime bien,c'est celle de FastAPI, je ne sais pas si vous avez regardé.
00:56:39 :Même Django,je pense que ça doit être belle, la doc. Django, elle est belle,ouais. Mais alors,vous voyez mon écran, là, quand je vais sur...
00:56:47 :Non, on est bloqué sur Pyke.Il est où, le...Ah, je crois que c'est...Ah oui, c'est là.Genre, ça c'est le...le framework web que j'utilise,qui est très... J'aime beaucoup d'ailleurs.
00:57:03 :Très orienté...très orienté à Synchron.Ça c'est un autre truc, ouais, qu'on pourra parler peut-être une prochaine fois,tout ce qui est à la synchronicité,et le pattern de codelié aux asynchrones, async,et asyncio.
00:57:17 :Et du coup, la doc, là,chez lui, moi je la trouve vraiment sympa.Je ne sais plus comment ça s'appelle, je crois que c'est...Ouais, c'est MKdoc, lui qui l'utilise, par exemple.
00:57:27 :Matériel for MKdoc.Et genre, ça commence à être sympa,genre, des trucs un peu plus sexy,des mises en page un peu plus sympas.Ça donne envie!
00:57:37 :Ouais, ouais, bon après ça dépend le public que tu vises, quoi.Mais lui, lui par exemple,lui, il fait beaucoup de backhand,et beaucoup de... Enfin, lui il fait tout, il est super fort,
00:57:45 :ce mec. D'ailleurs, si vous voulez regarderdes vidéos de mecs super forts en Python,lui il est à sûr.Triangolo, quelque chose...Tiangolo,je crois qu'il est sud-américain.
00:57:57 :Lui, il fait vraiment des trucs très stylés.En fait, lui, c'est vraiment l'archétypede ce qu'on appelle le full stack.Le mec, il maîtrise tout,que ce soit le backhand, le fronthand,l'infra, genre il touche à tout.
00:58:11 :D'ailleurs, il a une très belle...un très beau paquetqui fait des applications client,enfin, CLI, pour le terminal.Ça s'appelle...Ah, j'ai oublié.On va rechercher.
00:58:27 :De toute façon, c'est sur son GitHub.Je ne suis en train de regarder.Je crois que...Non, c'est pas CLI, lui, mais c'est un autre truc.
00:58:35 :Ah, j'ai oublié. Ah, ça râle, GitHub.Typer. Typer, c'est sympa aussi.Si vous voulez faire des...Si vous faites des applications CLI, ça peut être cool.
00:58:47 :Je vous envoie le lien.Vous voyez, c'est quoi,c'est des applications CLI?Pas du tout.En gros, c'est sur le terminal, ici, par exemple.Là, par exemple, c'est sur un truc CLI.
00:58:59 :Ce qu'on appelle le terminal,c'est là-dedans.Et une application CLI, c'est quoi, par exemple?Tous les trucs, en fait,que tu as sur le terminal,c'est des applications CLI.
00:59:11 :C'est custom, en plus.Après, c'est mon truc.Moi, j'aime bien être sur le terminal,donc je configure en mode simple.Et tout ça, en fait,du coup, là, pour avoir des trucsd'aide ou de lacomplétion d'arguments, etc.,
00:59:27 :tu peux le faire avec Typer.Des trucs qui clignotent,qui font des animations.Par exemple.Et pareil,si vous voulez regarder un autreframework web assez puissant,FastAPI,c'est cool.
00:59:49 :C'est moins hypé.Enfin, c'est plus hypé que Django,mais t'as moins de taf,entre guillemets.Par contre, mes deux derniers jobs,on était sur FastAPI.
01:00:01 :Après, c'est vrai que j'oriente mes recherches pour pas faire du Django.Thibault, il en parlait, de FastAPI.Après, là, c'est un peu tôt. Peut-être, concentrez-vous
01:00:11 :sur des trucs.Faut pas regarder en tête.Vous vouliez parler vite faitde quelque chose d'autre?Moi, j'ai encore une petite question,mais c'est parler Baptiste ou Loïc, si jamais c'est la question.
01:00:27 :Non, non, non, ça va.C'est vrai que là,on a pris un peu le micro.Parlez, si vous voulez.Pas de soucis, je suis surla doc FastAPI.
01:00:39 :Mais j'ai pas envie de subir une autre PLS.C'est un truc à garder dans les onglets.Voilà, je vais mettre dans les travaux.Si vous avez des maladures d'onglets, d'ailleurs,à voir plus tard.
01:00:51 :À voir plus tard, ouais.À se suivre.Coming soon.Working progress.Je vais le mettre dans mon camp-ban.Je l'ai mis dans mon camp-ban.Voilà, en cours.
01:01:05 :Loïc, t'avais des trucs?Non, non, non, parce quedu coup,du coup, oui.Django, de ce que j'ai compris,il a SQLitedirectement intégré dedans.
01:01:19 :Et alors là, j'ai commencé à bosser les modèles,mais je suis au tout début de la formation, Thibaut.Et il parle de ORM,si je ne dis pas de bébises.
01:01:27 :Il dit en gros qu'il n'y a pas besoin de...Ouais, c'est ça, exactement.Il dit qu'il n'y a pas forcément besoin de connaîtrele SQLite,que tu peux faire avec les classes, etc.
01:01:37 :Bon, ça je vais bientôt le voir, mais ma question étaitest-ce que pour un débutantcomme moi, est-ce que ça seratoujours utile, ou pas,d'apprendre le SQL de base?
01:01:47 :Dure, question dure.Ça dépend en fait des postsque tu vas cibler.Après, je pense que c'est une bonne chosed'apprendre l'ORM de Django,si tu veux faire du Django.
01:02:01 :C'est une bonne chosede connaître le concept d'ORM,tout court, c'est-à-dire de comprendrel'avantage et ce qu'il t'offre.Après, si tu faisune entreprise qui est spécialiséeen database,en données, enfin qui abeaucoup de données, etc.
01:02:19 :Elle pourra être très vites'orienter versune gestion manuellepour des questions d'efficacité,de contrôle. En fait, le problème des ORM,l'avantage et l'inconvénient, c'est qu'ilst'enrobent tout. Tu as tout qui est enrobé,
01:02:33 :tout qui est un peu caché.Quand ça marche, quand c'est simple,c'est très bien, voire parfait.Dès que tu atteins les limitesdu modèle ou les limites de performanceou tu commences à avoir des erreurs un peu compliquées,là tu pleures des larmes de sang.
01:02:47 :C'est horrible.Ça devient imbitable à débuguer,ça devient imbitable à comprendre.Tu dois comprendre la logique de l'ORMet du coup tu te retrouves àdébuguer l'ORM au lieu de débuguer ton problèmede base de données.
01:03:01 :Ça peut être très frustrant et très énervant.Sachant que c'est des classes et tout.En plus,c'est de la programmationvraiment avancée, avec des métiers classe,des trucs imbitablesque tu n'as pas envie de regarder pour l'instant.
01:03:15 :Même plus tard, en général.Je t'avoue que j'ai un peu prispeur quand j'ai commencé Django,parce que j'aime bien comprendre le globalet aller un peu dans les détails.
01:03:25 :Mais regarder chaque classe,c'est d'apprendre et là,quand tu digues le code,tu peux vite avoir peur.Pour l'instant,dans l'apprentissage Django, c'est bien de connaîtrel'ORM Django, parce que c'est le métieret les tutos vont en parler, les formations vont en parler.
01:03:41 :Donc, mets-toi dedans.Tu vas faire des choses certainement très simplesau début, donc ça va parfaitement marcher.Après,assez rapidement, je dirais que c'estvraiment pas une perte de tempsd'avoir au moins les bases SQL.
01:03:55 :Même de toutes les bases de données relationnelles.Donc le SQL, c'estle standard, enfin le trucqui écrase tout. Mais il y a d'autresmodèles relationnels, si on est un parmi d'autres.
01:04:05 :Donc déjà, SQL,si le MariaDBou SQLou SQLite, tout ça c'estla même chose à peu près.D'ailleurs, de vite passer au truc,enfin, genre là tu commences, donc SQLite c'est bienet de vite passer à une vraie DB, genre MariaDBou MySQL.
01:04:23 :Par exemple.Et après, t'intéresserà d'autres, genre après.Ça dépend dans quoi tu veux travailler.J'aurais du mal à t'évaluerl'échelle de temps, maissi par exemple les modèles de données ou les bases de données,ça t'intéresse de regarder d'autres DB, en l'occurrencedes DB non-relationnels, si le MongoDB
01:04:41 :ou P10,ça peut rentrer trèsvite dans les compétences qu'on va te demander.Ok, d'accord. C'est bon à savoir.Du coup,Baptiste, t'avais un avis là-dessus?
01:04:53 :Ouais, en dev web, je dirais oui.Ouais ok, tu peuxargumenter plus.Moi j'aurais dit oui. Enfin non, pas argumenter.Non mais on ne fait pasun combat d'argumentation,juste...
01:05:07 :Mais ouais, SQL,moi je pense que c'est pas mal d'apprendre ça en dev webparce que tu peux en avoirbesoin pour gérer des bases de données rapidement.
01:05:15 :Ouais, clairement. Je dirais la même chose.Surtout que c'est assez courtje crois le SQL.Ça dépend ce que tu fais.Si t'es utilisateur,en gros tu dois apprendre le select,genre comme on dit dans le CD.
01:05:29 :Si t'es un peu plus, genre tu faisde l'optimisation ou t'es administrateur,c'est un autre délire.Et pareil, après t'asaussi lechamp migration,changement du modèle et changement du schéma.
01:05:43 :Là tu rentres dans un autre universplutôt cauchemardesque.En général, en junior,débutant, c'est pas forcémentce que tu touches.Ok, d'accord.Bon bah écoutez,je vais voir ça.
01:05:59 :Moi, j'ai fait des formationsil y a pas très longtempspour essayer de me mettre à un niveauSQL, enfin post-grad en l'occurrence.Ça peut se faire assez vite,je l'avais fait en une semaine.
01:06:11 :Si tu bosses un peu le truc, tu peux le faire en quelques jours.Par contre, si je me lance dedans,je vais le poncer, je vais faire ça8h par jour.
01:06:19 :Ouais, après, fais attention de pas te cramer.En vrai, pour l'instant, écoute,je tiens toujours le même rythme.T'es assez jeune, t'as quel âge?25.
01:06:29 :Là t'es dans ton top.Je crois que je suis jusqu'à 28.Après on commence à descendre.Alors, wow.Oui, oui.Moi j'ai 41,je suis réaliste,j'ai pas du tout les mêmes capacitésque quand j'avais 25.
01:06:47 :C'est la fleur de lâche, 41.Ouais, mais après,tu compenses sur d'autres trucs.Tu réfléchis moins,tu deviens plus feignant,et donc t'es plus efficace.
01:06:59 :D'ailleurs, c'est un adage aussi qui est pas mal.Un bon développeur, c'est un développeur feignant.Ouais.Tu verras, j'entends souvent.Et un autre adage qui est pas mal,c'est que tu dois pas savoir...
01:07:17 :Quand t'écris du code,c'est obligé qu'il y aura des erreurs.Donc tu dois aussi apprendre à détecter des erreurs.C'est-à-dire que du code parfait,ça n'existe pas, ou presque pas.
01:07:27 :Enfin, même, ça n'existe pas.Comme le code, c'est les humains qui l'écrivent,et même le langage lui-même a été créépar des humains, donc il y aura forcément des problèmes à un moment.
01:07:35 :Donc à un moment, ça peut être intéressantde savoir comment...À défaut de pouvoir écrire un code parfait,tu peux essayer de mettre des chosesqui te protègent de l'imperfection,des erreurs, des crashes, etc.
01:07:47 :Ouais.Bon, c'est pas vraiment un adage, c'est plus un conseil.Ouais, puis ça vient avec l'expérience, à force.Ouais, ouais.Tu te terres sur des choses que t'as déjà vues,et des trous dans lesquels t'es déjà tombé.
01:07:59 :C'est la définition de l'expérience,ou presque.Avec des séries d'échecs qui t'ont forgé.Tant que ça fait pas perdre1000 euros ou plus à l'entreprise.
01:08:09 :Ouais, ça arrive aussi.C'est d'autres types d'échecs,mais ça arrive aussi.Il y a des gars qui ont perdu des grosses sommessur des erreurs.
01:08:19 :Mais souvent, d'ailleurs, dans ces histoires,souvent les erreurs, c'est ceux qui sont au-dessus de lui.Dans la plupart des erreurs que j'ai entendues,où il y a un débutant qui a fait perdre des sommes hallucinantes,c'était un problème des seniors.
01:08:29 :Soit ils l'ont mal embarqué,soit ils n'ont pas assez protégé leur environnement.Il a supprimé le Git.Ouais, ou la base de Raytrod,ou des trucs comme ça.
01:08:39 :Qui a fait un dérageErase All.A t'un an, au bout de deux jours,il n'y a plus rien.Je ne sais plus c'est dans quelle boîte,mais il y avait une histoire.
01:08:51 :Un débutant, un junior,il avait peut-être 2-3 ans d'expérience,mais dans le truc pour s'embarquer,je ne sais plus comment ça s'appelle,le bootstrap, en gros, quand tu arrives dans une boîte,t'as une semaine,ça dépend des boîtes, où tu faisdes tutos, des formations internes.
01:09:07 :Et les mecs, ils l'avaient foutu sur la basede Raytrod, ils l'avaient tout niqué,parce que c'était pendant du camp.Et donc, ils se déclaient,ils disaient la formation, genre comment j'efface tout.
01:09:17 :Dans la formation, il y avait ça.Des chaffs que normalement, tu es censé être dans un environnementtel.Et du coup, le mec s'est mis virécomme un sale, mais au final,c'était la faute des seniors,des CTO,de toute la chaîne technique.
01:09:33 :Oh la la, ouais.Ça doit crier,pas là. Ouais, surtout, ça paniquede ouf, hein.D'un coup, tu dis, les clients, ils n'ont plus accèsà leurs données, j'ai plus accès du tout.
01:09:45 :Quand tu t'appelles de backup.Après, dans les responsabilitésdes seniors et desmecs qui sont censés expérimenter, normalement, tu as des solutionsde backup, etc. Il y a des gens, ça ne ferait pas
01:09:55 :du tout transpirer de crasherla prod ou la base de prod,parce qu'ils savent qu'ils ont des backupstoutes les semaines ou tous les jours. Oui, c'est ça.
01:10:03 :Donc après, c'est là que tu prendscompétence avec des expériences traumatisantescomme ça, tu prends compétencesur des solutions plus pérennesoù tu sécurises plusl'imprévu.
01:10:15 :Typiquement, des data centers qui prennentfeu, des trucs comme ça.Il y a eu le VH, je crois.Ouais, OVH, ouais, qui a cramé.Oulala, là, il y a eudes sacrés pertards dans la vie.
01:10:27 :Surtout sur les PME et sur ceuxqui sont non informatiques.Ils avaient fait zéro backup,pas de sécurité, pas declonage de leur site, etc.
01:10:37 :Et en gros, leur prod étaitdans un truc quipouvait cramer.Aïe, aïe, aïe, coup dur.Mais surtout sur les petites PME, je crois,ça a vachement impacté.
01:10:49 :Ouais.Ben, dites-moi, on va faire un dernier petit tour.Je viens là, vous faites... Ouais, ben, dis-moi.Toute petite question qui n'a pasforcément rapport avecla programmation directement.
01:11:05 :Mais il faut que je me remetteles mains dans Linux.Et qu'est-ce que tu meconseilles de voir en priorité?Ça dépend. C'est quoi ton objectif?
01:11:15 :Tu veux faire quoi? Ben, pour de laprop', quoi. Parce que je sais quequand je suis en résidence, tu veuxme toucher à vraiment des choses spécifiques.
01:11:23 :Et j'imagine que pour la programmation,c'est la même chose. Ben, du coup, ouais,je te conseillerais tout ce qui est terminalshell, de bien être à l'aiselà-dessus, configurer ton shell,mettre tes outils en place, faire ton installationde tes outils, d'avoir un trucun peu clean en système de fichiers.
01:11:39 :Donc, ça pourrait avoir le coup de regarderles systèmes de fichiers qu'on a organisés,ces dossiers en Linux. Bon, c'est pas des trucscompliqués, ce que je te dis. C'est des trucs
01:11:47 :assez basiques, simples.Après, tout ce qui est système de packageaussi, ça peut être intéressant, selon le langageet le système où t'es, commenttu packages tes applications,genre typiquement,moi, j'aitrès peu de bases installées,de données installées sur mon système. Je marche tout par
01:12:05 :Docker, par exemple. Donc, ça peutêtre l'occasion de regarder comment ça marche,si tu veux avoir un truc un peu clean de ce côté.Et après, ouais,bien configurer ton shell,d'être à l'aise avec cet outil, parce que tu vaspasser beaucoup de temps dessus.
01:12:19 :Ok, parce que toi, tu fonctionnes uniquementavec Linux?Ouais. Des fois, j'aides VM, si vraiment j'ai des besoinsspécifiques, je me fous sous VM.
01:12:29 :Ok.Etquelle distribution? Tu as choisi Debian,c'est ça? Ouais, Debian, la dernière,c'est la 11. Etaprès, Seval, à peu près toutes.Ça dépend de ton expérience et sur quoi tu es à l'aise.
01:12:43 :Mais genre, Ubuntu et Debian, c'est très procheen termes de noyaux et decomment ça fonctionne, genreAPT, Synaptic, etc.Après, tu peux t'intéresser, là, ça commenceà être vraiment mature, tout ce qui estArch Linux, avec Manjaro, par exemple.
01:12:59 :Ça commence à être vraiment sympa.Je limite, j'hésiteà transiter là-dessus.Arch Linux commence à être vraiment coolpour plusieurs aspects.Donc ça peut être intéressant.
01:13:11 :Il y en a, je connais, à un moment, j'étais sous Fedoraaussi, il y avait des devs qui étaient sous Fedora,ils aimaient bien.Qu'est-ce que j'ai vu d'autre qui peutêtre sympa? Après, tu as Mac sous
01:13:21 :Unix, donc c'est un autredélai, mais ça marche pas malaussi.Après, Windows, ils ont fait vachement de progrèsavec WSL,donc système de virtualisation de Linux.
01:13:33 :D'ailleurs, c'est pas une virtualisation,c'est maintenant, c'est intégré, leWSL2 intègre un noyau Linuxdirectement dans Windows.Ça reste intéressant.Après, moi, je suissous Windows,j'aiune VM Ubuntu,ça me suffit.
01:13:55 :Oui, je penseque si ta machine est assez puissante,en plus, tu peux avoir un trucassez rapide.VirtualBox.Oui, VirtualBox.En général, c'est le trucque tu utilises,le truc d'entrée de gamme qui marche bien.
01:14:13 :Avant, j'avaisParallels quand j'étais sur Mac.Je ne sais pas ce que c'est devenu,ça fait longtemps que je n'ai plus de Mac.Je pense que c'est très bien,VirtualBox.
01:14:27 :C'est assez rapide, ça répond à tonbesoin.Moi, j'avais fait un peu,il y avait de la programmatique,je ne sais pas ce que j'avais utilisé.
01:14:37 :Tu peux faire du code d'installation de VM,tu peux le rendre programmatique.J'ai oublié déjà.Tu peux faire une sorte de script,une description de ta VM,et tu as une génération automatiquede ta VM. Je l'avais utilisé pour
01:14:51 :tester mon installation,c'est-à-dire, tu as un ordià zéro et tu veux faire une installationcomplète de l'OS,pas de l'OS,tu as besoin de l'OS quand même,mais il y a zéro paquet, zéro config,je voulais automatiser et testerl'installation de cette config.
01:15:09 :Du coup, je retrouvais le nom,c'est un peu, parce que là,il n'y a que la moitié de l'histoire.Comment je l'avais appelé,ce truc?
01:15:19 :Ah, je n'ai même plus le nom.Ah, frustrant.Je n'ai même plus le mot-cléqui me permet de revenir.Attendez deux secondes.Comment ça s'appelait?
01:15:33 :Side project?Ah, putain, il faut vraiment que je renomme mes trucs.Ah, oui, c'est bon.Vagrant,c'est ça que j'ai utilisé.Vagrant, c'est cool.Et donc, tu as un Vagrant file.
01:15:49 :D'ailleurs, je vais vous le montrer sur PyCharm.C'est vrai qu'il y aun terminal sur PyCharm.Et tu as un Vagrant filequi ressemble par exemple à ça.
01:16:05 :Ah, il est sorti.Ah, c'est marrant.Ah, oui, ok.L'outil...C'est pas terrible ça.Avec quoi je vais ouvrir?Bon, juste un cat.Et un less.
01:16:27 :Non, ça devrait marcher ça.En gros, on décrit...Ah, oui, en fait,c'est pas terrible le terminal sur PyCharm.Il fait des trucs pas connardement.
01:16:37 :Lui, il est censé...Il est censé pouvoir monter, descendre.Donc là, il le fait.Je ne sais pas si ça avait fait un peu de docker.
01:16:45 :En gros, tu définisdes caractéristiques de ta machine.Je lui ai dit que je voulais une Arch Linux.D'ailleurs, là, je crois queje testais une installation sur Arch Linux.
01:16:55 :Je ne me reconnais pas à mon ref.Et après, tu donnes des informationsstyle timezone, par exemple,pour configurer l'heure.Là, tu dis, est-ce que tu vas avoirun écran, combien de mémoire,combien de CPU,et quel type d'extension tu veux.
01:17:11 :Et ça, ça te construit ta VM.Et après, du coup,j'avais un script que je voulais tester qui était full install.Donc on peut le regarder, si vous voulez.
01:17:19 :Et du coup, c'est le script que je voulais tester.C'était ça.Et donc, en gros, j'utilise...Ah, ça ne fait pas grand chose. Ah ouais, d'accord.
01:17:27 :Ce n'est pas ce truc que je voulais voir.Là, c'était un test.Ah si, quoi que non, c'est ça.Mais j'ai dû...Ah oui, ok, d'accord.
01:17:37 :Ce n'est pas ce truc que je...Ah oui, c'est Debian 11 que je voulais.Tac, tac.Ah, Debian 11.Donc c'est plus là-dedans.Tac.Donc là, c'est la même chose, sauf que là, c'est Debian 11que je voulais tester.
01:17:55 :Et après, voilà, c'est ça que je cherchais.Et après, tu fais ce qu'on appelle des provisions.Donc je dis, dans la VM que je suisen train de construire, avec la description qu'il y a au-dessus,copie-moi ce fichierà cet endroit. Donc ça, c'est mes
01:18:07 :fichiers de setting. Donc là, c'est pour lefond d'écran. Après,j'ai un post init pour un scriptaprès d'installation. Là-bas, moi, j'aitous mes settings, genre profile,git config, ça c'est mon shell,ça c'est Tmux, bon, c'est un outil,etc. Et après,
01:18:23 :normalement,il est censé exécuterfull install, ici.Et normalement, lui, il l'appelle...Voilà, c'est un shell, donc il l'appelle.Et donc là, c'est full installque je veux tester.
01:18:37 :Donc script full install.Et là, j'ai toute ma description d'installation.Donc là, j'ai tous mes outils qui sont installés.Donc il y en a plein.
01:18:45 :C'est justement un truc assez exhaustif.Et c'est là-dedans queje mets mes scripts d'install et tous mesoutils. Et je fais, avecVagrant, j'instance la VMqui installe tout ça et j'essaye de voir siça marche. Donc là, il y a plein de trucs.
01:18:59 :Je vous transmettrai le truc si ça vous intéresse.Genre là, par exemple, il y aun truc sur mon asynologieoù je dis, en plus,bon, ça sert à rien,c'est une IP interneà mon réseau.
01:19:13 :Et là, je lui dis, en gros,monte les volumes que je veux avec teldroit, etc. Donc si tu fais de la programmatiqued'installation. Je ne sais pas si vous avez déjà
01:19:21 :joué avec des trucs comme ça.Je n'ai pas le niveau, je pense.Ouais, mais c'est pas...Bon, là, je vais peut-être mal expliquer. C'est pas si
01:19:29 :dur que ça. En gros, c'estje veux installer un nouvel ordi, il n'y a riendessus, et je veux automatiserl'installation. Grosso modo.Ouais, ok. Bon, ça j'avais compris. Mais c'est surtout au niveau des commandes.
01:19:39 :Moi, par exemple, j'étais désolé.Après, ça c'est du shell Linux.Une expur, là.Bon, après, j'ai quasimentcodé toute ma vie en Linux, doncc'est là-dessus que je suis agréable.
01:19:51 :Bon, alors,il y a d'autres questions? On fait un petit tourde table? Me dire ce que vous avez pensé.Genre, s'il y a des trucspeut-être à améliorer, etc. Comme ça,
01:20:03 :on fait un petit retour.Ça sera apprécié.Non, c'était très bien.Après,comme j'ai déjà dità Thibault, le souci, c'est qu'onn'a pas tous le même niveau.
01:20:17 :Donc, il devrait intituler les mentoratsenfin, je ne sais pasde quelle manière, maisau moins qu'on se retrouvepar rapport à notre niveau.Quand tu es développeur webet d'autres qui commencentles sessions,la formation complète,j'imagine qu'il y en a un des deuxqui est perdu.
01:20:39 :Et je me diss'il n'a pas intérêtà faire ça. Ouais, ouais, carrément.Je me suis retrouvé dans des mentorats,ça parle les chinois, ben, dans les PLS.
01:20:49 :J'en ai un peu marre des PLS.Le problème avec les trucs groupés, c'est que ça peut vitediverger et partir dansdes discussions de comptoir informatique,entre guillemets. Et du coup,
01:20:59 :tu peux être vite largué. En plus,tu as tendance à effrayerles débutants qui disentil y a plein de trucs que je ne comprends pas.
01:21:07 :Mais en plus, ce sentiment,quasiment tout le monde l'a à différents niveaux.Ça dépend dugroupe de personnes que tu as.Donc, c'est vrai, c'est intéressant. Je remonterai
01:21:17 :à Thibaut.Essayer de peut-être clusteriser un peu les groupespar des niveaux.Après, voilà, c'est...J'essaie d'être constructif,si tu veux.Mais tu as raison.
01:21:31 :Si tu n'arrives pas à récupérer assez d'informationsou que ça soit assez enrichissant, parce quetu as investi du temps, quand même.Il faut quetu aies un truc,enfin, il faut que tu aies un bénéfice.
01:21:43 :Ouais, tout à fait.Non, mais après, voilà, comme j'ai dit à Thibaut,c'est juste que ça m'est arrivé,je crois, deux fois, où vraimentj'étais là,je me disais, mais qu'est-ce que je fous là?
01:21:55 :Je ne comprends rien du tout.Mais je vois, moi j'ai déjà ressentice que tu dis. Moi je faisaisune meetup sur Paris, la meetup C++,et je pensais êtreun mec relativement bon en C++,et je suis arrivé dans un truc,je n'ai rien compris.
01:22:11 :Ils déconfilaient le code,ils faisaient des arbres de compilation et tout,j'étais là, mais c'est quoi ce délire?Et ils étaient tous en mode, ouais, ouais, c'est comme ça,c'est comme ça, et j'étais là, ok,mais en fait, c'est pas pour moi.
01:22:23 :Trois mois de récup après.Ah bah,de nouveau PLS, je crois.Je ne suis même pas restépour la pizza,c'est la première fois que je snob un snack.
01:22:35 :Je me sentais tellement mal.Quand on est adhérent à la pizza,c'est que, ouais, non,il y a quelque chose qui ne va pas.C'est ce qu'on appelle le syndrome de l'imposteur.
01:22:49 :Ouais, ouais, ouais,t'as ça aussi, c'est vrai que t'as le côtéde l'imposteur. Mais après,les mecs, après je me suis renseigné,ils étaient dans des labos de recherche, dans desgrosses facs, genre c'étaitleur cab.
01:23:03 :Bah, il y a, il y a.Ok, cool, merci pour le retour.Bah, c'est pas de souci.Baptiste, vous go?Oh, moi,je trouve que c'était pas mal, c'était bien.
01:23:17 :Rien à rajouter.Le mec, il est suisse.Ouais, non, je me mouille pas trop.Je fais de ma place.Ok, bon, bah, merci quand même.
01:23:35 :Attends, attends,il s'appelle aussi Loïc?Baptiste.Et Hugo?Bah, moi, pas récubatif,pas grand chose à dire, j'ai reçu pas mal denouvelles choses que j'avais besoin.
01:23:51 :Il va aller à Artebo,les deux, ça allait, mais Loïc, n'importe quoi.Qu'est-ce que c'est que ces gens?Ok, cool. Du coup,ouais, mais j'en parlais avec Thibault,c'est vrai qu'il faut peut-être un peupréciser un peu les mentors.
01:24:09 :C'est vrai que moi, je serais plus du côtédesign de code,d'architecture de code, et Python,moi, je suis plus à l'aise dans du Python pur,c'est-à-dire vraiment basésur comment écrire du code, comment fairedes trucs un peu efficaces,ou résoudre des, par exemple,tout ce qui est résolution algorithmique, résoudre des
01:24:27 :problèmes algorithmiques, tout ça, c'est des trucs que moi, qui me botte,plus.Après, du coup, ouais, s'il y a des besoinsgenre spécifiques, session de mentoratsur du front-end, genre Djangoou autre, c'est vrai que ça pourrait être pas mald'avoir des trucs plus ciblés.
01:24:41 :Ou simplement, tu vois, mettrequand il met événementsession mentorat, juste qu'il rajouteavancé, débutant,expert, tu vois, juste ça.Et puis, comme ça, ça te permetd'un petit peu ciblerlà où tu en es. Mais après,
01:24:57 :sur ce mentorat-là, l'idée,peut-être que j'ai pas assez insisté, mais c'était vraimentvous venez avec vos problèmes,donc vos problèmes, vraiment, ils sont à votre niveau.
01:25:05 :Après, il faut une proactivitépour que ça cibleet que ça soit intéressant. Il faut être proactifsur...J'avais même pas compris que c'était toi qui présentait le...
01:25:15 :Ouais, il y a peut-être eu un problème de communication.Après, j'ai pas faittrès attention,j'ai pas regardé tout le canal, maisje savais passur quoi porter le mentorat.
01:25:27 :Non, non, non, il faut faire un effortsur le descriptif du mentorat.Je pensais que c'était un fitavec toiet qu'il y aurait aussi Thibaut.
01:25:37 :Ouais, mais normalement, il devait avoirThierry aussi,mais du coup, ça s'est pas fait.Thierry, c'est pareil,lui c'est un truc level aussi.Ouais, il a l'air fort. Lui, c'est un truc slack,
01:25:49 :je pense, du coup, il maîtriseplein de trucs. C'est incroyable.On avait fait le projetPureBeur, là.Ça, ça faisait partie de monmentorat, où...
01:26:01 :Ah, bah là,j'ai été prendre l'air, j'ai pris mon chien,et je suis allé faire un tour.Tu sors de là,t'es pas bien.Tu te sens vraiment comme une grosse merde.
01:26:13 :Et le mec te parle de ça dans le plus granddes cas. Ouais, ouais, le mec,il est détente.Bon, alors là, je vais commencerpas trop fort. Ah, d'accord.
01:26:23 :Là, c'est... D'accord, t'es pas trop fort.Pas trop fort et c'est géomatique.C'est-à-dire que moi, je t'ai perdu,ça fait cinq minutes.Ah, d'accord.Ouais, ouais, bah après,c'est le bateau, ce que je veux dire, maisavec le temps, ce qui vous paraissaitgenre insurmontableou incompréhensible, ça va devenir une langue courante.
01:26:43 :C'est évident. Vous allez être super à l'aise.C'est évident, maisc'est sûr que quand t'arrives,moi je me dis, ça va, parce que... Enfin, ça va.
01:26:51 :Là, ça faisait déjàun mois que j'étais dedans, doncj'arrivais encore pas... Il parlait pasde lingon, si tu veux.Le mec, il s'inscrit surle blogstring, il fait sonpremier versement, il arrive là-dessus,c'est bon.
01:27:07 :En mode,il parle de quelle langue, j'ai pas le tempsd'en avoir mon premier choix.Exactement, c'est du clin d'ongle.Ah, d'accord.J'avais payé pour du plutôt.
01:27:19 :Après, c'estune étape,genre le mentorat, c'est une étapeça fait partie du paquet,il y a plein d'autres trucs à faireAprès, c'est vrai que ça peut êtreintéressant qu'il y ait uneefficacitédans le process.
01:27:37 :Ce que je pourrais vous conseiller, fortement vous conseiller,c'est d'être proactif.Limite de préparer le truc un petit peu avecdes séries de questions, ou des sériesde trucs sur lesquels vous avez un peulutté. Et c'est là que je pense que ça
01:27:49 :deviendra intéressant et personnalisé.En général, moi c'est ce que j'ai fait avec Thibaut,les mentoratsoù vraiment ça a été leplus productif,c'est quand tu es arrivé, j'avais mon projet,que je pouvais rien faire.
01:28:03 :Après, s'il y a un courssur, je sais pas moi, la premièrepartie de la formation complète,des choses comme ça,je sais pas, mais justeou alors, cours de clin d'ong, et puis dans ce cas-là...
01:28:15 :Ou sinon, genre c'était pas malle truc de conversionen chiffres romains, ou si vous avez des...Genre ça, c'eston peut avancer sur de l'algorithmie,c'est du Python, ça peut être sympa.
01:28:27 :Oui, et puis c'est pas encore du chinois,donc ça va.Je sais pas sivous y avez participé au projetPurebird de Thierry, là? Pas du tout, non.
01:28:37 :Ben regarde-le endiffusion, mais prépareles ferra-le-grand, enfin toi ça ira, mais...J'en ai pas mal.J'y avais regardé un peu, mais c'est vraiqu'il s'était assez large,il y avait du front, du bac, et aprèsil faisait du déploiement, il faisait pas mal de trucs.
01:28:53 :Ah ouais, non mais ça...Mais c'est bien, en fait il a présenté un projet full stack,genre en 3 sessions. Ah mais c'est génial,c'est génial, mais c'est vrai que...
01:29:01 :Je sais pas s'il fait de l'hébergement aussi,il a parlé un peu d'hébergement, ou de comment déployer,des trucs comme ça? Je sais plus.Honnêtement, il y avait tellement d'attentes.
01:29:09 :C'est possible, parce queil voulait intégrer cette couleur.J'ai dû revoir la première partie,il y en a 3, je crois que la 3e est pas encore...
01:29:17 :Ah mais si, j'ai regardé un peu, j'avais mis en accéléré,ouais, ça avait l'air intéressant,mais c'était long. Oui, donc toi t'as un level,tu l'écoutes en accéléré.
01:29:25 :Ouais, parce que...Il y a des trucs, genre comment faire la configuration,comment configurer,ou mettre en place ton environnement.Ça m'intéresse pas plus que ça,mais du coup...
01:29:37 :C'est vrai que j'ai l'habitude de mettre en 1.25 de base,et des fois je mets en 1.5.Ah ah ah!Bah le temps,c'est pas... C'est largement.
01:29:47 :C'est une ressourcelimitée.Ah bah c'est clair, non non, mais...Donc c'était simplement ça,si tu veux mon avis.Yes.J'en parlerai, de toute façon on fera un...
01:30:01 :un post-mortem.Le 30 avril.Post-workout!Avec Thibault.Ils sont décédés, j'ai 3 ABCqui ont fait LS,j'ai dû faire de la réanimation.Je l'entends, les pompiers.
01:30:17 :On aurait pu faire des...avoir un défibrillateur sur ça.Exactement.Les fer à grand ça marche bien.Non non, après c'est pas...Là voilà, c'était pas très très technique,donc ça va. Mais dès que ça part,
01:30:31 :je te dis sur des...Y'a des trucs où je me disaisça faisait, je sais pas, peut-être 3 semainesque j'avais commencé,c'était le deuxième mentora,ou je sais plus lequel exactement, peu importe.
01:30:43 :Et moi, mon vieux,ça fait...Ah ouais, ouais.Tu sais, je pensais...En plus, tu penses vraimentêtre monté en compétence.Ouais, ouais, il a été...
01:30:57 :Il a été un gros taquetderrière la nuit.Le bat de baseball, clac.Déléqué.Ah, t'avais des problèmes cervicaux.Ah d'accord.Y'a plus de problèmes cervicals, ça va beaucoup mieux.
01:31:11 :Bientôt tu repenseras tout ça avec nostalgie.Ah bah bien sûr.Je ne sais guère, je sais bien.Tu seras bientôt distributeur de PLS officiel.Exactement.
01:31:21 :D'ailleurs, ça peut être biende se rappeler assez longtemps pouréviter de refaire les mêmes...Prochainement, tu seras sûrementtoi qui apprendras aux autres,ou quel que soit le niveau.
01:31:33 :Et du coup, il faudra essayerde se rappeler de ses émotions.La formation, c'est l'heure de la guerre.La formation, c'est l'heure de la guerre.
01:31:41 :La guerre, la conserve.Ah non, je plaisante.Mais oui, bien sûr.En plus, la pédagogie,c'est quelque chose de très difficile.Moi, j'admiredes gens comme Thibault, comme toi,ou comme Thierry aussi.
01:31:57 :Moi, je suis en apprentissage.J'apprends à apprendre.Vraiment, c'est en rire,c'est vraiment un métier.Clairement.Tu vois, même dans l'enseignement,il y a des gens qui n'ont pas le truc.
01:32:11 :Oui, mais attends, parce que là,on est encore sur autre chose.Nous, ici, on a tous choisi.Quand tu es devant des...Oui, choisir est subir.
01:32:21 :Là, par contre,c'est encore une autre histoire.Bon, messieurs,moi, ça commence à tirer dur, le ventre.Ça marche.Bon, c'était sympa.En espérant vous revoir.
01:32:35 :Je repasserai sûrement, peut-être,une fois que je serai en copilote,où on verra comment on fait les portions.Et, bon, après, je vous réitère,c'est vrai que ça peut être sympa,au cours de votre formation, de la semaine,si vous avez des trucs que vous galérez,que vous ne comprenez pas, vous les mettez de côté,
01:32:51 :vous faites une petite compile.Et après, comme ça, vous avez de la matière,ce genre de trucs, ça vous aiderait à comprendreou à vous améliorer.
01:32:59 :Du coup,c'est peut-être ce que je peux vous conseillerde mieux par rapport à la formationet votre investissement dans cette formation.D'accord.C'était super sympa.
Aucune occurrence trouvée pour « ».