Once I had to write a personal statement about what I do. Here it is...

Writing about the first computer my dad bought me when I was 10 is, although true, a cliche. So yes, programming has always been a part of my personal life; but it became an official part of my professional life only a few years ago. Before I got my B.Sc. degree in Computer Science, I have done several other things which, for various reasons, were only stepping stones for me to get to where I am today.

After high school I got an army scholarship which allowed me to study Mechanical Engineering. After finishing this degree and working for a few years as an engineer I decided that my true passion is for software. I returned to the academia and completed another degree in Computer Science.

In this post I would like to write about why I wanted to be a software developer, and what I find so compelling about programming.

Programming as an expression of creativity

I see programming as a way to express my creativity. Programming can bridge the gap between rational thinking and building things from the imagination. That's why I enjoy it. It's an excellent platform which allows you to quickly visualize and build whatever you have in mind. It's right in the middle between artistic disciplines such as painting and scientific disciplines such as engineering. And it takes the best of both worlds. Unlike painting, programming allows you to express your creativity in a constructive, clear and rigorous manner. Unlike in engineering, in programming you are not bound by any unbreakable rules; you are only limited by your own knowledge and understanding.

Programming as a method of learning and and improving

I love learning and I hate being bored. As a programmer you are always doing one of two things:

  1. Honing your skills and deepening your understanding.
  2. Learning something new.

Keeping a high level of interest in my life is important for me, which is another reason I enjoy programming. The variety of topics a programmer gets to deal with is huge. Starting from general design of an application, implementation of algorithms, building specific software units, and ending with resolving bugs.

Programming for the benefit of others.

Everyone wants to feel useful. Creating, and contributing to, something that other people use makes me feel that my job is important; which motivates me. There is great satisfaction is creating tools and applications for users. It rewarding to see something you have built, or helped to build, being used for the benefit of others.