Daily Distractions: SpaceChem

SpaceChem

Last week, I stumbled upon SpaceChem, an indie game where you play the role of a reactor engineer sent to various planets to turn harvested raw materials into more useful products.

What’s really great about this game is that you are practically programming the “reactors”. Not only does it dabble upon both digital design (clock timing, implementing state handlers from scratch) and software development (performance tuning, refactoring), missions that require you to connect multiple reactors also make the player learn supply chain management.

I won’t post any videos since it will spoil the joy of making your own solutions to the missions. I suggest you go grab the demo here (available on Windows, Linux, and Mac) and try it out yourself.

Refactoring

Refactoring

Refactoring is a term you’ll hear thrown around a lot in software engineering discussions. If you’re unfamiliar with the term, you might assume based solely on the content of those discussions that it’s a mystical advanced programming technique known only to experienced developers.

But what exactly is refactoring?

Continue reading “Refactoring”

Quick Review of the Best SE Books

Code Complete 2

The most annoying part about passing by the Computer section of bookstores is when you realize that all of the books in the bookshelves will be obsolete in 5-10 years. This is why serious software engineers prioritize books on processes and methodologies over books on tools.

One guy (Jurgen Appelo) compiled a list of the best of SE books based on “1) number of Amazon reviews, 2) average Amazon rating, 3) number of Google hits and 4) Jolt awards”. Think SE version of Personal MBA.

Below the cut is the top ten. I’ve included my own mini-reviews for the books that I’ve already read.

Continue reading “Quick Review of the Best SE Books”