6 Git Aha Moments

When I switched jobs four years ago, I went from using subversion (svn) to using git as the version control system. Even though I am a pretty quick learner, it took me a quite a while to really understand git. I read a lot on how git works, but even so, I didn’t always realize what the implications were for how to use git. Here are six big “aha moments” I had on how to use git. Continue reading

Is Manual Testing Needed?

For the past few years, I have heard many people advocating using only automatic tests. For example, if all the automatic tests pass, then the code should automatically be deployed to production. I have always performed a bit of manual testing before feeling confident about my code. So for the past year I have paid extra attention to bugs I have found manually testing my own code. My conclusion: manual testing is still needed. Continue reading

Exercises in Programming Style

In the book club at work, we recently finished reading Exercises in Programming Style by Cristina Videira Lopes. The book consists of a simple program implemented in 33 different programming styles. It is a great way of showing the different styles, and the book was quite popular in the book club. The book is relatively new (it was published in 2014), and I don’t think it is as well-known as it deserves to be. So here is a summary and review of it. Continue reading

Programming for Grade 8

For the past two months, I have been helping my son’s grade 8 class to learn to program. All students wrote Python programs and got a feel for what programming is. This post has details on how we organized the course, code examples and lessons learned. Continue reading

6 Years of Thoughts on Programming

It is now more than 6 years since I started blogging about software development. It has been a great experience, and I thought I would reflect on what I have learnt. So here are my reasons for writing about programming, a bit on my process, and some statistics. Continue reading

Benefits of Continuous Delivery

During my career as a software developer, I have seen the release frequency increasing steadily. When I started, it would take 12 to 18 months for new features to reach the customer. Years later the frequency increased, so deployment to production happened every three weeks. For the past two years, we have been using continuous delivery at work. This means that as soon as a feature is ready (implemented, code-reviewed and tested), it is deployed to production. Continuous delivery is by far the best way in my opinion, and here is why: Continue reading

More Good Programming Quotes, Part 2

A good programming quote captures an insight about programming, often in a funny way. Many quotes are quite famous, but I like ones that are a bit less well-know. A while ago, I listed some favorites. Here are more good quotes I have found since then. Enjoy! Continue reading