When I started out my journey as a Junior developer I was looking all over the place trying to learn new skills that could help me with my career. From reading lots of documentation, crawling github and making endless “to-do” apps to learn different languages. The reality was one of the best places to learn was staring me in the face every day. It was Stack Overflow and that was a great place for a new developer to learn new skills.
What is Stack Overflow?
Stack Overflow is the place 99.99999% (made up stat) of developers end up when Googling Coding questions. (Other search engines available!). The process goes like this.
Stack is supported by thousands of developers like you, answering / auditing and asking questions. You would think after all this time there wouldn’t be any more questions to ask, but you’d be wrong! Just make sure you’ve given it a good search before asking… these devs are giving their free time, without pay… it makes them grumpy!
Stack Overflow Vs Open Source issues for learning
Before I start it’s important to note I’m not stating Open-Source is a bad place for learning, I just think that it can be a minefield for new developers if they want to pick up new issues
Open source is great! It drives innovation, community, best practices and transparency. Most of the tools devs use are Open Source, so it’s hard not to be greatly appreciative, but it can be hard to get actively engaged. I recently went on a bit of a hunt for
first good issues while I was learning Golang 12 months ago and found that most issues were either already assigned, completed by another issue or over a year out of date. Or even worst, over a year old with a user already assigned. If you are going to be assigned to something at least do it or open it back up for someone else to contribute! (End of my rant I promise)
I find Open Source projects great for learning about big project structure, conventions, design patterns etc. Especially from the big players like Kubernetes, Golang team etc. (http/net package is niceee). When wanting to be idiomatic to the language I’m using it’s the place to go. (No pun intended)
So why do I think Stack Overflow is king for Junior devs? Well, it’s real-world problems, that are happening right now. The issues are current, a few hours old, and someone is waiting to solve that issue. You can get actively engaged in solving a problem today. Not just one problem but possibly 12. (Okay maybe 12 is a bit much but you get what I mean)
The developer story on Stack Overflow has got me a few jobs in my career, utilise it to the max! Back in my early days I was frequently supporting and contributing to Stack and achieved the title of top 5% in Laravel on Stack. It’s a great badge to have, out of hundreds of thousands of users on Stack, I was in the top 5%. How badass does that look on a CV! I haven’t answered Laravel questions now for about 3 years and still have a 10% Laravel badge, that’s because my answers keep on giving. They are eternal on Stack… will probably outlive me!
Contributing to Stack Overflow
There are different ways to contribute to Stack Overflow and I’m not going to cover them all here. The main take away from this article is how you, as a new programmer can get the most of Stack Overflow and use it to grow. The best way for this is by answering/researching questions. You may not be able to answer questions straight away but the best way to start is replication. Take someone’s question, replicate the code on your machine and try to solve the problem but… hold your horses! You need to validate that question is worth the effort before you go diving in! Here’s what to look out for.
Does this question have a definitive answer?
No! It’s an awful question, but don’t just move on just yet, firstly this is a poor post because It does not have a Question. What would the answer be to this problem? Who knows?
Does this question have context?
What’s the context of the question, what is the user trying to do? It looks like they are trying to manage some session cookies, but for what? At this point, you could just move on and find another question to tackle, but Stack Overflow is a community and we should all be helping each other out before discarding someone’s issue. In this scenario, I’d mark their question with a downvote and add a comment on how they could improve this question. I would have added an example but Knittl got there before me
Is this question a duplicate?
It’s important to try and keep Stack Overflow as clean as possible. If we can, we should try to make sure we do not have endless questions that are the same. You can flag a post as a duplicate by clicking
flag at the bottom of the question
Has the author of the question supplied code? Have they had a go at fixing this problem?
Stack Overflow is not the place to go to get someone to do the work for you. It’s a support community, not free labour! A question should always (there may be the odd exception) have a code snippet demonstrating what they have tried, or the error they are getting.
Take a good look at the question, maybe we need more information to answer. Feel free to always post a comment asking for code of other files or a better description of the error.
Once you have vetted this question you can now move on, but don’t forget to go back and visit the question. If the owner of the question improves it, give them an upvote or even have a go at answering. Positive reinforcement peeps!
“I’ve found a question with context, and a good question with code showing the problem”
So you’ve found the perfect question and now you want to try and answer. If you know the answer that’s awesome! But there are some procedures you should follow before putting in your one-line code fix. Remember your answer could be used by thousands of people. Make it super useful, so you can answer other peoples questions for years to come!
- Reference to documentation
- Give context – Why does this fix the users problem? Are there other methods to fix the same issue?
- Get your code formatting correct. Wrap your code in 3 backticks and get the spacing and formatting neat. Keep an eye on your preview.
What if you don’t know the answer?
Well, this is where the magic is for a junior developer using Stack Overflow. You take a problem you understand but don’t know how to fix, replicate it and have the chance to learn something new. There are lots of ways to learn something, but finding a demo project can be tedious and I personally think it can be unmotivating at times, unless it’s a passion project, it’s just another “todo list” app.
I’ll leave this here and I hope it’s encouraged you to get involved in Stack Overflow. In my next article I’ll write about how I replicated a question to solve a problem for someone on Stack.
Over and out!