42

Could spending time (and actively participating) on Programmers.SE and Stack Overflow help me improve my programming skills any close to what spending time on reading a book like Code Complete 2 (which would otherwise be next in my reading list) will help.

Ok, may be the answer to this question for someone who is beginning with programming might be a straight no, but I'd like to add that this question I'm asking in context when the person is familiar with programming languages but wants to improve his programming skills. I was reading this question on SO and also this book has been recommended by many others (including Jeff and Joel).

To be more specific, I'd also add that even though I do programming in C, Java, Python,etc but still I'm not happy with my coding skills and reading the review of CC2 I realized I still need to improve a lot.

So, basically I want to know what's the best way for me to improve programming skills - spend more time on here/SO or continue with CC2 and may be come here as and when time permits.

9 Answers9

100

No, it is not a substitute, but a perfect complement. I feel a combination of the two holds a lot of power.

Why is it that a good lecture teaches you more than just reading a book? Interaction and the ability to ask questions.

By just reading a book, some questions might pop up to which you can't find any answers. Look for those questions here, or ask them if they haven't been discussed before.

12

I've (currently) been a member of StackOverflow for 1 year and 10 months. During this time I have become a disciplined student of the art: cognizant of architecture, patterns, decoupling, unit-testing, and the list could go on ...but, what role did SO play???

First, it answered my immediate questions. But as I began to explore SO, I discovered that I was a very bad programmer. Desiring to be an artisan at my craft, I bought books ...but it wasn't C# Unleashed, Learn C# Programming, or other sub-standard beginner text that I needed. I bought the right kind of books that targeted skill areas I discovered were deficient. Of course, I took the time to see what the experts on SO recommended.

Second, SO gave me a place to continue learning from those who (represented by reputation) really know what they're doing - syntactically and philosophically. There is a certain amount of insight to be gained on SO, CodeReview, and Programmers that you simply cannot get from a book.

Obviously, SO cannot replace books or all other web resources (although, if I could combine MSDN and SO into a single content resource ...); instead, SO complements these other resources. The best teacher, however, remains experience.

IAbstract
  • 1,556
11

What's the best way for me to improve programming skills?

Programming more. Reading books and web pages is secondary.

You learn best by doing.

5

Learning needs some ingredients:

  1. Learner (which is of course you)
  2. Time (which you should manage and dedicate)
  3. Resources (from which, SE sites are only a small portion)

Are you a good learner? Do you spend enough time on learning? If the answer of these 2 questions are yes, then you already have enough potential to learn almost from any resource.

But to answer your question, yeah, I personally learned a lot from SE sites. IMHO, they shouldn't become your only learning source, but they are beneficial.

Saeed Neamati
  • 18,318
5

Two things that SO and P.SE offer that neither reading other books nor writing code yourself offer: testing and teaching. If you just blindly ask questions like

Why doesn't this compile

wall
of
code
100
lines
long

And someone says "on line 33 that comma should be a semicolon" and you accept the answer and carry on, and continue to ask the same questions forever, then you might not improve.

BUT, if you're reading other people's questions, thinking about the answer, watching to see what answers come in and how they compare to what you know, that will really improve you. If you type some code into your favourite editor and try a few things to see what the answer is, that will really improve you. And when you start trying to explain concepts (and people are waiting there to "clarify" what you say) that will also improve you.

For about 30 years now I have discovered I never learn a topic so well as when, believing I know it, I set out to teach it. To me that is the major contribution of the *.se sites to my skills as a developer. Plus, when I just want to know a simple fact, it's my number one place to look (or occasionally ask).

Kate Gregory
  • 17,495
2

As you answered yourself, no, but spending time here is a useful adjunct to more structured learning. I wouldn't depend on it standalone as there may be gaps in some concepts that may not be covered. One of your best bets for improving your coding for guys at the intermediate level is reading other good developer's code by spending time on GitHub or other open-source repository.

Turnkey
  • 1,697
2

Your programming skills is improved the best not by reading web sites or books, but by repeating

  1. write code based on current knowledge
  2. evaluate result
  3. learn from evaluation about what to do and what not to do.
  4. go to 1

Practice makes perfect. What looks nice on a blog or in a book may prove to be cumbersome to use for some reason not understood by the blog writer, or that the book author didn't cover.

1

Critical Thought and Analysis is still required

In and of itself no. The only way to make source of learning (book, blog, website, SO, etc) is by comprehension, analysis and then repeated incorporation. What people write on forums like this are not gospel and should not be treated as such no matter how many up votes it has. You need do your own analysis on the opinion rendered to figure out if it's:

  1. A good idea
  2. An idea applicable for your situation

The Best Way to Improve

Is often specific to the person. Some people get better through reading and research. Some people get better through play and experimentation. Other can even get better through self reflection and analysis. Try whatever appeals to you and see if it works better for you.

0

Learning java became much, much easier when I found out about stackoverflow. I didnt ask questions, but I started to read the java questions daily. Much of the questions were out of my understanding, but every now and then someone asked the beginner question. Many people ask about concepts they read from a book but dont understand, and get much more understandable answer here, often with small code sample to further explain the problem.

Zavior
  • 1,362