Although Stack Overflow is initially used only for simple Q&A questions, i.e. as a knowledge base, one can could also use it for browsing through different related questions and learn without having any immediate pressing problems. Do you think that Stack Overflow can be used for these activities effectively?

If yes, do you prefer its loose quasi-neural tag-based relationships to more strictly defined hierarchies imposed by most other structured forms (books, courses...)?

15 Answers
15

No. Once you have enough knowledge from other sources (preferably books and experience), it can help.

I don't believe you can really learn programming from Q&A sites. In order to learn the basics you need to read introductory texts (I always prefer hard-copy books, but that's just me). That will hopefully guide you also through examples that will help you "get your hands dirty" with coding.

Actually I even see a problem with sites like Stack Overflow, because sometimes junior programmers come here as an easy solution for problems they encounter, when actually what they should really do is RTFM (read the fine manual, or tutorial, or book, or reference) - a practice that always teaches a bit more that what you ask for.

That being said, I learn a lot from Stack Overflow when it comes to the more advanced material of real-world usage of systems.

I'm a self taught web developper and I agree with you. I'm using stackoverflow essentially to read what other dev think and what they have to share. It helps me a lot.
–
ekevinMay 6 '10 at 22:30

Now, I have a question concerning the RTM practice. If I RTM, find that I'm still befuddled, have trouble contacting the author, continue researching and still have only a shaky idea of what I'm learning, would it be appropriate for me to post to StackOverflow to clarify some of the concepts that I'm learning? For example, I'm working with Think Python to learn Python programming, but I need more help w/functions, parameters, arguments and interface design. Should I post to Programmers or StackOverflow? Or not at all?
–
StisfaMar 29 '11 at 20:27

No. It can show you stuff that you did not know. But this is not the place to learn programming. Rather this is the place where you can find solutions and suggestions to practical real life problems in programming.

May be Yes. You have to have other resources as well. For example, I am teaching myself Python nowadays and I am following a book for that but in addition to that, I have added Python related tags to my favorite list and I just jump on to them to see what are the real problems people are facing. This always broadens my scope about different things e.g., I just learnt a lot about dictionaries in Python through an answer.

But having said that, I am an experienced C/C++/C# developer so I know the basics. Learning Python for me is learning a new paradigm (Functional programming), learning a new Syntax and learning to use the libraries in an effective way. So, for a newbie to programming, I wouldn't advise in favor of learning everything from here. For experienced programmers who are just trying to learn a new technology/language, this can be very helpful.

Programming is relatively complex, entry-wise. Viewing the content on the site without some background will only elicit confusion. I suggest looking around and finding a good book on a language you want to learn (Java, C++, PHP, etc.) Go through the primer and get the basics down. Then, use the language to for a project of your own design, and as you discover the ins-and-outs, use this site to answer complicated questions (but try them yourself first- you'll remember it much better and grasp the language better) as well as just to search for tips on specific things. A lot of key questions have already been asked, and there are some real jewels lying around, without you having to ask the question again.

That was the long answer. In short, get a primer, and once you've got the basics, use this site to further your understanding and answer tricky questions.

The tags are helpful for seeing questions in a certain category, but many of them will be over your head (though do look; you might gain valuable insight) Better is to search. Sometimes, you might be programming & have a question, and other times, you might be reading a book and want more detail. The search is good for this, but the tags are definitely helpful.

Also, I recommend finding a good mailing list once you get to know the language. The back-and-forth can also be informative. But this site is great- a lot of knowledge and good answers.

SO is only a part of a google search engine learn-programming platform.

In order to use this platform you shall be able to ask questions, which usually come after you have done some initial learning from books, tutorials, hands-on (which may as well be found using SO or google). Therefore:

No, SO is not the place where you learn programming, but SO community will help you with the proper resources, if you wish.

No. While stackoverflow is an excellent resource you should certainly utilize it is not a replacement for more formalized and structured learning (either in class or experience based forms). It is definitely a complement to researching specific patterns or problems you are working with.

No I don't think so. Books do have their place and Stack Overflow is best utilised to clear out doubts that you have. It can be seen as a classroom where you can ask your doubts but you still have to study from the books and learn from real life experience.

You should be aware that most questions here are hard questions, so hard that a majority of professionals cannot answer them. I cannot imagine how you could use that to learn programming without some experience as frame of reference.

Your best bet are those questions tagged "subjective", those are places where you find collective intelligence.

I don't think most are hard questions. I think most are outside the experience of the person asking. There are a lot of questions from Java programmers trying to learn C and C# programmers trying to learn JavaScript. I think most of us feel like dolts when we're outside our comfort zone.
–
NosrednaJun 24 '09 at 5:13

SO doesn't provide a very narative driven thread through each of it's questions. Replies are sorted via votes not chronology, and the inherent inter-post chatter is severely limited by the commenting system. These choices make actual discussion on subjects rather limited and hard to follow (that's ok though, I'm 100% sure these were deliberate choices, and they work well for what SO is).

SO is a very big repository of programming resources. you just need to dig in to see much more. SO is a community. Although most here are developers, you still have to practice what you read here. Correct practice makes perfect. Although perfection is impossible to reach, strive for it. You have to correctly practice what you have read here in the community. Books are the first-level resources you get. SO is like the support you get when you ask for questions regarding what you have read.

You ask a question in SO, drink coffee for 2 minutes, get back and see the magic (answers get pouring in the question). That's why I love SO.

Stackoverflow is to some degree indeed a great resource to learn more about programming. I don't think it's a good resource to start learning to program software, because some basics are just not discussed here as this is indeed common knowledge for all programmers.

Yes and No - Personally I think that Stack Overflow is an extremely good resource for studying programming; however, it is only good from the standpoint of going through questions and finding interesting things to read about. In other words, it's a good resource if you already have some basic knowledge and are looking to expand your knowledge base.

That said, I feel it is not a good replacement for guided study when you are first learning programming; namely the type you get through classroom instruction or through a very good programming book. Stack Overflow might be useful for students since they could ask questions about areas that they are having problems with something that they have already put a great deal of effort into, but on the same token it might be overused by students that are just trying to get their homework done for free.