May 5, 2013
Music By Programmers - Week #1 Update
The album to raise money for maths and programming workshops at Bletchley Park and The National Museum Of Computing has been out for a week now.
And what a week it's been! Things kicked off on the previous Friday with an article that ended up being the BBC Tech News number two story, getting a link on the news home page, which generated a lot of interest.
Then on Monday we were assisted by a generous tweet from Stephen Fry.
Together with bags of other social media activity, and coverage by PC Pro, The Register and other noteworthy websites, the buzz was enough to propel Music By Programmers into the download bestseller charts on Amazon, iTunes and Google Play.
The limited edition CD went on sale around lunchtime on Monday, and sold out on Tuesday.
The week ended with interviews for other web news sites, as well as BBC local radio, about these computer programmers who were "storming the charts".
Naturally, the web having the short attention span that it does, we've tailed off quite spectacularly since Friday - though as of writing we're still in Amazon's Top 40 Dance & Electronica albums. As the saying goes, we've had our 15 megabytes of fame. Now the real work starts!
Of course, being pop stars for a week isn't really the point of it all - gratifying though it is to see something you've helped create up there among the Daft Punk's and the will.i.am's for a short while. Something to tell the grandchildren. (If I never have granchildren, I'll borrow someone else's and tell them.)
A huge "thank you" if you bought the album and spread the word. With no marketing budget and no label behind us, we're relying completely on word-of-mouth. Without your support, none of this would be possible.
How this all translate into sales, and therefore money raised, we shall have to wait and see. It can take months to get sales figures - and money - from the online retailers. My feeling is that we're well on our way to achieving our target, though.
But I doubt we're there yet, so we still need your support to make our goals happen. If you've not bought your copy yet, please consider downloading it today. Roughly £4-5 from every sale goes directly to these educational projects, so every download counts.
April 29, 2013
Music By Programmers - Help Start A Programming Club
If you've not heard yet, myself and five other programmer-type dudes have been working on an album of electronic music to raise the money to start a computer programming club at The National Museum Of Computing and parent-child maths workshops at Bletchley Park.
The album, Music By Programmers, goes on sale today. You can download it from iTunes, Amazon and Google Play.
Every penny of the profits goes directly to these projects, and every download is essentially a donation of £4-5, depending on where you buy it. Be assured: every download makes a difference.
You'll also be able to buy a very limited edition CD version, featuring bonus tracks in a spiffy full-colour digipak from the Bletchley Park online shop later today. Only 50 of these exist.
Your support is vital to making these projects possible. If electronica's not your cup of tea, you can donate instead. There's a link on the website.
You can find out more by visiting the Music By Programmers website.
April 6, 2013
Science & SoftwarePairing with my apprentice-to-be, Will, on Friday, we got to chatting about the increasingly intimate relationship between software development and science.
i was reminded of something I heard at university (back in the days when we wrote our dissertations with quills). A PhD student who I hung out with had been working on a large-scale simulation of atoms in a crystal lattice to try and crack the problem of why washing powder clogs. His code was written in FORTRAN and was designed to run on the HP minicomputer - a monster of a computer, almost as powerful as my Android phone!
His research was building on work done by a previous PhD student, who had also written code to simulate the same crystals. His PhD was predicated on the assumption that he'd be able to take the existing code and adapt it for his research - in much the sdame way that an algorithm to traverse a tree and search for something could be adapted to traverse the same tree and search for something else.
Problem was that the existing code was impossible to understand, and the person who wrote it was long gone. This person lost several months rewriting the simulation from scratch.
Now, this was more than two decades ago. Much physics was still done with pen and paper or in the lab. But, increasingly, more and more research was done almost entirely using software to either search through large amounts of data collected from experiments, or to simulate physical systems that would be too expensive - or even impossible - to recreate in the lab.
I'm told by friends who carried on with physics that software-based research is much more common these days. And they often share anecdotes about the trouble software causes them that sounds jolly familiar. I wouldn't be surprised if a lot of research time and money isn't being lost to the kinds of problems we come up against daily in business when software's involved.
When I studied physics, they encouraged us to keep a diary of the lab work we did. The idea was that if, for example, we got run over by a bus, someone else could read our lab diary and continue our research. Hoorah - progress continues unabated.
The lab diary codifies your method. These days, I suspect, the method may - in at least some key cases - be codified as software. If you can't understand the software, you can't understand the method, and you can't continue the research.
Similarly, if the software is buggy, then your method is buggy, and your results and their conclusions are suspect. Cue faster-than-light neutrinos. The interactions of subatomic particles at CERN are interpreted by software. My first instinct on hearing the sensational news was "I'd like to read their code".
As science becomes more and more reliant on software, the integrity of our science will rely more and more on the integrity of our software. As yet, this is a fringe topic in physics. Universities may teach computer programming and computational maths, but they don't really help or encourage students to write software to a high-enough standard.
I can't help feeling that some element of the discipline of writing good software would benefit science students. But a science degree is already a big ask in terms of time commitment. Throwing in a day a week of "software craftsmanship" or "software engineering" may be the straw that broke the camel's back.
I do think, though, that the model of apprenticeship I'm proposing to trial with Will (and A.N.Other, if I can find the right person) could present a solution.
This is something I'm going to give more thought to.
March 20, 2013
Music By Programmers Release Date, April 29thJust a quick post for those of you who want to support maths and programming education, or who just like electronica.
The official release date for the Music By Programmers album is Monday April 29th.
It'll be available for download from all the usual outlets (iTunes, Amazon etc), and every penny of the proceeds will go directly towards parent-child maths workshops at Bletchley Park and programming workshops at The National Museum Of Computing.
These are very worthwhile programmes, and your support is vital to helping more children get to grips with maths and computing.
The new web site's up, so you can find out more and hear track previews at http://www.musicbyprogrammers.com
March 9, 2013
Music By Programmers - Raising Money To Educate New ProgrammersAs some of the more eagle-eyed among my Twitter brethren may have noticed, for the last few months I've been up to something in rare spare moments.
Finally, I can reveal what it is.
Over the last 4 years, I've spearheaded various shenanigans to raise money for the Bletchley Park Trust, and I've also been plenty busy rattling cages on the subject of getting kids programming.
I'm also a bit of an amateur musician (very amateur, some might say).
My latest wheeze has been to combine all these passions of mine, and the end product is called Music By Programmers.
Six software developers - real ones, coding day-to-day - who make music in our spare time have recorded a compilation album of electronic music which evokes that classic era when the likes of Kraftwerk, Jean Michel Jarre and Tangerine Dream were at their peak. When I began learning to program, this kind of music was always on in the background; the soundtrack to a golden age of kids learning to code.
We've got nine tracks from Chris Whitworth, Yuriy O'Donnell, Peter Camfield, Lance Walton, Brian Hogan and me. And, even if I say so myself, they're jolly spiffy.
Here's a sneak preview:
Made using only software (including the mastering, with Nagasaki Sound in Las Vegas generously donating their time and considerable expertise to make it sound - y'know - proper professional, like), we're going to try and sell as many downloads of the Music For Programmers LP as we can, and every penny of the profits will go directly to educational programmes at The National Museum Of Computing and Bletchley Park.
This is very new territory for all of us, and we have no idea how much we might make, but we've set a target to sell 2000 downloads and raise £10,000 in total. This may prove to be naive, foolish optimism. Or it may be we're underestimating the potential audience lurking out there. But, having raised similar sums several times before, we feel this might be a realistic goal.
£5,000 could sponsor programming events for kids at TNMOC, or codebreaking camps at Bletchley Park. It could buy a crate-load of Raspberry Pi's, or build web-based cryptography games for schools to use. Heck, we could do some genuine good with £50! It all helps.
The album will be released as a download in late April, with a bit of a fanfare to let the world and her husband know it's available, but in the meantime, we could really use some help spreading the word and building a buzz - well, you know how it is with this "Pop Music" that they have nowadays.
So, please check out the preview video, follow @ProgrammerMusic on Twitter and/or like us on Facebook.
Please spread the word - re-tweet, share, tell your friends, get it tattooed on your private parts and wave it at visiting royalty*, paint it on the side of passing asteroids**, and whatever else you can do to help us get the word out.
If we can reach the right people and meet our target of raising £10,000, that would do a lot of good for a lot of children. And you get an iron-clad excuse to do some cheesy 80's dancing, too. You can even roll up the sleeves of your jacket (the one with the giant shoulder pads), if you like. That's a Win-Win, in my book.
* Don't, obviously
** No seriously, though - don't
March 7, 2013
Intenstive Test-driven Development, London April 20thThe world's best-value public TDD course is back!
I'll be running an intensive TDD workshop in central London on Saturday April 20th.
Previous public TDD workshops have sold out, and folk have traveled from as far afield as Russia and Dubai to take advantage of the amazingly low £99 price tag.
You can find out more and book here
December 23, 2012
Lowering The Bar Is Not The AnswerJust time for a pre-Xmas rant before I am overcome for the holidays by gin and marzipan.
I keep seeing more and more adverts for Learn To Code-style training courses. While I'm delighted at this new found interest among people to learn how to write computer programs - something I wish everyone would have a go at at some point in their lives - I'm also very concerned about some of the unrealistic expectations these courses seem to be setting.
Putting aside that two of those "programming languages" were HTML and CSS, the implications were that people who attended this course now understood web development. Well, hmmm.
Other courses charging thousands of dollars or pounds claim they can teach you to be a software developer in 10-12 weeks. Again, hmmmm. I haven't met a competent software developer who hasn't at least been programming for a few years.
We've been here before, of course. During the last dotcom boom, employers were desperate to find web programmers so they could cash in on the bubble before it inevitably burst. We'd interview a hundred developers and find maybe one or two who really could wak the walk. If you need 10, then the solution is to interview a thousand. But this takes time; too much time for the "must have it now" dotcom fanatics.
A competent software developer is a million miles from "Hello, world!" More accurately, a competent software developer is several years and a bunch of non-trivial projects beyond "Hello, world!" Taking a cooked meal and adding a bit of salt to it does not make one a chef.
Anyway, the bubble burst, but thousands of these non-competent programmers remained. And remain to this day; clogging up the profession, inundating employers with their CVs and drowning out the competent developers (who are often, sadly, less inclined to make the kinds of naive boasts that win jobs.)
Claiming that you can teach a room full of total newbies to program - even to a basic level - in three languages in a day is also a very naive boast. As is claiming you can turn someone into a software developer - even an entry-level one - in 3 months.
There is no shortage of software developers. Consider that not all developers are equal, and some developers achieve more than others. In reality, 80% of the working code in operation today can probably be attributed to small proportion of us. The rest just get in the way. If anything, if we thinned down the herd to just the stronger programmers, more might get done.
What we need, as a profession and for the sake of our economy, is better software developers, doing better work.
Lowering the bar is likely to be counterproductive.
November 6, 2012
Michael Feathers' Code History Mining Workshop, Jan 14Just a quick tip for learning-hungry developers out there.
Michael Feathers will be running his code history mining workshop in London on Jan 14th. Highly recommended.
September 25, 2012
Programming Outside Of School: Time To get Our S**t Together?Last year, in the course of organising various related activities, I had the chance to informally straw-poll about 60 head and deputy-head teachers to gauge the general mood towards including computer programming in the classroom.
I learned then that support for programming in schools was low - less than 25% of schools had any desire or intention to include it in their curriculums.
Over the last year I've been the voice in the wilderness, warning activists that we were in for a disappointment if we thought schools were the answer.
A recent study by National Foundation for Education Research suggests my 60 data points were no aberration. If anything, they may have been an optimistically skewed sample.
The study found that only 14% of ICT teachers who responded considered including programming in the computing curriculum a high priority. A worrying 30% considered it a low priority, and 12% no priority at all.
As my own experience suggested, one significant factor might be their ability to teach programming. The study didn't ask ICT teachers if they could program, but asked how confident they felt about teaching it, a statistically interesting percentage replied that they had low or no confidence.
Teachers who go on short programming courses tend to find that their initial confidence - bouyed by a disturbing trend for overrating their achievements by the course instructors (possibly for commercial gain - who wants to pay hundreds of pounds to go on a course that ends with "well done - you are now slightly less clueless"?) - gives way to the realisation that there's actually a hell of a lot to learn, and even in relatively simple applications, a heck of a lot you need to know just to make a modern computing device do something vaguely useful.
Whether it be through simplistic optimism or cynical dumbing-down, the barriers to getting teachers teaching real programming have been grossly underestimated.
It may be cynical pragmatism that leads some ICT teachers to say programming's not important. Yes, we have a fair share of people who would prefer to argue that certain skills aren't important, rather than admit they lack those skills and start a long journey to gain them. But that's doubtful in many cases.
More likely is that ICT teachers who rate programming as not a high priority just don't get it. They need to look around at the world as it is now, and imagine the world that's emerging. Be it in the workplace, on the roads, in the hospitals, in the science labs, in concert halls and recording studios, in TV and radio stations, in our own homes and in the very classrooms they're looking out from, software is becoming more and more a core part of everyday life.
In the future, little new will happen in so many walks of life - science, engineering, manufacturing, commerce, medicine and healthcare, entertain and the arts, transport, energy - without someone writing new software. Believe it or not, you cannot download every conceivable computer program possible from the App Store. They haven't been written yet.
And let's not forget that the software that's already been written tends to need to evolve. Would Tesco be as competitive today if they had to rely on code written in the 1960's?
The history of human civilisation is the history of ideas, and software is literally made of ideas. Shield children from that, and you risk excluding them from a foundational ingredient of the 21st century.
A nation that can use software but can't create it will be every bit as hamstrung as one that can read books but can't write them. You think I'm exaggerating?
But, as I've been saying all along, it seems likely that school isn't going to be the answer. I come from a generation that taught themselves to program at home. There was only one teacher at my school who could program. He started a club for it, which ran for 25 years until his retirement last year. Nobody has taken the mantle from him, and I was informed that the club closed. My school has no programming or computer science - let's not forget, not the same thing - on its curriculum, and, judging by their complete disinterest in discussing it, no plans to include it.
So, it's on to Plan B (or should that be Plan A++) for the majority of children who may not get the opportunity to learn programming at school. What can we do for them?
Well, one option is to ignore these findings and impose programming on them. Good luck with that one. I'll have no part in it.
Another option might be to form an unholy alliance between industry, educators, media and enthusiasts to organically grow a market in "programming for kids" that can exist independently of the school system.
Let's be clear, in such a market, cynicism and greed will be a problem. Already we see people and businesses mercilessly exploiting the recent rash of publicity for money, media exposure and influence. Many of them can't actually program a computer themselves. But they can think of a cool name, and knock up a decent-looking logo and a Facebook page. And these days, that seems to be enough to establish one's "expertise" in most domains.
We live in an age where announcing you're going to do something seems to count with equal weight to actually doing something. Let's face it, some of these people just want to get their name's in the papers. They'll likely-as-not actually do nothing when push comes to shove. I've had first-hand experience of this, when I naively agreed to feature an experimental pilot that hadn't even started in a local TV news report. Unsurprisingly, a year later nobody's followed up to find out how it turned out. Poeple at home may have been curious to know that the school featured, for example, dropped out as soon as the camera stopped rolling.
But what they do achieve is to create confusion and to obstruct legitimate activism, like Computing At School, who've been quietly slaving away over this problem - building a curriculum, building support, lobbying government, raising money - for a few years.
I fear this may have also contributed to the low percentage of ICT teachers who feel programming's of high importance. Frankly, I don't know what's going on half the time myself. It's just a disconnected, uncoordinated mess once you get outside of the relative calm of the CAS bubble. It's a testament to the likes of Simon Humphreys and Simon Peyton-Jones that they maintain forward momentum, with just so many people outside pushing and pulling in different directions.
To quote Douglas Adams on the progress of his Hitchhiker's movie: it's like trying to cook a steak by having a succession of people come into the room and breathe on it.
All the hooplah about computing in schools, and Michael Gove's subsequent scrapping of the ICT curriculum with no immediate workable replacement, has left a vacuum, and all manner of crap ranging from the well-meaning-but-misguided to the bleakly cynical has rushed in to fill it.
For computing in school, my wish is that - rather than everybody going off and doing their own thing - we should all get behind CAS and push. If you won't do that, then shame on you. Seriously. Now's not the time for reinventing wheels or carving out competing empires, especially if they're little more than empires built on smoke. It just detracts from a serious effort being made by serious people who have worked seriously hard on it for a serious amount of time.
But now it seems clearer than ever that CAS isn't enough. What about the schools who don't view programming as a high priority, or as no priority at all? The next potential Ward Cunningham or Steve Freeman or Dan North might be languishing in a programming-free zone.
Personally, I think it's time to get our shit together on this. But I've suffered knock-back after knock-back over the last year as wave after wave of media-hyped nonsense has kept the cat continually among the pigeons. Nobody seems to have any idea what's going on now. Least of all me.
Suggestions on a postcard, please.
September 4, 2012
London Global Day of Code Retreat is Not a Code RetreatJust FYI, Corey Haines informs me that to call our free all-day coding event on Dec a "code retreat" we must follow the strict format prescribed. Corey's made it clear that the Code Retreat format is aimed at beginners, which the Team Dojo certainly isn't, so if we do the Team Dojo, we can't call it a "code retreat".
No change is required on your part. If you're booked for the Team Dojo on Dec 8th, you're still booked and it's still happening, but it's not part of the Global Day of Code Retreat. If you're looking to participate in that specifically, I'm sure someone else will probably organise one at a different London venue.
PS. We have just 2 places for the Dec 8th Team Dojo. If you fancy more of a challenge and want to flex some of the collaborative muscles that other coding workshops don't rach, you can register at http://teamdojo2012.eventbrite.com/