Digests » 318
Manning Publications is always looking to help developers grow. It doesn't matter what your background is, there's something for you to discover. This week, you can get 40% off your entire Manning.com order, and we've picked a selection of books that will really help you become a better developer, no matter your background!
this week's favorite
Yesterday I was pairing the socks from the clean laundry and figured out the way I was doing it is not very efficient. I was doing a naive search — picking one sock and "iterating" the pile in order to find its pair. This requires iterating over n/2 * n/4 = n2/8 socks on average.
This article goes back to the early years of the web to understand why dynamic websites are so prevalent today. Then, we consider what static websites bring in terms of performance, editing speed, and organic results.
Jonathan Blow of “The Witness” fame likes to talk about just typing the obvious code first. Usually it will turn out to be fast enough. If it doesn’t, you can go back and optimize it later. His thoughts come in the context of working on games in C/C++. I think these languages, with modern incarnations of their compilers, are compatible with this philosophy. Not only are the compilers very mature but they are low level enough that you are forced to do things by hand, and think about what the machine is doing most of the time, especially if you stick to C or a ‘mostly C’ subset of C++. However in most higher level languages, there tend to be performance traps where the obvious, or idiomatic solution is particularly bad.
Ideas may fall short if they are fallacious and software engineering is full of ideas. Lets break some of the fallacies down to make ourselves better engineers.
Code reviews can be contentious. I had an incredible experience giving my first conference talk titled “Unlearning Toxic Behaviors in a Code Review Culture”at AlterConf. I went into the experience preparing for any pushback and criticism that I might receive while encouraging software teams to create supportive code review environments.