views:

204

answers:

8

I want to ask about the different techniques they used to remember various programming techniques. We go through various books and various online tips and tutorials we also get so many ideas from the code written by somebody else.

Now all these inputs are memorized or stored in some format so that it can be found easily when referred. Absence of such storage may result in rewriting the code or reinventing the wheel.

I use to create one Working folder where I keep all my trial code but sometime after few days / months since the code is not tagged or named properly its difficult to find it out again.

A: 

Well, for me, when I am trying to learn, I focus on learning the approach to solve the program, rather than a technique. That is important to me. Also, with regular day to day programming some techniques become ingrained.

The other thing I do is to maintain a notebook with my notes in it, code snippets, comments, shortcuts I have learnt over the years. This helps too.

Recently I have taken to maintaining my notes in Evernote, this makes is easy to search for and tag.

omermuhammed
A: 

For web, I use Delicious + Firefox plugin to store what I already read.

When looking for a solution to something I can't solve, I got used to ask / search here.

And for my own solutions, I try to create reusable components and remember in which project I solved what and eventually get back to it later when I need it.

Ondra Žižka
A: 

Whenever you study one programming technique like java you always map the corresponding things with C++ and perl.Java and C++ remain same in more concepts.And better you store your working folder in your mails so that whenever you need you can download and have it.

giri
A: 

You could try a program like Surfulater. I don't know how well it works with code samples, but I do know that the developer was (is still?) active on the Joel on Software forums, so I'm sure he could be contacted with any specific questions.

Joe Internet
+2  A: 

For Perl, I have a module I call staging.pm, and use staging; is a pragma in my code which allows me to use experimental, not fully developed code in my development. This developmental code will be placed in a branch called "staging" off of the user library directory. The main thing that the module does is put my staging directory at the head of @INC. Once my code is mature--if it ever is--it will be moved into my user lib directory.

As for scripts, they can be run from wherever they are and I use a directory named test off of the bin directory.

So that's kind of my approach. I don't know how useful that is for you.

Axeman
A: 

If you use Windows, you can use Google Desktop to index part of your harddrive, including your program snippets.

If you can recall just some of it, Google will find it.

(Spotlight does the same automatically on a Mac)

Thorbjørn Ravn Andersen
I use Google Desktop already, its good to find the documents and mails. That does not focus much on the developer need. A google code search kind of search for my local code might surely be helpful.
GJ
If you cannot use Google Desktop to locate something you've learned, did you really learn it?
Thorbjørn Ravn Andersen
Anyway - have a look at http://exampledepot.com/ which has examples based on need and package.
Thorbjørn Ravn Andersen
A: 

It's like learning any other language or learning any other technique. When you read a book and you find it interesting you start associating what you are reading with real life situations and problems that you might have had before which the new learnt stuff will solve for you.

You might, after a couple of days or so forget what you have learned, untill you stumble upon the problem which you related to when reading the book or looking at the lecture. This specific type of memory is called something like association memory technique.

There are a lot of other different techniques to remember things by but a lot of them come down to relationships with other parts of what you already know.

Another example is Math which is something you force your brain to understand but once you quit using it on a daily basis you will slowly degenerate the math-genious-cells.

Programming for me at least is just another way to express myself and when i learn new features it's just a new way to express things that might not have been easy to do before.

Edit

I might have missunderstood the question.. did i?

Filip Ekberg
No its useful, my question is about collecting the useful information and storing it for future either by memorizing or by storing in some way so that it can be used in the future.
GJ
A: 

On Mac OS X, TextMate provides a near perfect solution to this problem. TextMate is a programming editor that offers support for hundreds of programming languages and is customizable via the bundle editor. Through the bundle editor, you can add any snippet of code that you may want to memorize, and appropriately categorize it under its respective language. You can also assign hot-keys or character sequences to invoke a snippet and copy it to your current editing context.

I believe that Notepad++ is a similar tool for Windows, but I am unsure if it is as customizable as TextMate.

ali01