Things Every Programmer Should Know (Languages)

As part of a continuing series*, O’Reilly requested “pearls of wisdom for programmers” from leading practitioners of the craft, publishing the responses. The end result is the O’Reilly Commons wiki, 97 Things Every Programmer Should Know.

The contributions that appear in the final, published book are freely available as are sixty-eight further contributions that didn’t make it.

This from Don’t Just Learn the Language, Understand its Culture:

Realizing how interwoven foreign words and phrases gave [James Joyce] new ways of expressing himself is something I’ve kept with me in my programming career.

In their seminal book, The Pragmatic Programmer, Andy Hunt and Dave Thomas encourage us to learn a new programming language every year. I’ve tried to live by their advice and throughout the years I’ve had the experience of programming in many languages. My most important lesson from my polyglot adventures is that it takes more than just learning the syntax to learn a language: You need to understand its culture. 
[…]

Once you’ve learned the ropes of a new language, you’ll be surprised how you’ll start using languages you already know in new ways.

Some might argue that Finnegans Wake is unreadable, while others applaud it for its stylistic beauty. To make the book a less daunting read, single language translations are available. Ironically, the first of these was in French. 
Code is in many ways similar. If you write Wakese code with a little Python, some Java, and a hint of Erlang, your projects will be a mess. If you instead explore new languages to expand your mind and get fresh ideas on how you can solve things in different ways, you will find that the code you write in your trusty old language gets more beautiful for every new language you’ve learned.

I guess another could be Don’t Rush?

*Other books in the series (full-content wikis): 97 Things Every Software Architect Should Know and 97 Things Every Project Manager Should Know.

Tags:

Comments

2 responses to “Things Every Programmer Should Know (Languages)”

  1. Paul

    Learning to use a programming language well takes time. Years of full time work in fact. In principle, its no different to learning foregin spoken languages – and you wouldn’t try a new one of those every year would you?

    Seriously?

  2. Paul, you’re right (of course).

    Programming languages and foreign spoken languages are fairly analogous, and as anyone who has mastered either can attest; it takes a hell of a lot longer than a year to do so.

    Yes, you can ‘learn’ a (programming) language in a year, but as the quote above suggests: there’s a big difference between knowing the syntax/grammar and vocabulary of a language and actually being able to ‘speak’ it–to master it.

    I guess I should have edited the quote to this:

    My most important lesson from my polyglot adventures is that it takes more than just learning the syntax to learn a language: You need to understand its culture. 
[…]

    Once you’ve learned the ropes of a new language, you’ll be surprised how you’ll start using languages you already know in new ways. […]

    If you instead explore new languages to expand your mind and get fresh ideas on how you can solve things in different ways, you will find that the code you write in your trusty old language gets more beautiful for every new language you’ve learned.

    So… master one language (at a time), but explore others casually to find new ways to express yourself.

    How does that sound?