Never Do This

2022-03-01

There’s many people who advice you NOT to do certain things. Once and while there’s someone who has tried something and warns people not to do the mistakes they just did.

List of things NOT to do may include:

  • Operating system
  • Programming language
  • C library
  • Crypto
  • Hash algorithm
  • Shell
  • Text editor
  • Authentication system

There’s lot of things on the list, and many I left out.

Why NOT to do things

Reasons for NOT to do things varies. For example many says that it’s lot of work, you’ll never finish it’ you can’t get it right, it’s too much for one person, etc.

For example this post which I ran into recently: Don’t write a programming language. Point of that post falls into category: “designing a programming language is a project that you can never finish”. I’m not going to show more examples here, but I’m sure you can quickly find many with a simple search.

Why you SHOULD do things

I have actually done many of those things on the list. My opinion is that people SHOULD do more things that are impossible to be finished, are hard to do, and requires lot of time - to actually create nothing useful.

The main reason is to learn.

To learn what NOT to do, to learn how things actually works instead of guessing, what are the principles of all computing, algorithms, and everything we build upon today. You might lose weeks, months, years on something you NEVER will finish, and it NEVER will become anything useful. But you still SHOULD do it, if you had some kind of interest on it.

For example I started rolling my own crypto algorithm when I was young. It was crappy, but it taught me the basic idea how to do encryption. I started implementing my own operating system. It taught me lot about low level programming. I implemented my own scripting languages just to find out how parsing, AST and interpreting code works.

I think you’ll get the point by now. It’s not about wasted time, nor actually to GET somewhere, it’s all about the journey.