Programmation et ligne de commande avec anki

Voici comment j'utilise anki pour me souvenir de notions de programmations et de ligne de commande.

Concernant la programmation, j'ai entendu le conseil suivant. Quand tu as besoin de regarder quelque chose sur internet, tu rajoutes immédiatement ce que tu as trouvé dans anki, comme ça tu n'auras jamais besoin de chercher quelque chose deux fois. Ça serait une super bonne idée si ajouter quelque chose à anki était effectivement super rapide. Personnellement, ça me demande probablement une minute, ré ouvrir anki, trouver le bon deck, rentrer toutes les informations. Ça me couperait trop dans ce que je développe, et surtout, trop souvent. Donc, comme pour tout le reste, je rentre beaucoup d'information à la fois.

Quand des pages contiennent toutes les informations de manière à peu près ordonné, comme la référence du CSS, c'est très pratique. Je peux rapidement obtenir un fichier CSV à partir de ça, puis importer toutes ces informations dans anki. Malheureusement, pour les pages man, même si la mise en forme et souvent la même, il semble qu'il n'existe aucune base de donnée où je peux trouver, pour chaque ligne de commande, la liste de ses options/abréviation. Et pour l'instant, je ne connais pas assez le format de rédaction des pages man pour tenter de créer un extracteur moi-même.

Voici les informations que contiennent mes cartes propre aux langages de programmations. Les autres champs étant donné ici.

Les champs

Tout d'abord, j'ai «instruction», qui est le texte qui doit être écrit dans le code. Puis j'ai «abbreviation», pour les cas où il existe deux manières distinctes d'écrire le même code, dont l'une est un raccourci de l'autre. C'est souvent le cas en ligne de commande, où il existe une version longue et une version courte des arguments.

Ensuite, j'ai les champs «effet» et «valeur». La plupart du temps, je ne remplis qu'un des deux champs. Ainsi, «print(n)», à pour effet «affiche la valeur de n.», et n'a pas de valeur. Réciproquement, «i+1» n'a pas d'effet[1]. Par contre, i++ a un effet et une valeur, donc j'indique les deux. De même, en C, c'est utile de se souvenir que «i=n» a une valeur, égale à la valeur de «n».

J'ai aussi un champ «type», dont le sens est assez évident, et souvent redondant avec «value». Mais, par exemple, pour les jeux de pointeurs en C, mettre le type explicite peut être assez utile.

J'ai un champ «défaut», qui me sert à indiquer la valeur par défaut des variables. Ainsi j'ai l'information que le baud rate par défaut d'arduino est 9600.

J'ai un champ «nom», particulièrement utile en base de donnée, ou chaque operation à un nom, et une notation, qui n'est pas nécessairement exactement identique à l'instruction utilisé.

J'ai deux champs «temps» et «espace». C'est surtout utile pour les instructions correspondant à des structures de données, quand le langage de programmation indique si un tri est en place ou pas, si un accès est garanti en temps constant/logarithmique, c'est utile de l'indiquer.

J'avais prévu un champ invariant, aussi pour les structures de données. Mais en pratique je constate que je ne l'ai jamais utilisé. J'imaginais, pour une fonction de tri, par exemple, indiquer si le tri était stable. J'ai aussi «potentiel ou crédit». Mais ça semble être des questions pertinentes pour les notes «structures de données» et pas pour les langages de programmations.

Note

[1] à part potentiellement celui d'évaluer i

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://www.milchior.fr/blog/index.php?trackback/715

Fil des commentaires de ce billet