What I learned in 2020. Today, I would like to write a short…
By: Marek Sirkovský
Tags: Software, Software Engineering, New Year, Software Development

Today, I would like to write a short text about what I have learned during the super crazy year 2020.

As usual, I had made resolutions on what to learn in the year 2020. And as a rule, it happened that I failed to meet some of them. My plan changed due to new contracts or projects. I had to acquire different skills or knowledge than I had anticipated. Nothing surprising :).

These days, I’m not entirely sure if I am going to make a resolution for the year 2021. I consider omitting it altogether and just putting aside a time slot for my daily education. But, just for fun, let us have a look at what extra I needed to learn in the last year:

CSS

Quite unexpectedly, I had to to brush up my skills a lot on one of my projects. Thus I started studying CSS in more detail: performance, semantic, history, etc. Actually, getting insight into its history seemed especially valuable. I finally understood why certain CSS rules behaved in that particular way they did. Besides a number of articles related to CSS, I also read the Eric Meyer’s book CSS: The Definitive Guide

I went through it twice. Despite the fact that the book somehow seems intended for beginners only, there are many in-depth topics as well. I would recommend it to everyone. On more than 1000 pages, you will get a pretty decent understanding of CSS.

Azure websites

For one of my projects, I had to make myself familiar with the basics of Azure websites. Honestly, I even prepared a blog about how horrible that experience was. Plenty of mysterious flaws, errors, and weird limitations such as the restriction of running puppeteer in azure websites.

However, I also have to admit that I received superb customer support, plus we solved everything in the end. I can imagine how immense the cloud’s complexity could be, and my rambling post would not have brought any value to my readers. Therefore I decided not to publish it for good.

Classic ASP

One of my good clients wanted to migrate the old server of 600+ classic ASP web sites (yeah, Visual Basic for Applications) to a new server. They asked me to help and to carry out the migration. This task, besides others, also included minor modifications of the old ASP project.

It was an old, really old, but highly successful project, and it still works! However, it was written as it was typical for software in those days — global state everywhere, lack of proper stacktrace in case of error, etc.

From now on, I am more than ever grateful for the new technology and modern approaches we have in this age and day. We, as an industry, did a huge step towards better software, and sometimes it is good to remind!

Format specifications

Every year I spend some time on a kind of “edge” topic for me. Last year I was amazed by Bartosz Milewski and his course Category theory for programmers.

In the year 2020, I discovered Hillel Wayne’s work.

I had not heard anything regarding a formal specification before, so his book was super greek to me. But it turned out to be a fascinating subject to study.

Additionally, his articles went very often pretty deep into some interesting concepts. I especially like his post about “constructive vs. predicative” data. I am firmly convinced that his book or his posts are precious to almost every developer.

Covid-19

Of course, it is impossible to make no mention of Covid-19. Experiencing this crisis was my most important lesson in 2020.

Coronavirus has made me realise that our economy is unbelievably complex and also somehow fragile. It is interconnected in a way I have not seen before.

Additionally, I started to value the work of people on the frontline far more than before! Compared to them, our work does not seem as important or critical as I have previously thought :). That was probably the most relevant takeaway from the last year.

So please, everyone, take care. I hope the year 2021 turns out to be the best year of your life. Happy new year!