views:

314

answers:

10

You know, developers learn during all their life and I think that to be a better developer you should be able to learn faster than average people.

So I'd like to know if you have learning tips to learn faster.

For example to learn a book in one week (~1000 pages) to pass an exam certification, I worked with Visio aside and every new class / concept / property I learnt I wrote it inside an ellipse and drew lines between other coupled class / concept / property.

This way when I forgot something I just checked my Visio diagram and everything came back.

My visual memory worked pretty fine. I was able to remember how two concepts or classes were related.

This tip is a kind of mind map, but without loosing time drawing a beautiful map (to keep my focus on what I learnt).

And you how do you learn faster?

+2  A: 

Implementing what I read is the only way I seem to solidify concepts and ideas. I can read and read until the cows come home, but nothing ever seems to stick until I put it into practice.

Hates_
A: 

Find the questions on StackOverflow that pertain to the topic you are learning and try to answer them.

If you can't answer them, find out the answer from other resources and come back with the answer!

Paul Robinson
We, developers are very lucky, I think this job is the most documented so it's very easy to find information and share it to learn faster than other people !
Nicolas Dorier
A: 

You may be interested in looking into the (free) FreeMind software. It's great for taking notes and organizing them in an easy to learn + remember way.

Gilad Naor
I will try but it seems that you can only build tree, and my map was not a tree but a complex graph. I will try, I hope that the presentation will not disturb me from my materials.
Nicolas Dorier
A: 

When I was taking classes I would write out important concepts -- like your map, but in words not pictures -- on a single page "cheat sheet". Sometimes the profs would let us use theses, sometimes not. My experience was that the act of writing things down in addition to reading and using the concepts helped to cement the ideas in my mind. I don't know if this was any faster, but it was better. Even when we were allowed to use them, I rarely had to check it as I found that I understood the material better.

I recommend this to my kids for their classes as a study aid, even if you know you won't be able to use it.

tvanfosson
I think that drawing a map is very useful, I remember more easily pictures than words when I search a specific information inside my cheat sheet I find it quicker in a map than in a text.
Nicolas Dorier
The trick, for me, is that writing the information down solidifies it in my mind. I don't typically use the cheat sheet as a reference other than to read through it instead of the actual text for review.
tvanfosson
A: 

I think reading a book is great, but just to learn concepts rather than practical solutions although the great amount of practical books. I think when you use technologies as solutions to solve real life problems, this could be your best source to learn from.

Bashar Kokash
+1  A: 

Whatever I read, get some hands-on experience on that and this way I get to learn many other things which was not there in the book.

Kapilg
+8  A: 
  1. Do it. The single most useful experience is putting to practice what you've learned.
  2. Look at what other people have done. The generally do it better than you would on the first try.
  3. Take notes. I take a small hard-cover note book with me everywhere I go to scribble down ideas, concepts or anything remotely important.
  4. Sometimes just reading a book is enough.
  5. Discuss what you're learning with other people. I generally take quite extreme standpoints in that case, just so people will go to extreme lengths to explain why you're wrong. This gives you quite a large amount of fairly educated and well informed decisions you can make concerning the topic of choice.
  6. Fail. Failing is a very good reason to self-reflect and look objectively at what you've done.
  7. Collaborative brainstorming. Spawning random ideas in someone's general direction can give you quite insightful and unexpected responses.
  8. Recognize patterns. This takes some experience, but seeing the connections between seemingly unrelated subjects can be really valuable.
  9. Relax and sleep often. I completely wear out after pulling an all-nighter because I can't process anymore information after being awake for extended periods of time.
  10. Go straight to the source. Tutorials, forum posts, blogs and arbitrary articles generally numb down subjects to make them easier to understand however the source or research papers most of the time are way more informative and provide a more detailed description of the original problem domain.
  11. Stay up to date. Read blogs, forums and join communities to learn about what is hot. Getting this kind of information early gives you an advantage because you only need to brush up when you actually need the techniques later on.
Jasper Bekkers
A: 

I usually find mindmaps helpful. You can try to create mindmaps instead of those ellipses in visio while learning. Also there are many free available tools for mindmapping. Just try to google it :).

systemsfault
A: 

I agree developers should learn quite quickly in their life, but, once you get a concept of a programming language, learning others will not be difficult.

Now, let's suppose a developer is a master in C. Then C++, C#, Java, PHP and many more languages are quite easy to learn. I don't say you'll become a master in it. But you would've an area of expertise and master it quickly over the internet.

Learning new languages once you get a grip of what languages is quite easy.

CodingTales
+1  A: 

Do rotating pair programming. If you're lucky enough to find someone with different experiences than yours, chances are you can suck up a ton of knowledge. The periods when I change projects and get to learn new technologies with new people always turn out to be the most intense periods of acquiring new knowledge for me.

krosenvold
I agree. You don't necessarily need to pair with better coders to learn lots; just ones who know a different subset to you.
timday
I tried pair programming and was amazed that I could even learn from someone who wasn't that much of programmer.
Helper Method