I’m still a relative newcomer to the programming and web development world. I started actively doing web stuff including programming and design around the time I started using StackOverflow, 22 months ago at the time of writing this.
StackOverflow helped me get my base foundation doing web stuff when I didn’t have a teacher around to guide me (which, looking back, I’m thankful for). I thought of things differently then and was unaware of techniques that I know now. Having people answer specific questions I had and getting help applying them to my situation helped me understand the thought behind the concept as well as reduced the time it took to find the answers myself.
StackOverflow was a big part in landing my first internship and in actually being able to get things done at the internship. Sadly the other intern and I had very little guidance at work on how the program we were assigned to functioned, was structured, and had no one we could really ask questions to, but I used the time to teach myself web programming through SO and was able to complete some of the tasks at the internship as a result.
One of the most important things that I learned on SO was how to ask good questions. It’s unthinkable to me now to not localize the issue to a small portion of the code, provide the expected and actual output, write clearly, or provide a live demo (when appropriate) before asking someone a programming question. Now it bothers me when people ask poor questions because I’d like to help, but feel as if I shouldn’t because they didn’t have the will to put forth the effort needed to make a good question.
Furthermore, a big part of my development up to that point was from challenging myself to answer other people’s questions, even ones I had no idea how to solve at the time (which was pretty much all of them). Some people might consider it repwhoring, and looking back on it I was more concerned about reputation than I am now, but in all honesty I really enjoy solving problems; it’s a big reason why programming is fun. I wouldn’t be in this field if it didn’t involve thinking of new solutions to problems and facing difficult situations. Over time, answering questions became easier and easier for the basics and I took on more and more complex problems.
Those things in and of themselves would have made the time I spent on SO worth it to me, but I found out that SO has more to offer.
Somehow I stumbled into the chat room portion of SO and liked the HTML/CSS/WebDesign room best of the ones I tried. Here I had the pleasure to meet and talk with actual developers and designers, not just some anonymous users who happened to know an answer to a question I asked. They were building things. They were working. They were talking about life outside of code. Some of them have written JS books I’ve read, work for Microsoft, or do something else just as amazing. Being involved with them encouraged me and made me more inclined to make awesome stuff. I started creating mini projects on jsFiddle and making some public on CodePen. They had great resources to offer, both in their personal knowledge and in their repository of useful articles. Over time I spent less and less time in the Q&A (partially due to the realization that there are a lot of crappy questions) and more time in the chatroom. What’s more is that I could actually add some value to their lives because of knowledge I had and could sometimes help them when they got stuck. Being involved in the chatrooms of StackExchange has been by far the most influential part of the network on me.
Of course, the things we make are valuable. Building them teaches us things, makes us money, and gives us something to do. But I continually realize more and more that no matter what the project is, it pales in comparison to interacting with other humans. The things I’m going to remember in the distant future are much more likely to be the friends I had and particular memories with those people rather than the little projects I put together with some code. No matter how badly I want and try to make my UX make the user feel and remember the experience, it can never be as good as a great memory that they have with a friend.
That’s a big reason why I like the chats. Even though they’re often off topic, at times too nasty for my tastes, and ultimately suck a bit of my free time away from me, they help keep me enjoying what I do and can provide aid quickly when I need it. It’s a tight group of people who care about each other and what they are doing; a community like that isn’t always available nearby to the same extent. At the same time, the fact that the people involved are from all over the world is awesome. We get to hear various viewpoints and learn about their culture. For the ones who have become my good friends, it also serves as a potential place to stay if I ever travel near them, and the same goes for those traveling near me. I encourage you to get involved in some type of community like this, even if it’s not associated with StackExchange.
Another important facet of modern life that SO helped teach me handle well is how to interact with people in an online community. Let’s face it: communicating over text, especially in chats where there’s no time to draft, revise, and otherwise make yourself pleasant and well spoken, is hard to do well. The only way to become better at it (besides simply maturing) is to just do it – and doing it a lot helps. Dealing with angered users, not taking things too personally, and learning when to just shut up are all valuable skills that are applicable both online and in the real world.
What’s cool about the StackExchange network is that all of these things can happen to people interested in practically every field, because there’s likely a community made for that interest specifically. It’s not restricted to just programmers or just something else. All of the sites are united in a network where users are free to go between and be in active in multiple at once.
Additionally, by hanging out on Q&A and in the chats of a particular community, someone who is just curious about the subject can go from knowing nothing to being pretty knowledgeable about it. That’s really, really awesome. For self learners and curious people, the SE setup is quite hard to beat.
Even as I am getting older and have more and more opportunity to spend my time earning money, whether on CodeMentor, working freelance, or something else entirely, I will make it a point to continue to be involved at least somewhat with the SE network and other similar efforts because I hope others will have a good experience learning as I did.
The internet is open and free, connecting people that would never have the opportunity to interact otherwise. I hope to continue to help that continue to be the case and build systems and technologies that expand the ability to connect people even further, making meaningful connections with people as I do so.