Bonjour tous le monde,

Voilà je suis actuellement entrain de me monter mon propre WIKI afin de garder par exemple, des notes des morceaux de code que j'ai déjà crée où tous simplement de se faire son gros pense bète pour des choses qu'on a pas l'habitutde de voir.

Partie dans cette optique, j'aimerai me crée une note générique qui m'aiderais à appréhender un nouveau language. Je m'explique :

On a deux type de languages, ceux qui sont interprété et ceux qui sont compilé. Dans chacun de ces types de languages par exemple pour le PHP et le JavaScript qui sont des language interprété. Ils ont des similitudes, donc pour apprendre un autre language quand on en connais un autre on a l'habitude de comparer celui-ci avec celui qui est déjà acquis(où du moins avec celui qu'on se sent le plus à l'aise).

C'est pour cela que ma note générique regrouperais toutes les similitudes qu'on les languages entre eux afin de partire sur des points de comparaison dans mon apprentissage. Si on reste sur les languages interprété, je dirais qu'ils ont ces points communs :

  • Variable (Déclarations, portées, tableau, etc ....)
  • Boucle (if, else; while; for; etc ....)
  • Fonctions
  • Objets
    Etc .....

Je fait appelle à vous afin de m'aider dans la créations de cette note, en vous demandant de me dire pour les plus experts d'entre vous les similitude qu'on les différentes languages.

Mais aussi de me dire ce que vous pensez de cette façon de faire ?

Et vous avec comment procéder vous pour apprendre de nouveaux language ou autre ?

Merci pour vos retour.

Bonne journée à tous.

10 réponses


Salut,

Je trouve ta démarche intéressante, mais je pense qu'il y a pas mal de problèmes avec.

Je n’ai pas de solution à te proposer, car c'est très dépendant de ta façon d'apprendre, mais avec un peu expérience je me dis que ta démarche ne tiendra pas longtemps.

Le wiki pour garder tes snippets de côté est pas mal, mais internet regroupe déjà des snippet de 1000 de personnes qui évoluent constamment et sont améliorées continuellement, ce qui n'est pas ton cas. Car maintenir du code à jour et optimiser ça demande beaucoup de temps. Il vaut mieux faire de la veille et comprendre les évolutions que de constamment copier-coller ce qu'on fait et parfois les mêmes erreurs. Au bout de 1 an normalement tu regardes tes vieux projets (que tu as fait il y a 1 ans) et te dire que tu étais une merde. C'est notre malheur et aussi notre bonheur en temps que dev.

Ensuite faire une note générique par langage est compliqué pour plusieurs raisons. Déjà connaitre les variables, boucles, etc. ça prend 10 minutes, c'est simple, mais comprendre chacune des particularités des langages, c'est des heures de boulot et plusieurs projets pour bien comprendre l'essence du langage.

Personnellement je maitrise peux de langage (Js, php) je passe tout se qui est structurant (Markdown, html, css, etc.) Mais j'ai déjà joué avec pas mal de langage (C, C++, JAVA, ruby, etc). J'ai une compréhension de ces technos, si demain je dois les utiliser je ferais un maximum de projet (fictif) pour comprendre, résoudre des problèmes de base qui sont liés au techno, découvrir les framework liés a ces technos.

Le seul conseil que je donne c'est utiliser google ou autre, mais toujours comprendre ce que tu copies-colles et toujours refactoriser.

Après je pense qu'on a chacun des façons bien différentes d'apprendre, mais il ne faut jamais copier-coller systématiquement du code que tu as déjà utilisé.

Salut,

Dans un premier temps, merci pour ta réponse.

Il est vrai que tu souleve des points intéréssant et tu me rempli de doute.

Pour faire simple, je suis actuellement dans une démarche d'optimisation de mon temps. J'entends parle là, que je veux être plus efficient dans ce que je fait afin d'éviter les longues heures devant l'ordianteur sans pour autant avoir avancé considérablement. En gros éviter la "procrastination".

Je suis donc dans la recherche des moments les plus propices pour faire de la veille technologique. Et cela en passant par toutes les étapes de mise en forme et rééquilibrage alimentaire. Car tous ceci à son impact qui soit infime ou pas.

Donc voilà pourquoi, j'ai ouvert cette discution. Je cherche les meilleurs méthodes afin de pallier à ce manque de rigueur dont je fait état pour le moment.

Pour revenir au snippet, je suis partiellement d'accord avec toi. Car dans certains cas nous développons des choses spécifique pour certain projet (Heureusement ;) ), donc c'est pour cela que je me crée des petites articles qui documente mon code afin de pouvoir le réutiliser sur un autre projet si besoin. Et dans ces cas là quand l'on revient, généralement nous somme plus d'accord avec ce qu'on à fait et on optimise le code. Ce qui à pour concéquence de le maintenir un minimum. Tous est relatif bien entendu.

Donc si des personnes à des idées je suis preneur car je pense, non je suis persuadé qu'il faut déjà organiser tous cela afin de venir de mellieure machine afin d'apprehender le maximum de savoir dans de mellieures délai.

Au plaisir de lire vos réponse, car je pense que ceci est un sujet trés intéressant qui n'est pas forcement traité. Si je ne me trompe pas .

De quel type de code tu parles ?

Je ne sais pas, si c'est répétitif, théoriquement, tu devrais l'importer dans une class via composer, et t'as plus à te soucier de ce bout de code. (ou npm/bower pour JS)

Si tu parles de "snippet", genre : "c'est quoi la syntaxe de for(){} déjà ?", autant les entrées directement dans ton logiciel de dev pour l'utiliser en autocomplétion par exemple.

J'ai très peu de mémoire, et il y a énormement de connaissance à avoir. Dans le mesure du possible, je met de côté le "par coeur" avec tous les outils mis à disposition, et je me concentre sur la compréhension de ce que j'utilise.

Maintenant, comparé 2 langagues comme tu souhaites le faire, je ne vois pas comment c'est possible. Tu parles exclusivement de syntaxe (boucle / if etc.) lorsque tu es sur un projet, ce genre de chose viendra tout seul à force d'appliquer. C'est davantage les concepts qui sont à connaitre. Et là, difficile, voir impossible de comparer JS et PHP par exemple. Sauf à développer en procédural, ils ne peuvent pas se comparer.

Je parle pas d'un language en particulier.

Pour les snippet, je parle d'algorythme dans ce cas précis. L'idée de base d'un article était plutôt un condencer de note sur un language pour avoir noté les réflexion et analyse que j'ai put avoir autour de celui-ci.

Pour la mémoire je pense que nous somme dans le même cas ;) , c'est pour cela que je veut tous noter. Ce qui n'est peut être pas une bonne idée je te l'accorde.

En faite je voulais pas forcement comparer, je me suis mal exprimé. Je voulais plus avoir un note général sur les axes d"un language. Et comme tous les languages ce ressemble dans la structure. Et dans la logique général aussi, du moins je pense avec mon faible niveau je pourrais pas affirmer ces choses là.

En gros avoir comme une questionnaire de base et me dire bon comment je vais ceci dans ce language. Et hop je fait ma petit recherche et je réponds. Comme sa j'ai ma trame d'apprentissage. Je sais pas si je suis claire. C'est le matin m'en veut pas trop ;) .

Oui oui je comprends ce que tu veux dire, mais franchement, ça me parait complexe. D'autant que les langages évoluent quand même assez vite.

Je prends le javascript en exemple, les consignes il y a 1 ans, 3 ans et 6 ans n'ont rien à voir, sans compter ES6/2015 (via babel + webpack), les normes ont de nouveau changé. Presque comme si il s'agissait d'un nouveau langage. (quand je dis "normes", je devrais dire "bonnes pratiques" disons)

PHP c'est pareil (moins radical quand même), et j'imagine que pour les autres langages, ça évolue beaucoup aussi.

C'est faisable, mais de là à dire que tu vas gagner du temps, j'ai plus de doute. Fait le projet en open source via github, à défaut de te prendre du temps, peut-etre que d'autres dans ton cas t'aideront naturelement.

Bref, je comprends d'autant plus que j'ai eu la même idée il y a quelques années de ça, je tenais un blog privé dans le même objectif.
Et au final, j'ai vite laissé tombé car ça ressemblait plus à un travail supplémentaire.

Maintenant, comme je le disais au dessus, ma solution est de faire des snippets par langage utilisé, des classes utilitaires que j'importe via le packager du langage, ces derniers pouvant contenir des petits penses bete sous forme de README.md quand je sais qu'un truc est un peu tordu (du moins au moment de le dev/d'apprendre). D'autant plus qu'en général, je me vais me poser la question "quand j'ai déjà utilisé un truc semblable ?", je vais retourner sur le code en question, et je sais que si j'ai un README.md, c'est que j'ai un truc à me dire :). Et quand je reviens sur un langage que j'ai délaissé depuis un moment, je me reforme sur les nouvelles bonnes pratiques. Autant lire un tuto bien ficelé et mis à jour, que de lire des bouts de texte que j'aurai pu écrire à l'époque qui ne sont surement plus à jour. Ah, et j'ai un fichier .profile qui commence à être volumineux pour tout ce qui est commande (qui me sert plus de mémo que de raccourcie pour les commandes).

Ok donc je vois que t passé par là déjà et ton retour mais fort intéressant.

J'aimerais que tu m'en disent plus sur ta façon de proceder avec les "snippet". Je connais ce therme mais de là à intégrer dans le package de langue je vois pas comment celà fonctionne.

Ainsi que ton fichier profil, qu'est ce que ce fichier ? Où est il implémenté ?

Un autre quetion peut avec les fichiers ".md", je viens de voir que c'est du markdown. Therme que j'ai recherché, mais je vois pas à quoi commen tu écrit tes README.md. Si tu avais un exemple simple et court pour que je puisse comprend et que tu passe pas ton temps à me répondre.

Je suis un newbie dans le dev, cela fait 3 ou 4 ans que je développe donc beaucoup de chose à apprendre comme tu le vois.

Merci encore pour tes retours qui me sont trés précieux.

Bonne journée.

Les snippets ce n'est ni plus ni moins que des raccourcies (appelé aussi "live template"). Je pense que 100% des logiciels de dev proposent cette option. Après de façon plus ou moins avancé selon les IDE. Parfois c'est pour aller plus vite, parfois comme aide mémoire. Exemple, je tape "fo+touche tab" je vais avoir avoir un "foreach" avec des trous que je peux remplir en faisant "tab". (et si je tape "f", il va me le proposer dans l'autocomplétion). C'est un exemple simple, mais tu peux avoir un raccourci du genre "classModel" qui va te créer les bases d'une class modele avec tout de pré écrit, avec des commentaires pour t'aider à te rappeler etc.

le fichier .profile, c'est un peu comme les fichiers .bash etc. ça permet d'associer un mot à une commande. Au lieu de se taper une commande complexe, je vais créer le raccourci en 1 mot compréhensible, et ceux-ci pour toutes les commandes que je fais régulièrement.

Pour le markdown, c'est marrant, parce qu'au final, c'est ce que tu utilises pour ce forum :) d'ailleurs il est marqué dans le formulaire ;) C'est simplement un moyen de mettre en gras, faire des titres, ajouté du code etc. de façon très facile. (donc sans taper de balise et truc du genre). Marrant que tu n'aies pas trouvé d'ailleurs, c'est TRES populaire. (cherche syntaxe markdown).

Ok, donc en gros ton IDE te sert de wiki et de bloc note à la fois. Très intéressant.
Donc ton IDE te propsoe aussi de pouvoir récupérer ceci ? Imaginons je change de PC, tous ceci est récupérable ?

Du tous je pense fouillier dans cette direction. Et voir comment je vais implementer tous cela.

Oui, comme tous les IDE, ils ont un espace de stockage des config utilisateurs (pas toujours évidemment à trouver).
D'ailleurs beaucoup d'IDE ont un type de fichier "commun", notamment en ce qui concerne la coloration syntaxique, les fichiers vont pouvoir fonctionner sur beaucoup d'IDE.

Puisqu'on est sur grafikart, je prends l'exemple du github de l'auteur :
https://github.com/Grafikart/dotfiles/blob/master/preferences/Intellij.jar
Tu as ici les configs complètes de son IDE (en l'occurence, il a un seul "live template" de personnel, qui lui permet de taper "cc" et d'avoir une ligne de commentaire du genre / $COMMENT$ ========================= / sur un fichier CSS), mais tu as tout le reste de sa config habituelle, qui lui permet de ne pas avoir à reconfigurer tout son IDE à chaque installe.

Bonjour,

Désoler du retard de ma réponse.

Merci pour ta réponse Kenor je vais approfondire de ce coté et faire un mixe de tous cela. Je manquerais pas de revenir vers vous pour vous donner mes nouvelles réfléxion.

Bonne journée