Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
How do you manage your knowledge base?
What do you use for personal note taking to keep track of everything you learn?

Are you always Googling or searching StackOverflow to answer the same questions? Or searching for and copying and pasting existing code? I feel like I have a poor memory, especially remembering things like syntax.

Are there any knowledge management systems that would work well for a programming language or operating system? It would be great if there were a way to save everything I learn in an easy to search system. Does such a thing exist?

Maybe you would be able to search by question (How to sort an array?, How to set static IP?), or by tag (sort, array, enumeration, iterator, IP).

I know it would be easy to develop my own system, but I thought it would be great to learn what works for other people.

share|improve this question
Thanks for all the useful answers. – B Seven Nov 21 '11 at 5:06
Update: I have been using Evernote for a few months and love it. They have an app for every platform, plus a browser version. Works great. Definitely recommend it to manage information about everything. – B Seven Nov 21 '11 at 5:08

marked as duplicate by JeffO, ChrisF Oct 10 '11 at 21:41

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

6 Answers

up vote 3 down vote accepted

I'm a big fan of Evernote, when I've found a resource that's helped achieve something I'll add the URL to a note in there about the specific application/language/feature with a description of what it helped with and then save it, then when I need it a year later it's indexed and I can either quickly search for it or if I can't remember the exact item look for what it was related to and grab it that way.

share|improve this answer
That's a useful way to keep track of things and to find "that one blog post". – StuperUser Oct 10 '11 at 15:51
I use Onenote for the same thing. Onenote automatically inserts the URL of the origin when you copy paste, that comes in handy too – Amit Wadhwa Oct 10 '11 at 17:59
Onenote is pretty top but I've always like the capabilities of Evernotes writing to text engine, as it recognises and searches my terrible whiteboard writing. – Nicholas Smith Oct 10 '11 at 22:25

Similar to Nicholas's answer, I use MS onenote to maintain notes of stuff I found. I also try to maintain my bookmarks in various category. Onenote with Skydrive integration means I can access the notes any where, including from the web-browser of my ipad or the app on my phone. The search is fast and Onenote automatically inserts the URL of the origin when you copy paste, that comes in handy a lot of time.

share|improve this answer

I use TiddlyWiki for random brain-backup. It's simple, self-contained and easily ported around as you only need a web browser to read it.

share|improve this answer
Yes, that's sort of what I am thinking of: brain-backup. – B Seven Oct 10 '11 at 18:27

My "easy search system" is called Google :)

I find I don't need to store the information anywhere if I can remember the keywords on how to find it in Google, and usually remembering keywords is easy. To me, it is faster to just type something in Google (and since I'm using Chrome I can use the URL as a Google search box), than it would be to try and track, and later search through, all the good info I come across on the web.

Sometimes I'll print a cheat sheet if it's a short list of code syntax which I use a lot, and sometimes I'll use bookmarks if I find something non-generic which I think I'll want to be able to find again, but for most of the generic stuff I don't bother storing. Besides, stored data gets outdated eventually, while Google is usually current.

As a side note, something I do to help me remember the syntax for commonly used code is to force myself to write the code instead of copy/pasting it. I started doing it for things I had to copy/paste a lot (such as method signatures, or delegates), and eventually I'd start remembering the syntax.

share|improve this answer
+1 for Chrome. I have also been writing down syntax to get better at remembering it... – B Seven Oct 10 '11 at 17:05

How is searching a knowledge base different from searching google, StackExchange or MSDN? If there is no difference (which I doubt there is) you're introducing the overhead of managing something yourself and wasting your time.

You'll learn syntax and APIs naturally with heavy reuse. If there's something that you're referring to a lot, come up with a mnemonic to learn it and it should stick.

If you're having trouble remembering something you are using a lot, make a concerted effort to learn it. I recently committed the SOLID principles to memory by reading them, covering them up and trying to recite as much as possible. I constantly reinforced this in my brain by reciting them in my head during my commute. That worked for me.

share|improve this answer
3  
There's a huge difference. My personal knowledge base has the exact answer I am looking for. Google and StackExchange have many answers, most of which are not as good as the one I have already found. The point is to make finding the right answer quick and easy (10 seconds) instead of searching for 5-10 minutes on different sites. – B Seven Oct 10 '11 at 16:17
@B Seven, I see your point. @Nicholas Smith's evernote sounds about right for you, or MS OneNote. As long as you bear in mind that new ways to solve problems or fixes for noted workarounds will appear so keep your knowledge base up-to-date if it contains tech specifics. – StuperUser Oct 10 '11 at 16:32

It depends on how often I need an information.

  • Searching the internet is one option.
  • For things I need more often there are books and references coming with the programming system (e.g. MSDN for M$ systems or JavaDoc).
  • For things I need a lot a Cheat Sheet is convenient. (A good thing would be to make a personal one.)
  • The syntax of the most used language(s) I have absorbed in my brain (at least that part I use every day).
share|improve this answer
1  
+1 Cheat sheet are a good idea. – Sardathrion Oct 10 '11 at 15:06
2  
I've often found that creating a cheatsheet yourself helps you learn its contents. – StuperUser Oct 10 '11 at 15:11
Yes, I forgot to mention the cheat sheet. Works great for syntax and names of methods and commands, but I was thinking about something that works for higher level questions. – B Seven Oct 10 '11 at 16:19

Not the answer you're looking for? Browse other questions tagged or ask your own question.