Some Sad Updates

This post was difficult to write, for one because writing is hard (more on that later), and also because I could not decide on what to do with my projects.

So here goes: I have not worked on anything “High Pressure Tanks” related in the last four months. Phew.

To be fair, I have just started university in September and have been quite busy. But during all that time I never wanted to work on HPT at all. I don’t know if this was because I just was too exhausted or because I really did not want to continue it. In any case, HPT hasn’t seen any update since July 2016 and the last bigger update was in April. For most of the summer I have been working on the HPT Wiki over at http://hptanks.wikia.com, I automated the generation of wiki pages, recipe templates, and everything but in the end it was just a huge waste of time and I grew tired of working on it and HPT.

For the last few months I have been torn, I could not decide what to do with HPTanks, I didn’t have the time or motivation to actively work on it but I also did not want to just abandon it. But now I have decided to stop working on High Pressure Tanks all together. This now seems more like a formality, as I have not been working on it for some time, but it is something that needs to be said (mainly for the sake of my sanity). The thought of having HPT as a still open project on which I was not working on, was very stressful, and every time I considered doing some work, I just got overwhelmed by the thought of having to dig into the project again and the poorly managed code base did not help.

It is sad to stop working on this project, I have been working on for over three years, but it is also relieving. High Pressure Tanks was something that was always in the back of my mind nagging me to work on it and the longer I didn’t do anything about it, the more stress it caused and it was just something that clogged up my todo-list and caused some mental noise.

From now on HPTanks will not receive any updates, I will still respond to and fix reported bugs though, unless they require major code changes.

And while we’re killing off projects, I also have to announce that there will be no more “Journey of the Programmer” posts. This decision was a bit easier but it also pains me because it’s a project that barely even got started, and here is why:
As I mentioned at the beginning, writing is hard, or more accurately, I’m not good at it.

When I was writing the draft for the new post, I had the hardest time. I would rewrite a paragraph several times and would still not be satisfied with it and every day I sat down again to write, I basically rearranged and rewrote major parts of the post just because it wasn’t perfect. That particular draft is still not finished, it took me over a week of daily writing to get it to where it is now, and I still hate it.

It feels nice to have these things off my chest and off my mind, I hope that I now can concetrate more on my studies and maybe a little project here or there while avoiding the mistakes I made with HPTanks.

If you are still reading this in 2016, I wish you a happy new year.

Journey of the Programmer Part 1 – The Right Tools

This is the second part of the blog series Journey of the Programmer. Check out the first part here.

You have probably already heard the following phrase several times.

If all you have is a hammer, everything looks like a nail.

Meaning that if you only have one tool at your disposal, you’ll try to solve every problem, you come across, with that tool, and you may not even realize that it is not the right tool.

This is especially true for programmers; it can be very difficult and time-consuming learning a new tool (programming language, software etc.). So we often stick with what we already know, without being aware of the benefits we could get from a new tool in the long run:

Why should I learn how to use git when I can just copy-paste my project folder and add a timestamp to the name?

Exactly! You won’t know until you’ve tried it (or until you lose data because you weren’t doing it regularly enough).

This will be a sub-series to the Journey of the Programmer series (I know, a lot of introductions and no meat) where I will be talking about tools that I use every day and that have improved my workflow and my programming experience in general. The posts will be numbered 1a, 1b, 1c etc., and they may be scattered all over the Journey of the Programmer series.

I am aware that some of the tools I’ll cover can be an almost religious matter for some people. The tools I will be talking about are not the number one best tool that everyone should use, they are the ones that I am using and that have already brought me huge benefits. However I will also try to cover alternatives that may fit people with other needs.

Journey of the Programmer Part 0 – Introduction

This is the first part of the blog series Journey of the Programmer. Check out the next part here.

I have been coding, since I was 13 years old (that was more or less exactly seven years ago at the time of writing). I have been mostly self-taught, most of the stuff we had in school, wasn’t really news to me (I only had two programming courses, all in all only about 50 45-minute lessons). This brings the obvious benefit that a lot of things that I would have to learn in university, I will have already learned. Of course this is not the main reason why one should learn how to code. Besides it being fun (most of the times), it will also teach you another way of thinking and a more pragmatic approach to problem solving.

However, not all is well, and this is why I am writing this post. As my projects grew in size, I started running into problems. Often those problems were code duplication or just bad structure and sometimes I was able to solve those problems. But other times it just made the code unmaintainable, I lost motivation and just straight up abandoned the project. Although I knew how to code, I never learned anything about project management or writing maintainable code.

This and the last year I got the chance to work at a software company (five months altogether, in one two months and one three months block). I learned a lot while working there but I always felt like, I could do better. I wanted to know how to write good code and how to tackle large projects without the overwhelming feeling of having to do everything all at once. So, I decided to write a blog series about just that.

I will be writing posts, as I learn new strategies or techniques that make me a better programmer. As a consequence, this will not be a regular series, I will be posting whenever I discovered something that I feel like is worth sharing.

I hope you will enjoy the posts that are to come. I would also love to hear about tools or techniques that you are using and why instead of the ones I present.