Concise communication is an indispensable tool for helping others easily understand your ideas. In this post, I’ll discuss how concision helps convey meaning and unburdens your audience.
Software development is notoriously counterintuitive, especially if you’ve never written any code. In this post, we’ll explore some common misconceptions along with pieces of wisdom from experts in the field.
I recently did a presentation on programming best practices. In this very brief post, I’ll share the slides and a few notes from that presentation.
I am infatuated with chess. I’ve known the basic rules for as long as I can remember, but had not gained an appreciation for the game’s nuances until recently. The game designer in me was hooked by the game’s endless complexity, and how it arises out of a set of simple rules. The software developer in me was intrigued by the game’s algorithmic nature.
With Apple’s WWDC keynote scheduled for early next week, everyone seems to be guessing what the new features of iOS and OSX will be.
For the first post in this series, read here.
In this post, I’ll start to get into the specifics of how to actually write a translator. I wouldn’t recommend doing the entire thing by hand. Most of the complicated and time-instensive work can be mitigated by using free tools. These types of tools are called ‘parser generators’ or ‘compiler compilers‘.
As a programmer, I often find myself succumbing to the allure of algorithms. There’s nothing quite like expanding your mental horizon by learning a new concept or pattern.
Some of the most powerful and elegant algorithms are the ones used in language translation. This is the same process your compiler uses to translate a human-readable programming language into machine code. You can learn to harness these same algorithms to create your own domain-specific language.