HN user

trippplezz

23 karma
Posts5
Comments2
View on HN

I would recommend "C: A Modern Approach", 2nd ed by King (http://www.amazon.com/Programming-Modern-Approach-2nd-Editio...)

It's a hefty tome but that's not necessarily bad if you want to (re-)learn the language and the tricks in a proper way. Easily in my personal Top 5 books for C (The others are in no particular order: "Pointers on C", "Expert C Programming: Deep C Secrets", "The Standard C Library", "C Interfaces and Implementations".)

Good article. Your practices are so similar to my recent approach to learning and organizing knowledge that it's scary ;) The only difference are the actual tools which I think is non-essential.

So, when I'm faced with some bit of knowledge/howto/troubleshooting that I encounter for the first time (at least from memory), I do the following:

* Launch Zim desktop wiki (http://zim-wiki.org/) opened with my Dropbox synchronized notes

* Add a new page with some descriptive but not overly long title (using the same principles as for the title line for the version control commit messages)

  * For example: "Python command line arguments"
* Write the tags for this particular bit of knowledge. This may sound repetitive but the number of tags needed (at least in my frame of mind) are usually 2 to 5.
  * @howto @python
* The actual content is written by myself, no copy and paste allowed. In this way I'm the one re-wording/restating the knowledge, so that the search queries afterwards will result in almost 'perfect' matches:

<CONTENT>

The command line arguments are accessed using the list sys.argv:

import sys

# Prints the name of the script

print sys.argv[0]

# Prints all remaining command line arguments

print sys.argv[1:]

</CONTENT>

When searching:

* Open the search dialog (CTRL+F), and enter my search string, for instance: "command line arguments"

Recently I've started using Anki for adding similar bite-sized facts about Perl, bash, grep, sed, awk, etc. because in the past year or so I was gradually 'forced' to become programming polyglot (I'm not there yet, though). I was frustrated for the very same reasons described by the OP's article: forgetting the little details when occasionally have to come up with a little script or modify an existing one in a non-primary programming language.

Generally, I use Zim wiki for facts/articles that are not that small that will be better as a flash card question/answer.