This is a mobile version, full one is here.

Yegor Bugayenko
14 February 2017

StackOverflow Is Your Mandatory Tool

I've said before that your StackOverflow reputation is very important to us when we make a decision on how much we should pay a software developer. However, there were many complaints about this metric. Take, for example, the ones here and here. In a nutshell, so many of you disagreed and said that the number of StackOverflow up-votes was nothing more than a measurement of the amount of time someone spent answering stupid questions asked by clueless programmers. Let me disagree and explain why your activity on this platform is so important to your career.

Basically, your StackOverflow profile demonstrates five skills you either have or don't. They may not be as important to an office slave worker, but if you're going to work remotely, they are crucial.

How to Search. The StackExchange knowledge base is huge and contains answers to almost any software question you may ask. You have to know how to search it, and not only via Google. You have to be familiar with the platform and its key features, and you can't learn that without being an active user. When your reputation is high, it's a clear indicator to me, your potential employer, that you're aware of how to find the right information in this knowledge base.

How to Ask. Asking a friend near the coffee machine is one thing. Asking a community of 6+ million developers is a totally different thing. You have to learn how to explain your problem, how to formulate the question, how to label it and title it. Try it for the first time and you will see that it's not easy at all; your questions will sound immature, silly, and ambiguous, and they will end with "Best regards" (something you shouldn't do at SO). And, of course, they will get zero up-votes. Later, when you improve, you will be surprised to see that more and more of them get up-votes, and your reputation will grow. This will be the indicator that your "question asking" skill is growing up. For me, your potential employer, it's a very important skill.

How to Answer. Initially, you will be afraid to answer. Then, most of your answers will be down-voted. Then, some of them will be accepted as best answers. Eventually, some of them will start getting up-votes. Until that happens, you will go through a lot of frustration and negative emotions. You will learn how to make your answers helpful—not just to your friends, because they don't want to offend you by saying that you have no idea what you're talking about, but to strangers, who care more about the information you're able to deliver than they care about you personally. That's a skill you can't buy; you have to earn it. And it's crucial in a distributed team.

How to Deal With Morons. You know what to do with them in the office, but on the Internet, they are much more aggressive and offensive. And there are many of them. You need to learn and practice a lot before you become competent enough to fetch information out of that programming community without pulling your hair out and screaming at the monitor. StackOverflow will help you a lot, both through questions you will ask and answers you will try to give. And you can't learn that in the office dealing with your friends only.

How to Deal With Smart-asses. Some people there are very smart and knowledgeable, and they will not always be polite when your questions or mistakes using the platform border on being too annoying. Again, your office friends won't teach you how to deal with those gurus so you can tap their knowledge; you have to be actively involved in StackOverflow discussions. This skill is very important for distributed programming, where you have to solve most of the problems on your own.

To summarize, StackOverflow is a must-have instrument for any modern software developer, no matter what your programming language, your age, your project, or your professional level are. It's like an IDE and unit tests—you just use them in order to develop faster. Some people are still using vim or emacs and writing no tests, but you don't want to be like them.

StackOverflow is not just a website where you may have an account if you feel like it. It's a mandatory instrument you have to use if you want me, your potential employer, to value you as a serious engineer. And if you use this instrument on a daily basis, your reputation will inevitably reach high levels.

By the way, this is my StackExchange profile. I've earned the majority of my reputation a few years ago, so now I'm mostly getting up-votes for the answers and questions I've posted earlier. However, I keep using StackOverflow as I code, every day.