Before 20 years, people believed programmers only eat Pizza and wear beards. But today it’s different. The Internet changed everything and programmers are intelligent, hip people with big visions. At least, those of whom we read in the news.
Before you read: I no way I consider myself an extraordinary developer. This blog post describes what I have learned from people I consider remarkable.
In early days, it was knowledge of maths, algorithms, memory and other scary things. If you knew how to make a web page using HTML tables you were a gifted person (Note: I suck at maths, but I learned how to use tables).
Today Web projects are massive. You have people working as architects, team leaders, designers, front-end coders, backend coders, database gurus and whatever else you can imagine. Teams became big, sometimes huge.
When I hire new people, I don’t look at their maths skills or their knowledge of garbage collection, except this is urgently needed for the job. Most often I look at other skills, often referred to “soft skill” first.
For me, a real good programmer has understood the most important core concepts of his job and is a great, hopefully, inspiring person.
Some of the most important traits of a programmer I call “Jewels” or “Treasures,” because they are precious. You cannot learn these treasures from books or courses.
You are born with a certain set of treasures. How you grow up adds something. How you live adds something. Your visions, dreams, experiences – everything adds a little bit.
How can you become a “nicer person” if you believe the world sucks? One “who cares”, if you don’t care? Friendly, if everybody around you says: “he is as he is, we need to accept that!”
Changing yourself is hard. It only works if you want to change.
When you really, really want it, you need to get rid of all your excuses.
Was your childhood bad? It is no excuse for being unfriendly. You don’t have a University degree? It is not an excuse for committing bugs and going home afterward.
And so on.
All these excuses might be reasons. But to do a change, you cannot longer use these reasons and hide behind them.
No book and no blog post can tell you how to fight these human that codes blocking you to develop and make the change you want. It is up to you, and you alone to find the solution. You might find some tips here and there, but the process itself needs to be done by you.
Be aware of who you are. Know your weak sides, stop excusing yourself.
If you messed something up, stop blaming events in your life or other people. You made the mess. Don’t stay attached to it, clean it up.
If you were unfriendly because you “had a rough day”, it’s not the fault of the day or having a bad time. You were just yet another unfriendly person, and the recipient of your unfriendliness most likely didn’t deserve it.
Find a strategy to learn about yourself. I meditate. Meditation is like a mirror. It takes a long time to see yourself, but it always worked for me. Be cautious: you will see things you don’t like. It might shock you.
You might ask other people: “Do you think I am unfriendly?” When people are excusing your bad behavior, then you can be sure you are an idiot. This strategy might save some time, but people are usually not that open.
Once you see your problems, try to find a “mind hook.” Mind hooks should remind you to act differently. If you are poorly organized, you could put a post-it on your monitor reminding you to organize the first 15 minutes of your work day.
Pro tip: Smartphones have a great reminder functionality these days.
Whatever you do, how silly it sounds: you need to break your routine. Whatever helps to break your routine, is good. You need to internalize new habits, and for that you need to remind yourself to do them.
I want to work with people who take ownership on their work. If they code something, they feel responsible. They try to do the best thing they can get the desired output.
You don’t need to ask people who feel a lot of ownership test properly. They do everything to keep their code quality up. When they sense a problem without even knowing it, they search until they find something.
You don’t need to remind such people to hit the deadline. They will come on their own if something goes wrong.
How I learned it: when I was a junior dev, I had a manager who looked at everything I had written before we deployed it. He checked everything twice by default. At some point, I was not able to deploy anything without checking twice myself.
People with great team spirit don’t need to be the perfect coders. Everybody helps them. They help everybody. They understand it’s a giving and taking. When somebody has a problem, they stay longer to help - no questions asked.
When there is a change coming up, they notify everybody. You roll out a new server? These people make sure everybody knows before, and you can intervene if you don’t like it.
Taking critics from these people is easy. They don’t want to put you down; they just want to build an excellent product. They want to help you to succeed.
In my post “The 10 Rules of a Zen Programmer” I spoke about ego-less programming. It directly relates to this. They put aside their ego, help and accept when somebody helps them.
For me, this is the greatest treasure a developer can have. If anyone got that treasure, I forgive a lack of knowledge and other things.
How I became a (better) team player: I was trying to be better than my colleagues all the time. Then I started my work at “The Apache Software Foundation”. Every single person there was better educated, harder working and more dedicated. I understood, I could only become a part of these great people when I put down my ego and started to give value.
Some people have a low self-esteem and need to compensate. Some people believe they need to “work on their career” and put themselves over others. Some people naturally think without them the world would not longer rotate.
When I hire, I just look for people who are 100% nice. No egos. It disturbs the team (see above). No people who compensate. No big balls “brogrammers” macho show.
Just be yourself: a human that codes.
Friendliness is the key for a healthy atmosphere, which enables good team play. Good team play will make you feel valued. Feeling valued will help you to take ownership. Which will lead to a good atmosphere?
How I learned to be friendly: when I was younger, I was bitter after a long period being poor. I blamed the world and could not believe my bad luck. When I started with meditation, I suddenly understood how pointless my complaints were. I am by all means not enlightened, but since I practice Zen, I can laugh more often. And I hope, my colleagues would describe me a friendly - but if you want to know the truth, you need to ask them directly.
You have already started your transformation when you start thinking about who you are and what you should change.
I would like to encourage you with working on yourself. Once you start thinking, you might start acting. Once you started working on one of your treasures, the others will grew up as well.
If you want to start right now, smile when you say “hello” to somebody.