Posts filed under ‘Career’
It’s really interesting how the reputation thing works there.
For those unfamiliar with the site, it basically allows anyone to post programming related questions and then those questions are answered by community. The cool thing about it is that anyone can answer any question, and everyone can also rate answers and questions of other people by up or down voting. Each up vote gives you some reputation, down vote reduces it (but by smaller amount). It’s a great resource as there are a lot of knowledgeable people there and most questions are answered very quickly.
Gaining reputation there is hard because it seems that there are more experts there than those seeking knowledge. It makes sense I think because if you know about that site it already means that you know some stuff about programming, and those who are really clueless won’t know or try to find out about it. Because of this over-abundance of experts finding questions to answer is hard.
There are basically two types of questions there. One is simple generic ‘what are the benefits of polymorphism’ type of question. Almost everyone thinks they can answer those so usually those questions have 5-6 answers within a minute of being posted. The site displays all answers ordered by their rating, so it’s a game of who can get the most reasonable answer fastest because after about 15 minutes no new answer has much of a chance of getting any up votes because it will buried so deep no one will bother looking at it. These questions also usually get the most up votes because many people are interested in those.
The second type of questions is the extremely specific ones – ‘When I use X with Y on Z OS, and I press A with B, I get exception E”. Sometimes those are not answered at all. But unless it’s very esoteric someone will usually know the answer within couple of days, and the answer will usually be rewarded by point or two, because not many will know about the subject to vote on it.
Starting was not easy. The only type of questions you can reasonably expect to answer when you just start there is the specific ones. I think it took me couple of weeks to just get to 100 rating. But with time you get to learn the system, and as your reputation grows you are also more likely to get upvoted so it’s sort of self reinforcing effect. As evidence, it took me couple of days to get from 1000 to 1100 without really trying to. Additionally as you get more and more answers in, you start to get a steady stream of reputation from old answers that people sometimes find.
My next target? 10k 🙂 I wonder how long that would take.
Is it the hard work? Well yeah that helps.
Is it the constant learning? Sure why not.
Will it help to study some other peoples work? You bet it will.
But the real secret – it’s much simpler. Ask yourself…
How many rock stars don’t like playing rock music?
How many rock stars don’t enjoy listening to rock music?
There were a number of negative comments on DZone so I guess should have clarify what’s this post is about.
This post is a joke, a parody of sorts on all the “X things you need to do to become Y” which are all too common on various blogs. Unfortunately, since I have to explain, I guess it wasn’t too funny to begin with 🙂
Regardless, as Russians say, every joke has some truth in it.
In this case the truth is that you have to be passionate about your work, and that is IMO the most important factor in becoming great developer. When you are passionate about something everything else comes easy and effortlessly because you enjoy extra effort it’s no longer an effort but a fun. When you are passionate about something it rubs on other people too and you gain their respect, people come to you for advice and so on. So indeed one of the key elements to becoming good at anything is to be passionate about it. Perhaps it’s obvious to most of you but from my experience most of people in this business are in it for a paycheck. So by just being passionate you automatically become… well.. “a rock star”.
I read this post by Seth Godin and it is a really interesting and different way of looking at the creative process.
Seth describes creativity as something that is done on the edges of a comfort zone. The real interesting part of it though is that a comfort zone is very personal and individual thing – nobody can have experience in everything in this world, so for every one of us we have our areas of comfort where we have a lot of experience and knowledge and huge space of unknown around it. Which means that what I consider extremely creative may be extremely boring “more of the same” stuff for someone else, and vice versa. I am a Java application person professionally so when people around me talk about embedded programming it seems very fresh and strange and exciting – and it probably is the same way the other way around.
The practical advice out of this is that it is important to try to expand your comfort zone beyond what is considered “standard” for your job description. If you are a J2EE person try to learn some Groovy. Or Lisp. Or automatic tests. Or whatever else. You may not become world’s leading expert on X, but that’s is not the goal anyway. You can become a relative expert, “Best Y and X” person, and that is extremely valuable. At the very least it will get you some insights and ideas which will help you become more creative in your field.
The company I am working for was just acquired by one of our competitors. Not too many details are known for now, except that in a few days an integration team from the new owners will come over and start “the integration process” that will lead eventually (couple of months time frame) to the restructuring and merger.
Naturally, everyone right now is trying to find ways to “market” themselves to this integration team. For my team, one of the issues is that we are using Scrum, while according to rumors the new owners are hardcore waterfall people. Having worked with waterfall before I am sure I wouldnt want to repeat that experience. On the other hand, perhaps there is an opportunity here to interest the new guys in this wonderful world of agile.
I am wondering if anyone have experienced such a situation before, and if so, if there are some strategy that should be employed. I would appreciate any advice and/or tips on how the best to handle this. In any case, I will update this blog once we know more (and if it’s not confidential). For now, it’s time to go work on the “integration backlog”.
Happy new year everyone 🙂