Dans cette vidéo vous allez apprendre moins de dix commandes Git, qui vont vous permettre de vous en sortir dans 80% des situations, c’est à dire qu’elles vont constituer votre routine de développeur.
Il est recommandé de commiter à la fin de la journée à minima, même si vous n’avez pas encore fini votre code, en effet si votre ordinateur venait à se faire voler, vous perdriez une journée de travail.
O2switch est un hébergeur français avec une formules très intéressante pour les étudiants en développement web. EN effet vous devez présenter (si vous faites un projet hors stage un site), et on attends de vous de savoir déployer en production, et non faire un github Pages ou un Heroku.
Je m’aperçois que beaucoup d’étudiant ne savent pas faire un simple FTP vers un serveur mutualisé ou VPS, par contre ils s’y connaissent en Docker! . Or je me rappelle que c’est un des premiers trucs que j’ai appris à faire. Je veux bien que vous travailliez avec des dockers, mais sachez au moins comment cela se passe sous le capot.
Je conseille aux étudiants de prendre un hébergement O2switch qui coûte 120 euros TTC environs, et qui permet d’avoir 5 VPS. Vous avez un hébergement par défaut, et 4 autres qu’ils appellent des lunes, qu’il faut créer. Je pars du principe que vous avez créé des lunes, et que vous avez accès via une liste déroulante, la fameuse liste déroulante que je vais customiser avec un script Javascript que je ferai exécuter avec Greasemonkey (ou Tampermonkey sous Chrome). Voilà à quoi ça ressemble de base :
Voila qui est bien plus pratique, car je ne retrouvais jamais mes sites, je devais me constituer des notes pour me repérer.
Je vous détaille donc comment j’y suis parvenu. Pour comprendre comment fonctionne Greasemonkey je vous envois vers ce tuto [xxx].
le but est ici de faire de la manipulation de DOM, on va remplacer les textes de la liste déroulante avec nos sites web. Le script Greasemonkey va s’exécuter une fois qu’on clique sur la liste déroulante, au passage l’interface web CPanel est codé en Angular. Mais cela n’influence pas notre script.
On a donc une liste déroulante en HTML qui est chargé de façon asynchrone, nous allons voir pourquoi tout à l’heure. Pour remplacer le texte des élément <li>, nous devons capturer l’élément HTML, parcourir ses éléments et remplacer avec innerHTML le contenu de ces <li>.
Greasemonkey permet d’injecter un script Javascript dans la page. Voici le code:
// ==UserScript==
// @name Customize O2Switch
// @version 1
// @grant none
// ==/UserScript==
let mapp = new Map()
mapp.set('exceret (huynh.odns.fr)',"site1.com")
mapp.set('sc1exceret (sc1exceret.universe.wf)',"site2.fr")
mapp.set('sc2exceret (sc2exceret.universe.wf)',"site3.com")
mapp.set('sc3exceret (sc3exceret.universe.wf)',"site4.com")
mapp.set('sc4exceret (sc4exceret.universe.wf)',"site5.com")
let handler = function(){
let e =document.querySelector('#ddlAccounts_chosen')
let f = e.querySelector('.chosen-results')
f.children[0].innerHTML = mapp.get(f.children[0].innerHTML)
f.children[1].innerHTML = mapp.get(f.children[1].innerHTML)
f.children[2].innerHTML = mapp.get(f.children[2].innerHTML)
f.children[3].innerHTML = mapp.get(f.children[3].innerHTML)
}
let body = document.querySelector('body')
body.addEventListener("click", handler, false);
On constitue notre objet Map qui est l’équivalent d’un tableau associatif PHP, chaque clé est associé une valeur le nom du domaine. Grâce à querySelector, je capture l’élément HTML, et à la fin du script j’ajoute un event listener qui s’exécute au clic, ce qui va bien car la liste déroulante se charge en asynchrone.
ce script n’est pas parfait car au chargement du Cpanel vous êtes dans la vue principale qui liste les 5 VPS, mais une fois que vous avez cliqué une des lunes, la liste se réduit aux 4 lunes décalant les index. Le script ci-dessus a été optimisé pour la page avec les 4 lunes. Il faudrait pouvoir détecter le contexte et proposer le bon affichage.
La classe appelante est couplée à la classe appelée, si on veut changer de manière de lire des données, il faut réécrire la classe appelante.
Des classes découplées
La classe appelante est découplée à la classe appelée, grâce à une interface, si on veut changer de manière de lire des données, il suffit lors de l’appel de la méthode de passer une autre classe appelée.
Ce qu’il faut retenir
Ici le plus important est que c’est l’interface qui est passée en paramètre de la méthode lors de sa définition MAIS pas de l’exécution de la méthode, à ce moment là on passe un objet(!) dont la classe implémente l’interface.
Le mot return permet de passer un valeur à l’appelant de la fonction
Le mot clé return est un des plus compliqués à expliquer en fait le mot clé rythme n’existe que dans une fonction et il sert à retourner la valeur au monde extérieur à l’appelant c’est-à-dire qui a appelé la fonction.
En effet une fonction est un ensemble de codes qui permet de faire des calculs et on obtient un résultat à la fin de ce calcul ce résultat eh bien il faut le stocker dans une variable et comme le col se déroule à l’intérieur de la fonction la seule façon de passer cette valeur ce résultat à une variable et d’utiliser le mot clé return en fait on peut imaginer que une fonction c’était comme un vase clos qui a eu une entrée et une sortie dans le return c’est la sortie on peut imaginer que c’est une boîte noire qui prend des paramètres en entrée et il va nous délivrer un résultat à la sortie.
Dans la vidéo ci-dessous j’essaye de vous expliquer en détail le fonctionnement de la boucle for, sont fonction est le même quelquesoit le langage.
Une boucle est une machine à répéter du code
tout étudiant en informatique est souvent confronté à des difficultés pour comprendre la boucle fort parce que ça demande beaucoup d’efforts ça met en jeu beaucoup de concepts, je vais essayer à travers cette vidéo de vous les montrer, de la manière la plus simple possible . tout d’abord une boucle for permet de répéter un bout de code autant de fois qu’il le faut , si je veux faire une fois 2*1000 fois, ou 1000000 de fois, c’est une boucle for qu’il me faut . et c’est la raison d’être de nos machines, c’est de répéter une action alors vous me direz donc dans quel genre de situation on peut utiliser une boucle for ? en théorie de la boucle for permet de parcourir les collections de données mise en pratique qu’est-ce que c’est ? je vous le montre la syntaxe d’une boucle dans 2 langages très courants le javascript et le PHP .
Décomposition d’une boucle for
Dans les quels que soient les langages, je vais vous en à 3
paramètres après le mot clé fort il y a d’abord le premier paramètre qui est
initial c’est le début de la boucle le point de départ de la boucle le 2e
paramètre représente la limite supérieure de la boucle virgule et le 3e
paramètre Eh bien c’est le pas c’est à dire on la progression a de combien
j’avance et entre les accolades nous avons le bout de code à répéter
On appelle ça un bloc de code ici c’est une simple ligne qui
affiche la variable de lit mais on peut faire aussi complexe ce qu’on veut
La variable i va donc partir de la position 0 puis il va valoir 1,2,3,4 et 5 et va s’arrêter là, il ne va pas prendre la valeur 6 puisque la condition du milieu i < 6 le lui interdit
La boucle fort en l’utilise pas avec une variable i ,dans la réalité on utilise la boucle for lorsqu’on travaille avec des variables qui sont des collections, c’est quoi une collection ? une collection c’est une variable qui contient plusieurs valeurs en javascript ce sera un tableau et en PHP c’est un tableau également
Que serait un code sans notion de collection?
Si nous ne connaissons pas les collections ou les tableaux on va créer une variable pour contenir une valeur par exemple la variable $eleve va contenir Dupont, et si j’ai plusieurs élèves comment je fais? et bien on va devoir créer plusieurs variables $eleve1, $eleve2 etc, et c’est vraiment pas pratique ! La solution c’est d’utiliser donc un tableau, dans lequel on va déclarer une seule variable, de type tableau et dedans on met tous les prénoms séparés par une virgule.
Corollaire : la boucle FOR s’utilise presque toujours avec une variable de type collection
donc la boucle for s’utilise principalement avec une collection, en PHP ce sont des tableaux et idem en javascript, on va se servir de la boucle for pour parcourir le tableau. Un élément dans un tableau est repéré par sa position encore appelé index . Le premier élément a un index 0, le dernier élément a un index qui est égal à la taille du tableau (c’est à dire le nombre d’éléments du tableau moins 1).
Quelles sont les applications concrètes d’une d’une boucle for?
Par exemple lorsque vous êtes dans votre espace Amazon, et que vous voulez lister les commandes que vous avez déjà passées et si vous avez fait plusieurs commandes par le passé, ces commandes seront insérées dans des dans des tableaux,
Les onglets que vous avez ouverts sur votre navigateur par exemple ce sont des items contenus dans un tableau, donc si j’ai une dizaine d’onglets ouverts j’ai 10 éléments dans un tableau d’onglets.
Un menu de page web par exemple, aussi c’est ce sont des différents éléments d’un tableau.
Illustration graphique des index dans un tableau
Je vais essayer d’illustrer le l’histoire des index avec parking de supermarché voilà nous avons en parking avec des voitures des places des parkings numérotées et souvent il la place de parking numérotée 0 ça n’existe pas ! donc ça commence à 1,mais en informatique on commence pas 1, on commence à 0 donc sur l’exemple qu’on voit ici la voiture numéro un à la place de parking numéro un en fait en informatique ce sera l’index 0
En informatique on ne code pas en dur les valeurs, on aime bien que le code soit générique, qu’il qu’il puisse marcher dans toutes les situations. Dans l’exemple du tableau de prénoms, bien que nous ayons 3 éléments on ne va pas mettre le nombre 3 pour la longueur du tableau, mais on va mettre une une expression qui va représenter la longueur du tableau de façon symbolique, ceci va nous permettre de de faire marcher le script quel que soit le nombre d’éléments qu’on a dans notre tableau
Voilà pourquoi on utilise les variables c’est pour que notre code ait des emplacements dans lesquels les valeurs peuvent être diverses une fois qu’on a écrit le code on n’y touche plus le code doit marcher quelque soit les situations donc c’est important de ne pas coder en dur les variables
La variable i parcoure les index
L’astuce de la boucle FOR est donc de faire promener la variable i dans l’intervalle de valeur des index, ceci nous permet de parcourir tous les éléments d’un tableau.
La solution relativement simple consiste à créer un input de type hidden donc invisible qui contient la valeur à envoyer dans tous les cas. Elle sera écrasée par la valeur de la checkbox quand cette dernière est cochée.
Quelle langage informatique viser, quelle technologie viser? quelles entreprises viser ? beaucoup de débutants se posent ces questions car faire ce choix n’est pas simple, par exemple de temps en temps je vois des gens qui recommandent d’apprendre le langage Java, est-ce vraiment pertinent? si votre but est de travailler dans une agence Web, je vous recommande d’apprendre le PHP et le JavaScript, parce que le Java, c’est dans des très gros logiciels typiquement en informatique de banque. Pourquoi cette distinction est importante?
Si vous travaillez dans une agence Web, vous allez travailler sur des projets de petite envergure entre trois mois et six mois, parfois plus neuf mois ou un an. Alors que si vous travaillez dans le langage Java, vous allez travailler sur des gros systèmes. Non seulement vous allez travailler dans un contexte énorme, mais en plus vous allez travailler sur les très longues durées, des années voire sans fin, ce n’est pas forcément du goût de tout le monde.
Je vous rappelle que ce billet est dans le contexte du développement web (on ne parle pas de jeux vidéos, développement de logiciel desktop…)
Quel langage de programmation choisir ?
Dans le monde du web il y a les langages back end (côté serveur) et front end (côté client ou navigateur). Dans le front end Javascript règne en maitre, il est complétté par le HTML et le CSS pour la mise en forme des pages. Côté serveur, c’est plus disputé, il y a énormément de langages plus ou moins populaire. PHP est très populaire, il y a aussi Python, Ruby, Java, C# et de nouveau Javascript.
Quand un novice demande quel langage il faut étudier, et je sais que pour ce novice le conseil est très important, car il va passer beaucoup de temps avec ce langage, j’entend des réponses plus ou moins réalistes.
La raison voudrait qu’on réponde PHP ou Javascript pour le back end, (car pour le front end y a pas photo pas de débat c’est javascript), mais j’entends aussi Python ou Java. Et désolé, mais c’est vraiment pas très réaliste, les gens qui répondent ça, travaillent-ils dans ces technologies? travaillent-ils ou ont-ils travaillé dans d’autres technologies?
En effet, vu le contexte de la demande, je trouve que ce n’est pas bon conseil de conseiller le Java pour faire du web. Qui dit Java dit Java EE, Hibernate, mais surtout une courbe d’apprentissage très très longue. Et surtout vous n’allez pas faire un site vitrine, ou un petit e-commerce avec Java. Java c’est fait pour des très gros logiciels en environnement bancaire notamment. c’est un langage considéré sûr pour des choses “sérieuses”, le PHP c’est pour faire mumuse. Plus sérieusement, à chaque problématique répond un langage. Si vous voulez faire un site de petite ou moyenne taille PHP ya pas photo. Pour des gros sites aussi c’est PHP. Par contre c’est ridicule d’utiliser Java EE et Hibernate pour faire un Prestashop, que tout le monde va s’approprier. La technicité est toute autre avec Java, alors non ne dites plus de bêtises, surtout si vous ne travaillez pas avec Java.
Quant au Python, malgré tout le buzz que la presse veut bien relayer, dans le monde du web, il cède la place à PHP. N’apprenez pas Python si vous voulez faire du web, vous allez rester au chômage longtemps. Python, c’est utilisé dnas l’IA, machine learning, etc, si vous voulez travailler dans ces domaine alors oui allez-y pour le Python et pas PHP.
Quant à Ruby il est trop confidentiel en France. On est en 2020, pariez sur PHP, merci.
Un truc simple à faire : Allez sur Indeed ou tout autre plateforme de job, et cherchez les offres dans ces différents languages par ville et comparez.
Quelle technologie viser?
Outre le fait de développer un logiciel en un langage pur sans faire appel à un framework, ceci prend du temps et n’est pas tout le temps justifié, il existe des frameworks qui vous facilitent le développement d’applications.
Si vous avez lu le premier paragraphe, vos choix se sont rétrécis, du moins pour le langage back-end. Maintenant, ne parlons que du PHP, il existe actuellement deux frameworks qui se détachent : Symfony et Laravel, et sont orientés objet de la façon la plus classique. Les deux sont très demandés , un petit plus pour Symfony en France, mais à l’échelle mondiale, c’est Laravel.
Mon opinion personnelle est que Symfony est un peu plus délicat à prendre en main pour un débutant que Laravel, mais quand on commence à le connaître, mais aussi quand on commence à comprendre les principes de la programmation orientée objet, (injection de dépendance, quelques pattern ORM, les closures) on arrive à se débrouiller pas mal avec, sans pour autant être un expert.
Je trouve que Laravel est plus terre à terre d’entrée de jeu, en particulier l’ORM Eloquent qui est beaucoup plus facile à appréhender que Doctrine.
Quelle entreprise viser?
Vous avez différents types d’entreprises qui recrutent des développeurs informatiques: agences web, SSII, département SI(système d’information) de grandes structures, éditeurs de logiciels, ceci c’est pour le salariat, à quoi il faut ajouter le status de freelance.
L’erreur que je rencontre le plus souvent chez les étudiant qui viennent d’obtenir leur certification (je parle de ceux qui sont en reconversion et non des étudiant en informatique), c’est qu’ils veulent se mettre en freelance pour engranger le plus rapidement de l’argent.
Parce qu’ils ont réussi un parcours, ne veut pas dire qu’ils sont prêts à l’emploi ! il y a une différence entre le niveau d’un étudiant diplômé et quelqu’un d’opérationnel. Là où on rencontre le plus souvent ce cas de figure, ce sont les étudiants en WordPress, qui se mettent en freelance pour proposer un site à 500 ou 1500 euros, ça peut sembler intéressant pour eux (au passage ils tirent les prix du marché vers le bas), mais savent-ils qu’il vont passer deux voire 3 semaines ou un mois pour le faire? Et si je vous disait que pour un site à 1500 euros, en agence, un développeur wordpress peut le torcher en un ou deux jours? vous la voyez la différence?
Le paradoxe de la pénurie de développeurs
Dans le média on nous rabâche sans cesse que l’on est en grande pénurie de développeurs, mais pourtant ce qu’on entend aussi c’est que les étudiants ou les développeur juniors ont du mal à trouver un poste (dans certains cas). D’où vient ce paradoxe? il semble que la réponse soit que le marché manque de développeurs certes, mais de développeurs expérimentés !
Aussi en réussissant un parcours certifiant ou diplômant pour les gens en reconversion, vous n’êtes qu’à mi-parcours, il reste encore du chemin à faire. Ce n’est pas de votre faute si à l’issue de votre parcours vous avez du mal à trouver un job, malheureusement les entreprises sont dans une logique économique, où il faut rentrer de l’argent, et ils préfèrent parier sur des profils plus expérimentés, ne pas prendre le risque. Mettez vous à l place d’u patron de bopite et vous comprendrez.
Ce qu’il manque au jeune développeur
Ce qu’il manque c’est des entreprises qui acceptent de jouer le jeu de montée en compétence du junior à terme, qu’ils capitalisent sur le junior, le forme afin qu’il devienne performant. Et du côté du junior, il doit jouer le jeu en acceptant un salaire qui ne soit pas mirobolant lors de la première année. Vous êtes payé pour monter en compétence que demander de plus?
Ce type d’entreprise existent rassurez-vous, il faut les trouver. En fait ce n’est pas une entreprise en particuliers, cela dépend de si vous avez un mentor qui veut bien vous faire monter en compétence, si le service informatique où vous êtes pratique cette montée en compétence.
Chez Formapedia nous prenons en compte ce paradoxe et nous accompagnons les juniors dans leurs premiers pas en entreprise.
Gérer le consentement
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
L’accès ou le stockage technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
L’accès ou le stockage technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’internaute.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
L’accès ou le stockage technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.