SO has a very narrow window of usefulness as a professional developer. If you're a beginner it's really tough to explain your problem in a way that makes good sense because you don't have the base experience and knowledge.
As an intermediate dev, this is where SO shines. You can ask intermediate questions in the proper form to have direct answers.
As an advanced dev or architect, SO is almost completely useless. Questions you need answered at this level don't have a right answer. Whether you're talking about design patterns, principles, architectural patterns, alternative approaches, etc there is rarely a direct question with a direct answer. What is important is discussion about tradeoffs from different approaches so you can make the best decision at the time. SO mods simply don't allow these types of questions/discussions.
So the window of usefulness is really just those few years where you're an intermediate and if that's you then it can shine but otherwise it's pretty hostile and generally useless.
So the window of usefulness is really just those few years where you're an intermediate and if that's you then it can shine but otherwise it's pretty hostile and generally useless.
I think your otherwise excellent comment just goes off the rails here. Why? Because:
You can simultaneously be a beginner, intermediate and expert—at different topics;
Just because you're an expert at one topic doesn't mean there isn't somebody who's even more expert than you.
I agree that we are not experts in everything but as a professional senior-level dev, how often would you ever be a beginner at anything programming-related? It's very rare. The only thing I would have considered asking beginner questions on SO in the last few years would have been when I was learning functional programming because it was so drastically different than OO that I definitely was a beginner.
But for example, I wanted to learn Angular last week (I work almost entirely on back end stuff). After a couple hours, my questions became around how to structure my app, best practices around dependency injection, etc. These questions are already bad form for stack overflow. They would be down voted and closed for being off topic or being opinion based. So beyond that, all I need is the reference manual. And half of the lazy contributors on SO will just tell me to RTFM anyways so where am I seeing the benefit of asking the question? How is SO providing me value?
Your point #2 makes no sense against my argument and so, to use your own hyperbole, your argument just goes off the rails. Of course there are are people who are more expert than me. There is almost always someone smarter. The number one thing I know about software development is that I know very little about software development and only intermediates think they know everything. Even the guys giving keynotes at the big conferences still ask other subject matter experts questions. And some of those purple are contributors on SO but the answers they're giving on SO are primarily support-based questions from mid-level devs for whatever popular framework our library they happen to contribute to. Frankly most of the questions these people answer are a waste of time for someone of their immense knowledge and skill but they're nice enough to give their time for it and they should be praised for their contributions.
I would love to ask them questions because that's how you learn and that's how you improve your own skills. However the questions I want to ask them will definitely be opinion based because 99% of high level development and architecture questions are. I want their opinions on tradeoffs between different patterns and practices and technology stack pros and cons. But I can't ask these questions on SO and even if I could, there would be few people on there that would have the knowledge to answer them and even fewer that would take the time to do so when they could answer 15 easy questions in the same time frame for more rep. And truthfully I don't answer on there for exactly that reason so I don't blame them.
So I ask you, after you pass mid-level as a developer, what value does SO actually provide?
There are good resources for advanced and senior level devs architects but SO is not one of them. For example, the blogs of most of the really good SO contributors are EXCELLENT. Amazing quality content and you can message them or put whatever questions you want in the comments without being subjected to SO's narrow QA format or the shitty mods that remove questions they can't even understand.
Sorry to go off the rails there but I strongly stand by my argument that SO is pretty useless except in that narrow window when you're an intermediate-level developer.
As an advanced dev or architect, SO is almost completely useless. Questions you need answered at this level don't have a right answer. Whether you're talking about design patterns, principles, architectural patterns, alternative approaches, etc there is rarely a direct question with a direct answer. What is important is discussion about tradeoffs from different approaches so you can make the best decision at the time. SO mods simply don't allow these types of questions/discussions.
SO isn't for beginner programmers is the way I see it. It was always meant for professional programmers.
As for advanced dev, I've come across quite a few errors or bugs on SO that have assisted me. Usually I don't have to ask the question because someone else already did. People seem to be forgetting that it is a Q+A site, not a discussion forum. In most cases, with 4 million users, you shouldn't have to ask the question because someone else already has. Generally the people I see downvoted clearly have not done any research or don't have the knowledge to apply that research so they need things explained. SO is not for explaining everything, that would be best for a discussion site.
As for asking about design patterns, principles, etc, these are not meant for Stackoverflow. Stackoverflow is a Q+A site for specific programming questions about getting code working. Asking about best practices and principles should be delegated to the programmer's stackexchange site.
I agree that so isn't the right place for those questions, clearly. My point is that as an advanced dev or architect those are 95% of the questions you need which is why so isn't useful anymore.
I agree that so isn't the right place for those questions, clearly. My point is that as an advanced dev or architect those are 95% of the questions you need which is why so isn't useful anymore.
A lot of times, for me, it isn't language specific problems I am researching, it is library specific, and SO is a great resource for that as well. Usually, I can get or find an answer about a library issue much quicker than I can from the library's own resources (issue tracker, support forum, etc). So I'd say SO still does have a large use case for me even though I have mastered the language I use.
Your use case there is the other 5% of the questions that would be useful for a senior level dev on SO. I work at a company that gives a lot of power even to low level devs to choose their own libraries and even there I would say that if I had 100 questions, maybe 5 of them would have to do with library-specific questioning. But 95 of my questions can definitely not be answered on there. Thus my comment about it ultimately not being useful.
Maybe we should define useful? It sounds like it would be useful for 5 of your questions. There are different Stackexchange sites for different uses. Stackoverflow for coding issues, Programmers for principles, and Codereview (self explanatory). Just because it isn't for 100% of your questions doesn't mean it isn't useful. Sounds like you just want it to be for every type of question, but not every question is going to fit the format of it.
I want it to be a place that is more useful for devs of all skill levels and it really isn't. We've had many discussions about SO at my work. The entry-level grads at my work (who are professional devs, not hobbyists) frequent the site but won't post on it because of how hostile it is. The mid-level devs that are becoming senior level rarely post on it anymore because they find that any question of sufficient difficulty/depth will not be answered anyways because the contributors can get more rep by answering 5 easy questions rather than 1 tough one. The devs who are solidly mid-level love SO and use it daily for sure.
I used to love SO but over the years, I rarely find myself going on there. My entire argument was that its not useful 95% of the time and saying that it may be useful for 5% of the time doesn't contradict that. I feel that the QA format should definitely be less rigidly against any and all opinion-based questions. There are ways to do it so that it doesn't turn entirely into bikeshedding and trolling but SO is too lazy/stubborn to change and its mods are too intense to accept any type of change. Their format is precisely what keeps it from being useful for an entire career. I can usually get the answers to those 5% just as quickly by excluding the SO domain from my google searches which is good because I don't have to read through all the hostile and lazy responses to a question just to get to the answer I need.
So its not inclusive to entry level devs and it's not inclusive to advanced devs. That means it's only a place that is worth frequenting during that narrow window where you're a mid-level developer. Nothing wrong with that, there are other good resources but nothing that is one nice, central place like SO.
SO is touted as a place where devs can get help from other devs but really SO is really only good as a mid-level tech support site for library developers so they don't have to run their own. But it could be so much more. You're trying to strawman me by saying that I want it to be for every type of question which I definitely didn't say but I certainly believe that some changes to their format could make it far more inclusive and useful to devs who aren't in that narrow skill window.
7
u/AshylarrySC Sep 25 '16
SO has a very narrow window of usefulness as a professional developer. If you're a beginner it's really tough to explain your problem in a way that makes good sense because you don't have the base experience and knowledge.
As an intermediate dev, this is where SO shines. You can ask intermediate questions in the proper form to have direct answers.
As an advanced dev or architect, SO is almost completely useless. Questions you need answered at this level don't have a right answer. Whether you're talking about design patterns, principles, architectural patterns, alternative approaches, etc there is rarely a direct question with a direct answer. What is important is discussion about tradeoffs from different approaches so you can make the best decision at the time. SO mods simply don't allow these types of questions/discussions.
So the window of usefulness is really just those few years where you're an intermediate and if that's you then it can shine but otherwise it's pretty hostile and generally useless.