Blog

All entries - January, 2010

Interview: Michael ‘Monty’ Widenius

2010-01-19, by Support Team

Recently we interviewed Michael ‘Monty’ Widenius who is the main creator of the MySQL open source database, which was acquired by Sun Microsystems in 2008. Nowadays Monty keeps busy on many fronts and is often in the headlines of newspapers and IT news portals.

MySQL

How did you start your programming career?

I bought one of the first available personal computers, a Swedish ABC80, when they where introduced in 1979; At that time there you did not get any programs for the computer, so you had to learn programming just to be able to use it.

My friends could not understand that one could do anything useful or fun with the computer, so to show them what could be done, I made more than 50 games (in Basic and assembler) for it so that they could use it.  That was the start of my programming career.
Which programming languages, tools and frameworks do you utilize?

When I moved in 1982 from personal computers to Unix computers, I switched to use C. When I started on MySQL in 1994, I started to program C++.

Apart from Basic, C and C++, I have worked on shell, perl, lisp and some own created languages (as part of UNIREG, the ancestor of MYSQL), and SQL.

Tools used are mostly unix basic tools like Xemacs, gcc, yacc, make.

The only build framework I have used is Visual Studio, when I built UNIREG and MySQL on windows.
What are the best parts of programming?

To solve hard problems is fun. It’s also fun to be able to create something that a lot of people can use to solve their problems.

What are the worst parts of programming?

It’s a lonely job and it takes up way too much time so you can easily forget the world around you (especially when you work from home).

Because of this, I have made a point to visit or invite friends most weekends. (Making food is another hobby of mine).

There are times programming feels overwhelming and you can?t get anything done ? how do you cope with it?

If the problem is to figure out something very hard, then I take a couple of hours off and lay in bed (completely alone and no sound anywhere) and just think about the problems until I found a working solution.  This has helped in most cases. In the few cases it has not
helped, then I do something else for a few days and after that I have always had a fresh solution for the problem.

What is the optimal environment and time of day to get the best results?

For me, it’s working from home and be able to work uninterrupted on a part problem until it’s solved (usually very late in the evening).

Then to go to bed and sleep until my body tells me it’s time to wake.

The end result is that my working hours are 11.00 – 02.00 and I am most productive in the evening.

I also noticed that I am much more productive in the winter than in Summer.  (Maybe because my brain works better when it’s cold and/or because on the winter evenings there is much less to do than in the summer).

How would you like to improve your programming skills?

Getting more time to program :)

Do you comment your code?

Yes;  When there is other people that is working on your code you have to add a lot of comments.

When I started with MySQL, I did not add that much comments as I then didn’t think that many others would have to work on the code;  I just added as much comments to make the code understandable for me.

Nowadays things are very different;  Part of our code review process is to ensure that any code that the reviewer doesn’t instantly understands has to be commented.

Your message to ViopeProgramming.com users and other beginning programmers?

You can’t get to be a top programmers by skills alone; You have to spend a LOT of times to do programming and you have to do that in many different areas.

You also learn more if you are working on a project with many other people!

I would like to encourage everyone to spend 1-2 months on either creating a useful open source project and get others to participate in it or be part of some project that you are using yourself!

When working with others, don’t fall into the trap to think that your code is better than others or that every code you see needs to be rewritten by you;  You need to work with others, not against them!

Thanks, Michael!

This post currently has no responses »