in Blog

Should you learn to code?

I was never a born project manager. I didn’t have the organisational skills, the discipline or indeed a sufficient dislike of my colleagues to want to inflict upon them the highlight reports, gantt charts and benefits realisation plans needed for Proper Projects. But in my fairly brief stint as formal Project Manager, I did have one knack, and that was getting on quite well with developers. I can only think that the reason for this was that I can relate to the work they do, have an idea of what is easy and what is hard, and respect the elegance of the craft – because I dabble in code myself.

My ears pricked up when Alistair pointed me to Mercedes Bunz of The Guardian asking: ‘Will journalists of the future need to know how to code?’:

Up until now, as a journalist you worked with information, researching facts and figures which then you passed on to the reader. However, in a digital world there are more platforms you can use to convey that information – think of maps or mobile applications, augmented reality. And to be able to do that you will have know how to code.

I think it’s an interesting thesis, even if the scenario of journalists learning Python to develop their own Google-esque apps is pretty hardcore. But I don’t think it just applies to journalists – almost regardless of your role, I think it’s worth learning a bit of code, especially if your academic training has been in hand-wavy social sciences like me.

  1. It helps you think about how everyday processes work: there’s nothing like building your own applications to make you think  logically about how people behave online, and the hidden sophistication of seemingly simple systems like cash machines or website subscription services.
  2. It’s good for your attention to detail and organisational skills: you can be sloppy about how you capitalise words or use punctuation in the real world, but the world of code makes you a more organised, consistent person (n.b. those who know me will laugh at this hubris)
  3. It gives you an insight into why websites work the way they do, and why they break: as a webbie or even just a web user, coding for yourself helps you understand the anatomy of websites, the technologies which come together to deliver them, and gives you some explanations for why they’re ‘being a bit funny today’.
  4. It lets you translate ideas into prototypes: talk is cheap, but if you can turn it into a prototype, you’re already a step ahead – and you can refine your thinking as you build it and get feedback on something tangible, rather than just a brainwave.
  5. It opens up a new world of lifehacks you can build for yourself: whether it’s a way to backup your Twitter account or a to-do list application that actually reflects how you work, being able to write bits of code to save yourself time is neat.
  6. It’s a social* thing: fifteen years ago, I was getting little applications on computer magazine cover disks, and receiving letters back from all over the world via the school register. Now, when I release code I get feedback instantly, along with help, suggestions and improvements, and feel part of something energetic and positive. (n.b. I say ‘social’, but not necessarily family friendly. I’m still squaring that circle :-)
  7. It’s creative and relaxing: I don’t actually get paid to code, so for me there’s something relaxing and challenging in sitting down of an evening to make a new tool or improve something.
  8. It’s good for the career: maybe a bit obvious, but even a small amount of coding capability (real; not just puffed-up for CV purposes) helps you do your job, and get noticed for doing it, generally without antagonising your colleagues. Frankly, bosses like clever bits of digital innovation: it’s worked for me in pretty much every job I’ve ever had, particularly the non-digital ones.

It’s worth putting two caveats on that list of benefits:

  1. Know your limits: the old cliche ‘a little knowledge is a dangerous thing’ is a double-edged sword when it comes to coding. If you believe it, then you’ll never start learning anything. But if you ignore it, you’ll find yourself in dangerous territory (exposed to hackers, losing friends’ data, costing yourself money etc). Strike a balance between the courage to learn, and the humility to ask for help or say you don’t know.
  2. It’s a long way to the summit: ‘coding’ as I’m describing it here is a shorthand for knowledge of a whole range of technologies – all of which are changing over time – which you’ll find you want to develop at least some familiarity with. Of course, you can do some things with just a little practice and knowledge, but unless you focus very narrowly, I don’t think you ever reach a plateau of knowledge – there’s always an infinite amount more to know and potentially keep up with. You’ll be learning forever.

I hear the other side of it, of course: do what you’re good at, and leave the heavy lifting to the professionals, like you would car maintenance or central heating. I think that view gets too much unthinking acceptance, for the reasons above and more. Be proud to be a jack-of-all-trades, master-of-none, I say.

18 Comments

  1. Very much enjoyed your post Steph.

    I wouldn’t ever call myself a coder – right now a bit of html and CSS is my limit – but going under the bonnet from time to time has given me a better idea of what’s reasonable to ask a developer and what isn’t.

    When a dev comes back with “it’ll be ten days guv” I know whether I’m being spun a line or not.

    I agree it’s good for the career. Publishing cos want more skills from fewer people – journalists are expected to turn their hands to video reports, podcast production, tweeting, entrepreneurialism. If you’re prepared to turn your hand to new skills it’ll pay off.

    I haven’t begun to explore your world of lifehacks yet Steph, but maybe this year…

  2. Agree that HTML is a good way to get into things, but I think that EVERYONE really needs to learn some basic programming logic — loops, conditional statements and the like (people who are working with developers on simple projects should probably be able to read code, too.)

    Never sure if things like Yahoo! Pipes or the Mac OS X Automator are a good entry point or not — admittedly one can pull together some pretty good linear processes, but it might be a better idea to get straight into something with a text-based interface!

    Sadly, I’m of the generation of non-programmers who learned their stuff on BASIC — which has really restricted my adoption of object-based stuff…

  3. You pose a really good question and of course that is the strenght of social science being able to recognise that the question is nearly as important as the answer in the pursuit of knowledge.

    I agree with you that some knowledge of coding should be acquired. Now to fess up about my own feeble knowledge of coding. My first taste of coding was back in the old days when Crash magazine would be publish machine code for idiots like me to copy into our 48K Spectrum computers. Then at the end type the magic word ‘RUN’ and presto error in line 1151. I would not know how to solve the riddle and this set in motion my avoidance of coding.

    Now years later coding is about me once again. Pleased to say I am better but only a little. I look after blogs on Apache Roller which requires me from time to time to copy HTML templates (oh I love copying templates) maybe tweak a little code. However most of the heavy work as you put it is done by Logica but being curious and not just accepting all they tell me I have learnt more than I perhaps should. I always were possible ask them how they fixed a certain problem with the HTML code. This I put onto Posterous blog site for my own and others future reference so I don’nt have to keep asking. So I don;nt fear code but doubt if I ever could develop an application (InBoxListening is one favorite)

    (I’ll end my comment here and will put an extended response to the question on my blog: http://dillondeliberating.posterous.com/

  4. 9. It tunes up your “bullshit meter”.

    You’ll sit through presentations from IT suppliers, silently noting the probable nasty hacks, and internal stresses this salesman is spilling at your feet in order to say what he thinks is the right thing to sell their solution to you. All the time you imagine the eye-rolling company engineer sat along-side him.

    When you ask questions, the salesman has to nervously fudge and “get back to you on that one”.

  5. Lovely list.

    I wonder a bit about #2: the logic sounds good but I know so many coders where this doesn’t apply. Perhaps it’s more that it strengthens those good habits amongst people who already are inclined that way?

  6. Very Interesting article Steph.

    I’ve never really been a coder, could never really get the knack of it, even on the old BBC Micros we had at school!

    When i first joined IBM they trained me as a JAVA developer. It was a real challenge for me. Even though I have never used those skills since finishing the course, as i went down a different route – back in 2000 IBM trained all Grads in JAVA regardless – I still rely on the fundamental skills and mindset as I now manage a group of techies who are always coding this, that or the other. It’s always useful to understand the logic and principles behind what’s going on and at least have an appreciation and understanding of what my guys are trying to do. It most certainly helps me with my job.

  7. Yeah, Will and Paul are right to pick up on the bullshit detection side of things. It’s incredibly handy having someone who knows how hard things are to do around – even if they can’t do them themselves.

    But – ‘a little knowledge is a dangerous thing’ – true, and I can’t guess who you might have been thinking of when you wrote that…

  8. @Dave – me, actually :) I’ve caused all the problems I list personally, but it takes time and experience to figure out when you’re starting to get into dangerous territory.

    @Will @PaulG – yes, the bullshit detection aspect is very useful – good point, that I’d missed!

    @Nick – it’s a tough call. HTML is probably best, along with CSS. With that pair, you can see results quickly and start to customise your profiles, blogs etc to get immediate satisfaction. But Matt’s right too that some of the basic programming concepts of arrays and loops, as well as HTTP concepts like cookies and form processing are probably where it starts to get really interesting – and I’d say you can’t beat PHP for an easy way into some of those.

    Inspired by Dave Briggs, I’ve started an Amazon affiliate bookstore of selected books I’d recommend on these topics – the PHP Visual QuickStart books are particularly good.

  9. Good article. As a professional developer, I welcome more people understanding how things work and their hidden complexity. But do beware the wisdom of the bedroom programmer – I was once told that it would be possible to develop an HR system over a weekend!

    One of the beauties of the modern web is that a little coding can get you a long way. You don’t need to understand OOP, C# or the .NET Framework to add a tweak to a WordPress theme, or even to write a plugin. One of my challenges in managing a dev team is to encourage people to use other people’s code – the “not written here” syndrome. WordPress and other packages are beginning to help win this battle.

    But you do need to understand your limitations, and defer to the professionals where necessary. Of course, we’re always open to challenge, as long as you can put up with the lengthy techy response.

    @Will, the reality is, we never know how long it will take until it’s done.

  10. The analogy with auto mechanics is a good one. I’m a professional web developer, but even I leave certain things (serious security implementations, server administration, etc.) to people who know those niches better than me.

    Learning some HTML (at least) is like being able to change the oil in your car. It’s simple enough that pretty much anyone can learn the basics and will save you time and money over the long haul.

    Great post!

  11. Jack-of-all-trades is the new ‘expert’ !

    One needs to adapt and evolve at every turn in the digital workplace.

    As someone who loves learning, I’m all about it.

  12. I like how you are recognizing your own flaws in this experiment of a class. It is very open and honest and allows for a lot to be done in this class. By having this openness and honesty present it makes the concept more approachable than it would be if it we sort of force feed and it gives the class a sort of story in and of itself. Personally I am enjoying being a guinea pig in this experiment and encourage it to become a regular one.

    This comment was originally posted on bavatuesdays

  13. Matthew,

    I appreciate that comment more than you know, I feel a little bit uneasy at times pushing my own experience into the model of a class, but at the same time when I see cats like you up and run with it, it makes me feel a whole lot better. There will be some chaos and uncertainty, but at the same time I think that might be the best part of learning we often try and suppress through a sense of a definitive contract and detailed objective list. That said, i can also appreciate an sympathize with those who need a bit more footing in such a circumstance, because it would be disingenuous of me to suggest I am powerless, I still give grades, dictate many of the terms of the class, and provide my own frame, however loose. I guess the best way to imagine this is through what you were talking about earlier on twitter, getting excited about hacking out your space and imagining the possibilities, and sharing that widely. I think it’s honest, open, and captures some of the most compelling elements of both teaching and learning—and the possibility for all of us to be both is always already the case.

    So thanks for the comment, and I agree with you. The framing of the class and my experience, as well as everyone else’s, is part of the more abstracted sense of digital storytelling I am thinking about. And what quickly becomes apparent, if it works, is that a class or a subject is as much about the connections we make with one another while learning it.

    This comment was originally posted on bavatuesdays

  14. @PaulG – definitely. I’ve sat through my fair share of meetings of that kind – some with “corporate partners” whose presentations have me thinking throughout “I seriously hope no one in this room knows anything about computers”…

    Steph – Fifteen years ago you and I were also communicating via the internet and competing (in a friendly way) over personal website design – *Netscape 3.0 Gold* – woo!

Comments are closed.