November 30, 2014

“Rock Star” Programmers

I've finally realized just what, exactly, so gets up my nose when I see organizations advertising for “rock star” programmers. To understand you need to cast your mind back (assuming it then existed) to 1971 (when I was in my first decade as a programmer) and Gerald Weinberg had just produced The Psychology of Computer Programming, in which he concluded that over-identification with the code one produced could, in interesting ways, be counter-productive.

He observed that programmers who were reluctant to share their code tended to hold on to false views of what might be causing issues rather longer than those who were open to review and discussion. My own development as a programmer was greatly aided by this approach, and at university a couple of close friends in particular discussed every aspect of the code we were creating.

Forty years later Weinberg's “egoless” approach, in which mistakes are accepted as inevitable and reviews are performed in a collegial way, remains the sanest way to produce code. Given that computer programming is fast becoming a mainstream activity it seems perverse to deliberately select for ego when seeking programming talent, since the inevitable shortfall in humility will ultimately work to undermine the rock star's programming skills.

When I think of the best programmers I know, the foremost characteristic they share is a modesty about their own achievements which others would do well to emulate. So, can we please dispel the myth of the “rock star” programmer? The best programmers can't be rock stars. Rock star egoism will stand in the way of developing your programming skills.

November 17, 2014

A New Python Class

The Python installer is downloaded over a quarter of a million times a month. The Python user base has grown hugely in the last five years, and continues to swell as new fields of endeavor realize its advantages. So, inevitably and necessarily, has the number of introductory classes, and much excellent introductory material is available at little or no cost for self-study.

This is all as it should be. Open source languages should be accessible to all, modulo the complexity of the technologies involved. Nowadays, someone with a year or two's programming experience ought to be able to find enough material on the web to get up to speed in Python. A free account with lets you develop in Python on any Internet-connected Flash-capable* browser, and there are myriad other ways of gaining access to Python on anything from an iPad to a supercomputer.

Once you have grasped the basics, however, where do you go from there? If  you have done some Python programming you and/or your colleagues may be interested in our Python Skills Lab with Steve Holden in central London on 9 December 2014. This is intended to give you a day in which you can focus on improving your coding style and enlarging your mastery of Python idioms, learning new aspects of the language with a view to increasing your productivity as a programmer.

Once you sign up we will contact you with an informal training needs analysis to determine your specific interests. Class size is limited to ensure that everyone gets individual attention. The primary materials are the same as used in Steve's Intermediate Python: Practical Techniques for Deeper Skill Development video series.

Further material will be developed in-class as necessary, and added to the Github repository for everyone to benefit from. We are also optionally bundling two hours of remote consulting to allow you to capitalize on your investment and power through problems that would otherwise have held your project up.

Because this is a new format for us we are reducing our prices by 40% as an introductory offer. See you in London, we hope!

* See the comment from PythonAnywhere's Giles Thomas below [updated 11/17/2014]