As a computer programmer, you complain about users and their stupidity not to be able to work with computers. As somebody else who needs to work with computers, you complain about the stupidity of computer programmers.
That’s commonly known. What can we do about that?
Well, I will not tell you. It’s very hard.
I fell in love with computers a very long time ago and decided to be a computer programmer. My parents wanted something different for me. Nobody in my neighborhood knew how important will computers be for us—neither me. But I liked programming. I was kind of disappointed in high school because I couldn’t get the education I wanted. That’s why I decided to learn the theory on my own from the books and later also from the Internet. I turned all that theory into practice by writing a lot of code for a lot of my projects.
I didn’t know anything else. My everyday experience was only writing computer programs, and I didn’t care about school. I attended school only because I had to. I didn’t prepare for tests when my average score was fine. I just wanted to graduate with any score. But I knew about programming a lot my peers didn’t know. I even said at my high school graduation, “you want to hear XY theory, but it doesn’t work in practice, in practice is better YZ because (…)”.
You can imagine that I was useless for anything else. Because of my epilepsy, I didn’t do any sport. My mom cared about everything, like clothes, food and so on. I like practice much more than theory, but in my real life, I was very unpractical. Such irony!
Anyway, because of all of that, I could have been very good programmer. I had extensive knowledge, a lot of practice, I was able to write code very fast, and with only a few bugs. But I was miserable at solving the user’s problem.
You know, we (computer programmers) are here mainly to solve people’s needs. Computers should be helping people, not the other way around. That’s why Apple had the first computer as we know them today. That’s why Apple had the first phone, as we know today. I really recommend you to read a book about Wozniak, iWoz. He’s an outstanding engineer with human needs in mind. That’s how it should be!
I realized that, but I always needed to understand the problem very well so I could solve it the best way possible. I wanted to travel around the world since childhood, so naturally, it was my first step to socializing with people. Soon after, I started to explore a lot of activities. The most important of them is dancing. Dance changed my life, and I will write another blog post about how it changed the way I see programming. For now, you only need to know I had to leave my nights with a computer in a dark room.
And not just the nights. I like traveling, dancing and since today I also manage a whisky club for friends! I even did lectures about technologies and programmers to non-programmers who need to work with them to understand them. Of course, it means less time to learn computer stuff. For now, I still know a lot, and I’m still fast. But computers evolve too fast, and I’m afraid that in the way I live now I won’t be able to catch up with the new stuff as soon as ten years.
Why am I talking about all this? Well, because thanks to being in touch with a lot of different people, I became a much better programmer. I better understand people’s needs and how they see programmers and computers. How to make computer programs easily understandable for them. How to simply describe some technically complex stuff. And that’s very important!
The question is: how to benefit from both sides?
Well, you can be an exceptional and hard-core computer programmer and anyway do great useful stuff for people like Wozniak, for example. The rest of us have to choose what they want to be. I started as a computer programmer (no one would guess otherwise just by looking at me), and today nobody would say I am one. I like that change, and I believe that diversity in a team is the best way to do awesome stuff.
You know, if you have a team with all similar people, then that team can have big problems with some tasks and even with quality and everything. When a team consists of people from different backgrounds and skills, that team can do anything very well. Everyone will use their own expertise, and together they will make a great result.
To wrap it up: you can do a great product with a team that has a lot of diversity. Don’t be afraid to hire someone who is not a rock-star programmer but has some interesting background and skill. And more importantly, be at least a little bit social.