tags:

views:

77

answers:

5

I was just wondering,for above-beginner level programmers (6 months- 1 year experience),who are still learning new tricks and techniques.

Which would be more suitable for them, re-reading some of the "basics" books to cover the bases they are missing ,and really fully understand some of the concepts/code they've been writing till now.

Or should they start reading more advanced books that explain new features, or smarter techniques to execute tasks.

this is mainly aimed for C#/.Net Related books , since every new framework introduces alot of new enhancements/libraries , but a general answer would be helpful since i use other technologies and programming languages too.

Edit: when i say reading , it also includes practicing what is being read too.

+1  A: 

I am exactly in the range that you mentioned (6 months into software development).

  • I prefer getting the basics right, as you can't cope up with the advanced stuff without knowing the basics anyway.

  • Put into practice what you have learnt, that means Code, that way we can learn it better.

  • Aim to learn the low investment high return stuff, which means general things that can be used in many scenarios/frameworks. Like following good programming practices (irrespective of platform/framework helps alot, Code Complete 2 is a good start)

Thanks

Mahesh Velaga
+1 for the 3rd point and recommending code complete.
Madi D.
+1  A: 
  1. Skim the "basic" books you have lying around for tidbits you missed the first time around. Get your money's worth from them! Squeeze them dry!

  2. Buy and read more advanced books, preferably ones dealing with specialties and tricks you are likely to find useful in your next professional steps. Study them. PRACTICE!

  3. Gain some more experience by setting yourself up some hobby projects and implementing them. Use your books for reference. You will not really have learned until you have put this stuff to practical use.

Carl Smotricz
+1 , thanks for the good answer (even though i kinda had the same ideas in mind, it is always nice to hear them from some1 else) , i edited the question to show that by reading i also indicated practicing what is read.. :)
Madi D.
+1  A: 

Simply BOTH. You still didn't pass the junior definition. And so you can't say I fully understand the basics. I'm not underestimating, but just saying you should be very sure you have the basics before going deeper.

But also, don't spend all your time re-reading. And focus more and more (with time) on new and advanced topics.

Note: i would recommend applying the techniques along side with reading. This might make the book take twice the time, but practicing always lasts longer.

medopal
+1 focus more and more (with time) on new and advanced topics. (for recommending gradual movement towards advanced topics)..
Madi D.
+1  A: 

Both, absolutely. Advanced topics depend on a solid understanding of the core fundamentals, so you need to go over those until you know them backwards and forwards.

Also note that the definition of basic vs. advanced is somewhat subjective, and many advanced topics are simply a combination of basic ones used all at the same time to achieve something more spectacular.

To pick a topic at random, take C++: you can learn a huge amount simply by reading a late-edition Stroustrup from cover to cover (and doing the exercises). I did that over a winter vacation a few years ago and was astounded at the number of new things I picked up, and lots of older stuff that I thought I understood already but managed to gain new understanding.

Ether
+1 for the example :), kinda motivates me to keep on reading.
Madi D.
Right on! Programming isn't nearly as hard as it seems; mostly it's just putting together lots of simple building blocks into something that *looks* complicated but when you examine each piece it really isn't. The hard part is just learning where to put each piece. :)
Ether
+3  A: 

Your examples all talk about the world of currently popular frameworks, languages, and so on. Don't overlook some of the classics of computer science. For junior programmers I think the more accessible classics include

A more recent book that may become a classic is

A book that is often recommended but seldom read is The Art of Computer Programming by Donald Knuth. Don is the absolute best at what he does, but I don't recommend this book for beginners because it's too specialized and because it tries to be comprehensive (as opposed to focusing on what's most important for junior people to know).

Norman Ramsey
+1 for the useful books :) , and specially mentioning "The practice of programming"..
Madi D.