Arnaud LEMAIRE

Arnaud LEMAIRE

Clock 30 heures de cours
Free session Premier Cours Gratuit

Présentation

10 ans d'expérience : développeur, architecte logiciel & CTO

Après une période en tant qu’indépendant, j’ai occupé le poste d’architecte logiciel dans une entreprise spécialisée dans les logiciels à destination du secteur public. J’ai alors pu créer des logiciels pour des contextes métiers particulièrement complexes.

Il y a trois ans, redevenant indépendant, j’ai mis à profit mes compétences en développement logiciel pour aider de jeunes entreprises innovantes, à "scaler" en complexité. Pendant cette période j’ai eu la chance de travailler depuis  Bucarest, Hambourg et Raleigh (US). C’est fort de cette expérience internationale que je suis à présent CTO de la start-up lmem.net.

Polyglotte, je travaille au quotidien avec les langages : php, ruby, python et javaScript. Spécialisé sur les questions de conceptions logicielles, mon objectif est de vous expliquer à la fois comment maitriser un langage, mais surtout quelles sont les bonnes pratiques associées pour garantir un développement de qualité

J'ai aussi la chance d'être régulièrement speaker lors d'évènements locaux ou nationaux liés au développement : Meetup, Bdx.io, PyConFr, BreizhCamp, SoCraTes (DE & FR)... 

Par ailleurs je m’occupe des communautés 1cup expert, Agnostech et while42 sur Bordeaux et Pau. Je suis également auteur et mainteneur de plusieurs librairies open source.

Cursus académique

  • diplômé de University of Strasbourg
  • Bac S

Avis des élèves

5 Avis
  • Extraordinaire
    5
  • Excellent
    0
  • Bien
    0
  • Moyen
    0
  • Décevant
    0
  • Seuls les élèves ayant pris un cours sur LiveMentor sont autorisés à laisser un avis.



    Les élèves peuvent évaluer leurs mentors sur 3 critères :




    - Expertise
- Disponibilité
- Pédagogie

    Avis laissé par Oussou

    Le 29 mars à 19h02

    Extraordinaire

    Toujours un plaisir d'échanger avec Arnaud qui sait allier pédagogie et expertise. Au delà de l'apprentissage et de la compréhension d'un langage informatique, il vous amène à vous poser les bonnes questions pour cibler des concepts et outils adéquats pour répondre à une problématique donnée.

    Avis laissé par Gamliel

    Le 18 janvier à 20h09

    Extraordinaire

    Avis laissé par Daoud

    Le 08 octobre à 12h05

    Extraordinaire

    Avis laissé par Thomas

    Le 08 octobre à 11h46

    Extraordinaire

    Très sympathique et surtout très pédagogique ! C'est un prof qui ne se contente pas de réciter un cours qu'il a préparé, il va plus loin : il s'adapte à vous. Peu importe ce que vous savez ou voulez savoir, Arnaud trouvera toujours une manière pertinente d'échanger avec vous de manière à vous faire progresser en vous posant les bonnes questions et en apportant les bonnes voies de réflexions.

    Avis laissé par Félix

    Le 05 octobre à 16h31

    Extraordinaire

    Arnaud est un excellent mentor tant sur le point pédagogique qu'en terme d'expertise. Tout le monde peut apprendre à développer en achetant un livre ou sur les nombreux sites dédiés. Arnaud, lui, transmet bien plus. C'est à la fois un passionné et un professionnel, 2 qualités essentielles qui lui permettront de vous transmettre le coeur du métier : Comment pensent et s'organisent les développeurs ? Quelles sont les bonnes pratiques ? Quels concepts sous-jacents ? etc.
    Voir plus d'avis

    Questions et Réponses

    Comment supprimer une occurence dans une liste ?

    Python / Le type de données en Python

    Pour répondre très simplement il existe deux façon de supprimer un élément dans une liste : - soit par son index : del maListe[monIndex] - soit par la valeur de l'élément : maListe.remove(maValeur) Cependant attention à l'opération de suppression, modifier une liste à la volé peut entrainer des bugs assez génant. Dans le cadre de suppressions dans une collection j'ai donc tendance à préférer la création d'une nouvelle liste à partir de la première en supprimant les éléments qui ne conviennent pas à l'aide de la fonction filter.

    Comment utiliser les classes en CSS ?

    CSS / HTML / Généralités en CSS

    Une class en CSS permet d'identifier un ensemble de noeuds dans le DOM, une class se définit à l'aide de l'attribut class : <balise class="maclass"> et va ensuite se déclarer à l'aide d'un "." dans le fichier de style : .maclass { monStyle: valeur; }

    Comment intercepter les exceptions ?

    Ruby On Rails / Questions fréquentes sur Ruby

    Il est à noter que contrairement à beaucoup d'autre langage de programmation, Ruby possède deux méthodes pour déclencher une exception : "raise" et "throw". Cela implique l'existence de deux méthodes de captures pour les exceptions : "rescue" utilisé avec raise et "catch" utilisé avec throw. Rescue et raise, représente la mécanique classique de gestion des exceptions, quand throw et catch sont des méthodes de contrôle pour gérer des interruptions de l'exécution du programme. Ainsi Rescue/Raise utilise des objets qui représentent l'exception, alors que throw et catch se bases sur des symboles. Petite astuce d'écriture : il n'est pas nécessaire de placer un mot clef "begin" dans une méthode pour placer un rescue, ainsi les deux écritures suivantes sont équivalentes : def ma_method begin #code rescue #code de l'exception end end def ma_method #code rescue #code de l'exception end Vous pouvez aussi capturer une exception spécifique à l'aide de "rescue" en indiquant le type d'exception que vous souhaitez capturer, par exemple "rescue MonException" ne va capturer que les exceptions de type "MonException". De cette façon vous pouvez capturer uniquement les erreurs que vous souhaitez et laisser le reste du logiciel gérer les cas d'erreurs que vous ne savez pas traiter. Il est possible de placer plhttp://www.kelbillet.com/site/widgets.htmlusieurs "rescue" à la suite pour capturer à chaque fois un type d'exception différent. Enfin Raise permet d'utiliser une méthode "ensure" pour exécuter un bloc de code même si une exception se déclenche, cela permet par exemple de terminer les traitements en cours (comme déconnecter la base de données).

    Comment scinder une chaîne de caractères en un tableau ?

    Javascript / JQuery / Tableaux et Dates en Javascript

    La méthode "Split" permet de répondre à cette problématique. Elle accepte en argument un caractère qui servira de séparateur pour découper les tronçons de la chaine : - "Une chaine de caractères".split(" "); //caractère séparateur : espace, renvoi ['une', 'chaine', 'de', ... ] - "Une chaine, avec, des virgules".split(","); //caractère séparateur : virgule, renvoi ['une chaine', 'avec', 'des virgules'] Vous pouvez aussi utiliser une expression régulière pour découper la chaine : - "Nous avons 2 chiens et 3 chats".split(/\d/); //caractère séparateur : tout nombre, renvoi ['nous avons', 'chiens et', 'chats'] Enfin, si vous souhaitez limiter le nombre d'éléments à récupérer, vous pouvez le spécifier en deuxième argument de la méthode: - "une chaine de caractères".split(" ", 2); //caractère séparateur : espace, renvoi les deux premiers éléments soit : ['une', 'chaine'] Astuce : Si vous avez besoin d'accéder directement à un caractère, vous pouvez utiliser une syntaxe similaire aux tableaux directement sur la chaine en question en indiquant simplement l'index du caractère recherché ainsi "test"[1] renverra "e".

    Où puis-je trouver la documentation officielle (en anglais) en ligne ?

    Javascript / JQuery / Débuter sur JQuery

    La documentation officielle de jQuery se trouve à l'adresse suivante : http://api.jquery.com/.

    Matières enseignées et méthodologie

    Git niveau Formation Professionnelle

    Git est un outil très puissant et qui est devenu au fil des années indispensable pour travailler en équipe.

    L'outil pouvant paraître complex au premier abord, c'est au travers de cas réel que je vous montrerais comment configurer et organiser son workflows de travail seul ou au sein d'une équipe, au travers des "branching model", gestion des "pull request", revue de code

    Enfin je vous accompagnerait sur la prise en main des forges logicielles Github et GitLab.

    PHP niveau Formation Professionnelle

    Ayant été successivement développeur puis architecte logiciel dans une entreprise développant des logiciels SAAS à l'aide de php. C'est un langage que je connais parfaitement et particulièrement dans son usage en entreprise avec l'outillage que cela implique. 

    Programmation informatique et développement Web niveau Formation Professionnelle

    React niveau Formation Professionnelle

    Je suis actuellement CTO d'une startup qui utilise React & Redux pour construire son application web ainsi qu'une extension navigateur. Je pourrais ainsi vous accompagner dans la découverte du développement javascript moderne (javascript 2015). 

    Ruby On Rails niveau Formation Professionnelle

    Je suis actuellement CTO d'une startup qui utilise ruby pour son backend, c'est donc une technologie que je connais parfaitement pour l'utiliser au quotidien

    SQL niveau Formation Professionnelle

    Symfony niveau Formation Professionnelle

    Ayant été successivement développeur puis architecte logiciel dans une entreprise développant des logiciels SAAS à l'aide de Symfony. C'est un langage que je connais parfaitement et particulièrement dans son usage en entreprise avec l'outillage que cela implique. 

    Lean Startup niveau Business et entrepreneuriat

    Actuellement CTO d'une startup, mais aussi expert technique auprès de plusieurs jeunes entreprises de la région Bordelaise. Je peux vous aider et vous conseiller sur l'utilisation du Lean Startup dans le cadre d'un projet de logiciel ainsi que sur les pratiques de développements associés.

    Formation Professionnelle

    Business et entrepreneuriat



    Vous avez une question ? Contactez sans hésiter, 7j/7 un membre de l'équipe LiveMentor par mail à l'adresse contact@livementor.com.


    Logo emblem Connexion

    Logo emblem Inscription (1er cours gratuit !)