A New Beginning

Year after year I thought about aspects that I could possibly change to create a more positive lifestyle. These were often things like ‘eat healthier’, ‘do more sports’, ‘quit smoking’ and so on. None of those actually ever happened (beside the smoking, but that was not at New Year’s Eve). And that is the point about resolutions. They never happen if you choose another time for it than now. Do not let yourself restrict too much from events like New Year’s Eve..

So this year I want to try something else. It is nothing new though, but something challenging I want to aim to get a deeper understanding about. I got inspired by Mark Zuckerberg who creates challenges for himself every year. I followed those on his Facebook account during the last years. He challenged himself with projects like ‘read a book every week’, ‘learn Mandarin’ or from this year: build an AI like Jarvis from Iron Man. Those are measurable accomplishments and - most importantly - projects that advance yourself, I am talking about real challenges here.

So I sat down and started to think about projects I can accomplish during a year. A very important aspect of those challenges is to be realistic. A year might be a long time, but actually not as long as it seems at the beginning. Especially when you think about something you want to achieve during that time while working for a company and studying for your masters degree (like I do currently).

Let’s have a look at two projects that came to my mind:

  1. I want to write a blog post every week.
  2. I want to create an own programming language (with compiler/interpreter-toolchain).

Both are measurable, but not 100% defined. A blog post every week does not mean that I have to publish something valuable, technical every week. It could also be some random stuff. The blog posts will all be published here. Some (or maybe a lot of those) posts will be related to the second challenge.

I bought the freshly released book Writing An Interpreter In Go and really enjoyed the first chapters so far. I learned the basics of compiler and interpreters during the exam phase of my bachelor degree and even created a very basic compiler for the language pl0 during that time (Please do not look at the code 🙈). I definitely want to know more about that.

I want to get a deeper understanding why the Swift compiler e.g. is crashing in some occasions. Furthermore, I would like to know what I can do to fix these bugs. Building a compiler is a very low level task that is also very performance critical, so it is quite challenging and fits perfectly.

In this very moment, I do not want to define how complex that programming language is and what the features are. It will probably be a bit more than that pl0-thing on my Github, but of course it will not be as complex as modern compilers. I am giving you a further definition in future posts.

For now, that is all I want to write. So thanks for reading my first blog entry! Moreover, I am very curious what you want to achieve this year! Let me know on Twitter.

Thanks very much to my sister Anne who helped me a lot on the language side of this post!

Benjamin Herzog

iOS developer, master degree student in computer science

Dresden, Germany https://blog.benchr.me