I like to keep on my toes when it comes to my career. I do at least one job interview per year even if not looking for a job.

This has many benefits for me:

  • it gives me space for thinking about whether I’m content at my current job,
  • if I pass the interview it gives me peace of mind that I can actually switch jobs without too much hassle,
  • allows me to check interesting offers from other companies.

A lot of those companies will require me to pass a DSA interview. I have systems in place to keep track and prepare for those interviews so they don’t really take up a lot of my time.

Another question is do they actually make sense.

I have gathered quite a collection of algorithm katas that allow me to refresh my skills on the basic algorithms.

Do I use those algorithms anywhere else then the katas themselves? No.

Do I think they’re knowledge will be a good predictor for anyone joining the company. No.

If in charge of creating an interview program port I still want space kind of questions in my interview process? Maybe. And the why needs a bit of an explanation.

Does it make sense?

So let me tell you bit about my college years. When I was at the point when I needed to choose colleges I felt that I’ve learned a lot of the engineering skills that would make me a good programmer.

I decided to go for a more business oriented IT position but I also wanted it to not only be about business. I wanted to have an engineering degree.

This left me with a pretty weird choice where I had both IT/business and hard engineering skills. You see, it was a university department that was was big into managing production lines.

I had my head filled with several concepts that are crucial for managing good production lines. It pulled me in several different directions for around 4 years.

At the time, this seemed like a waste of time. Looking back, this was pretty formative to my thinking. I now have an intuitive understanding of how things are done. Preparation/changeover times are just parts of how I see the world. The ergonomics of what the human body and mind are capable of are second nature to me. Using time and resources in an optimal manner has become a habit that I’m unconsciously pursuing to an extent that I’m frequently embarrassed by.

I have never managed a production line. I have nowhere near the skills to do that. However the way of thinking has stuck to me since then and it has a very broad applicability in other areas. Cooking, housework, exercise routines, project planning; these are just a few sample disciplines that were affected by the thinking that was crammed in my head and affected my thinking itself.

Maybe it does

So maybe it’s possible that teaching general principles around different things related to it my shape the thinking of programmers despite the fact that they will not directly use the skills that they are learning.

As a web developer you will not implement merge sort by yourself but it seems quite useful to know it exists. Even more so the general principle of divide and conquer - it is a great way to tackle anything else that you’ll encounter. Once you create the merge sort and implemented it a thousand times that will change the way you think.

So maybe that’s enough to at least give it a few minutes on an interview.