Things Every Programmer Should Know (Languages)

As part of a con­tinu­ing series*, O’Reilly reques­ted “pearls of wis­dom for pro­gram­mers” from lead­ing prac­ti­tion­ers of the craft, pub­lish­ing the responses. The end res­ult is the O’Reilly Com­mons wiki, 97 Things Every Pro­gram­mer Should Know.

The con­tri­bu­tions that appear in the final, pub­lished book are freely avail­able as are sixty-eight fur­ther con­tri­bu­tions that didn’t make it.

This from Don’t Just Learn the Lan­guage, Under­stand its Cul­ture:

Real­iz­ing how inter­woven for­eign words and phrases gave [James Joyce] new ways of express­ing him­sel­f is some­thing I’ve kept with me in my pro­gram­ming career.

In their sem­in­al book, The Prag­mat­ic Pro­gram­mer, Andy Hunt and Dave Thomas encour­age us to learn a new pro­gram­ming lan­guage every year. I’ve tried to live by their advice and through­out the years I’ve had the exper­i­ence of pro­gram­ming in many lan­guages. My most import­ant les­son from my poly­glot adven­tures is that it takes more than just learn­ing the syn­tax to learn a lan­guage: You need to under­stand its cul­ture. 
[…]

Once you’ve learned the ropes of a new lan­guage, you’ll be sur­prised how you’ll start using lan­guages you already know in new ways.

Some might argue that Fin­neg­ans Wake is unread­able, while oth­ers applaud it for its styl­ist­ic beauty. To make the book a less daunt­ing read, single lan­guage trans­la­tions are avail­able. Iron­ic­ally, the first of these was in French. 
Code is in many ways sim­il­ar. If you write Wakese code with a little Python, some Java, and a hint of Erlang, your pro­jects will be a mess. If you instead explore new lan­guages to expand your mind and get fresh ideas on how you can solve things in dif­fer­ent ways, you will find that the code you write in your trusty old lan­guage gets more beau­ti­ful for every new lan­guage you’ve learned.

I guess anoth­er could be Don’t Rush?

*Oth­er books in the series (full-con­tent wikis): 97 Things Every Soft­ware Archi­tect Should Know and 97 Things Every Pro­ject Man­ager Should Know.

2 thoughts on “Things Every Programmer Should Know (Languages)

  1. Paul

    Learn­ing to use a pro­gram­ming lan­guage well takes time. Years of full time work in fact. In prin­ciple, its no dif­fer­ent to learn­ing fore­gin spoken lan­guages – and you wouldn’t try a new one of those every year would you?

    Ser­i­ously?

  2. Lloyd Morgan Post author

    Paul, you’re right (of course).

    Pro­gram­ming lan­guages and for­eign spoken lan­guages are fairly ana­log­ous, and as any­one 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 (pro­gram­ming) lan­guage in a year, but as the quote above sug­gests: there’s a big dif­fer­ence between know­ing the syntax/grammar and vocab­u­lary of a lan­guage and actu­ally being able to ‘speak’ it–to mas­ter it.

    I guess I should have edited the quote to this:

    My most import­ant les­son from my poly­glot adven­tures is that it takes more than just learn­ing the syn­tax to learn a lan­guage: You need to under­stand its cul­ture. 
[…]

    Once you’ve learned the ropes of a new lan­guage, you’ll be sur­prised how you’ll start using lan­guages you already know in new ways. […]

    If you instead explore new lan­guages to expand your mind and get fresh ideas on how you can solve things in dif­fer­ent ways, you will find that the code you write in your trusty old lan­guage gets more beau­ti­ful for every new lan­guage you’ve learned.

    So… mas­ter one lan­guage (at a time), but explore oth­ers cas­u­ally to find new ways to express your­self.

    How does that sound?

Comments are closed.