Avoiding mistakes with the Not-To-Do-List

Avoiding mistakes with the Not-To-Do-List

In a previous article I wrote about how I try to keep focus when learning new things. While learning I made mistakes that - in retrospective - I would like to avoid in the future.


Years ago I got interested in Ruby on Rails, both personally and professionally. So, I looked into it - and made a mistake that I at least did once more during my time as a software engineer.

You might think that learning Rails is a perfectly fine thing to do. And so do I. However, learning Rails is only one side of the coin. The other side is the programming language Ruby that Rails is built on.

My mistake

As you can see now, my mistake was trying to learn working with the web framework Ruby on Rails without knowing too much about the programming language Ruby. This resulted in a whole lot of confusion on my side. The lines between Ruby and Rails were blurred and I had a hard time understanding what was what. Even looking into the documentation sometimes made me wonder.

Avoid doing the mistake again

In fact, the same thing nearly happened to me again when I got interested in Elixir and the web framework Phoenix. And somehow this seems to be natural. You get kind of infected by this new, super cool technology and directly want to jump into doing amazing stuff with it. The results would of course be much more impressive if you started right away with a web framework building a web site instead of making dry runs on the console with the programming language.

The issue here is that the web framework hides a lot of logic. You get something done pretty quickly. But I doubt that you understood the basics of the programming language. This is, in my opinion, much more important as it will allow you to go much deeper into the technology and solve other, non-web related tasks as well.

The Not-To-Do-List


Laura wrote an article about why lists are awesome. They are simple, to the point and can be used for nearly everything. After learning Rails prior to Ruby and nearly doing the same with Phoenix and Elixir I created a Not-To-Do-List. It works really simple:

  • write down everything that you do not want to do (again),
  • when you want to start something new, first take a look at this list and remember why some item is on it and why it is a bad idea doing it again.

That was simple, he? Of course, this list is dynamic and can change. Sometimes it may even be worth to ignore the list as you need fast progress on a technology or project. I use this list to not cross long term goals that I set myself.

Hence, learn from your mistakes. And as we all are human we do mistakes every single day. This is fine. What we should avoid is doing them over and over again. This brings us to the Not-To-Do-List which helps us remembering all the mistakes that we made in the past and do not want to repeat in the future.

Post image taken by palo, published under CC BY-NC-SA 2.0. The other image was taken by me, published under CC BY-SA 4.0.