A couple of years ago, I never thought that I would move to Tallinn. Not because of any lack of opportunities for programmers in Europe, but because I did not expect this small city to be so comfortable with so many amenities and, in particular, to have high demand for software developers. Why do I like this city? Let me explain.
Team-building is very useful for your career growth: it helps you build and maintain relationships with your colleagues and your employer. It also improves your performance in a team-based environment. Right? Not at all. In fact, it is an enemy of your career. Let me explain why.
This happened a long time ago, when I was supporting production deployment of the large enterprise system of a bank.
Imagine yourself watching your brain while thinking through the solution of a complex problem. Do you notice that this little rogue always tries to dodge the problem solving, switching completely irrelevant things?
Imagine you are an interviewer. To check if a person is a non-specialist (someone who really has no clue about their supposed field), you have to ask a really simple question: "Could you please recommend a book on your speciality?"
Imagine you had a toothache. You went to a dentist who began to treat it right after you arrived. Once the appointment ran on for more than two hours, you started to worry. You took a chance to speak and asked "Doctor, what is going on, what is the cause of my toothache? What is taking so long?" And he said very calmly, "I don’t know. I just try this and that*, maybe something will work, maybe not. I don’t really know, mate."
Imagine yourself in a forest picking mushrooms, either for fun or, probably more likely, so you won’t starve to death. How do you decide if a mushroom is edible or poisonous? Is there a way to utilize an artificial neural network to help you with the decision? If so, can you come up with a simpler, but more efficient solution? Let’s figure it out!
Speaking abstractly, there are many ways of how an unscrupulous person can steal your money. He can take your wallet by force. This is the most straightforward way, but risky for the thief. Alternatively, he can silently pull the wallet out of your pocket. Sneakier, but still risky. Or, he can take your money in exchange for goods or for a certain service, but then give you only half of what he initially promised. This is the safest and the “most civilized” option. So, not providing the agreed upon amount of work, but still demanding the same pay is as bad as stealing.
Today, most of our lives tend to focus around our jobs and our all-important relationships with our employers. After all, your employer hires you, pays for your working environment, sponsors the fun corporate events, and even provides the table for playing tennis. We should accept that our employers have all the power in this relationship, right?
When writing code, you will make the same mistakes again and again. Some of them can be quite minor, while others could lead to really expensive consequences. I am going to list the most common of these mistakes below, in no particular order. Next time you work on a new feature, make sure you won’t fall into any of these traps. And please notify me, if I do.