Archive for the 'programming' Category

Music and Design Patterns

Monday, March 24th, 2008

Jake Voytko examines the overlap between software and songs in Music and Design Patterns.


Chord changes aren’t represented in the core notation/language of the music, but you can use musical notation to spell out changes. You can also use shorthand languages to design the music. The sentence “12-bar in Bb, 2-5-1 turnaround, on my lead” gives away none of the implementation details (voicings/melodies, etc.,) yet the song is written in a breath.

Design patterns act the exact same way for programmers. They are, at heart, a common framework by which programmers can discuss a design. They can spend less time focusing on minutiae and more time discussing design and code.

Your Next Skill

Monday, March 24th, 2008

It’s nearly impossible to stay current in the world of technology. Today’s hot skill is yesterday’s irrelevant resume line. Picking your next language or framework is not an easy decision. How do you know where to invest your time? What should you really be learning next? Scott Hackett recommends something universal, but oft overlooked, in The Next Programming Skill You Should Learn. In short, “Learn to Write Well.”

Writing skills will last you a lifetime, though. You will always benefit from it, regardless of what language or technology your use, or whether you’re even a programmer or not. Good writing skills are universal and will never be replaced.

The ability to communicate clearly and effectively not only increases productivity and creativity between developers, but also with end-users, customers, and clients. Your skills are only valuable if you can articulate them.

16 Languages

Thursday, December 6th, 2007

Paul Stansifer is learning 16 languages, and spending 16 days with each one. His itinerary is as follows: Smalltalk, FP, Ada, Python, OCaml, BrainF***, i86 assembly, Prolog, Erlang, Forth, D, Lazy K, Haskell, FORTRAN, Lua, and Scheme. You’ll be able to find all of his work in the 16 Languages code repository. Be sure to follow along for interesting insights and epiphanies into some of these useful, and not so useful, languages.

Rewriting for the Moon

Monday, October 29th, 2007

In Zen in the Art of Rewriting, Raganwald wants to give us the moon, but can only manage a tattered robe. Good writing, like good software, requires rewriting. It can be a difficult and time consuming job with often invisible results.

Helpful Habits

Sunday, October 28th, 2007

Alexey Radul details the Programming Habits that, as he describes, are essential to the success of any software, sufficiently easy to describe, and not known and loved as universally as they should be. He touches on Version Control (always, and from the start), Builds Systems (automate everything), Test Suites (test everything), Code Reviews (two heads can be better than one), Refactoring (don’t be afraid), and Code Style (have one).

These are great reminders for those who are tempted to let good practices slip, and also a great introduction and justification for those just starting to dabble in the world of software development. Imagine if everyone started off by using version control and test suites?

Get Refactored

Monday, October 1st, 2007

RefactorMyCode.com lets you submit a code snippet for scrutiny by fellow programmers. See if your hard work can stand up to the rest.