I find that one of the most frustrating aspects to software development is finding a solution to a problem, forgetting it, then being faced with the same issue in the future only to forgot how you previously solved it. Or to write a useful bit of code, then on a later project not be able to find this code.
My general question is this: How do you keep track of all the new things you learn each day while programming? Does anyone have a systematic way to capture knowledge and easily and efficiently apply it in the future?
UPDATE: Thanks the for the responses, here's what you came up with:
Social
Code Repositories
Desktop
DRY (Don't Repeat Yourself) is a principle of software development. The focus of DRY is to avoid repetition of information. Why? When you write code that performs the same tasks over and over again, any modification of one task requires the same change to be made to every single instance of that task!
"Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy.
DRY BenefitsLess code is good: It saves time and effort, is easy to maintain, and also reduces the chances of bugs. One good example of the DRY principle is the helper class in enterprise libraries, in which every piece of code is unique in the libraries and helper classes.
DRY, which stands for 'don't repeat yourself,' is a principle of software development that aims at reducing the repetition of patterns and code duplication in favor of abstractions and avoiding redundancy.
Stackoverflow is a good place to start :-)
Keeping a blog is another thing (here's mine).
Even Twitter can be useful for this.
There are also a number of "desktop wiki" applications that I find very useful: VoodooPad on the Mac and Wikidpad for Windows.
Finally, if you need to store snippets (or more) of code (that you have the rights to, of course), then there are plenty of source code repositories available now (GitHub, LaunchPad, Google Code or Unfuddle if you want complete control).
The brain has limits. Accept it.
The solution is to have tests for your code so you can merge repeated code without breaking a sweat as soon as you notice it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With