Category Archives: Business

Am I a grumpy old git, or are we trying to kid the next generation that coding is really easy?

Someone coding

I’ve been a programmer for over 30 years. That’s not a boastful statement (at least it’s not meant to be) I’m simply saying that I’ve clearly been around the block a few times. This article is about coding and specifically why we’re pretending to young people that’s it’s an easy thing to do.

So the purpose of this post is to complain, in a somewhat grumpy-old-git kind of fashion, about initiatives like “The Year of Code” and, perhaps to a lesser extent, the “BBC Micro Bit”. But more about why I want to whinge about those in a moment. First of all, a history lesson.

A life of code
As a developer, it’s important to speak lots of languages. Not the ones where you battle with a phrase book to order a cup of coffee in a foreign land and end up asking to sleep with the barista’s sister. No, I’m talking about coding languages.

I started off, as many do, with BASIC. Beginner’s All [Purpose] Symbolic Instruction Code. It’s deliberately simple to use and understand (it’s not called BASIC for nothing) and has always been a good way for budding coders to discover what communicating with a computer is all about.

My BASIC experience started on a Sinclair ZX-81. It had 1KB of RAM, although I plugged in a rather wobbly 16KB ram pack to boost this up by quite a margin. In those days, all you had to look at was a flashing cursor on a black and white screen and there was no audio. You learned very quickly that coding can, at times, be quite difficult; that you need to be patient and methodical and instant gratification is unlikely until you’ve committed to several hours of work and solid debugging. It’s a salutary lesson in the kind of personal attributes that you require in order to be a successful programmer. If you’re the kind of person who gets frustrated easily, then coding won’t suit you. Surely, as we’ll discuss in a moment, it’s a good idea to find that out sooner rather than later?

I found that I loved coding. It didn’t always go to plan. I couldn’t always get the computer to do what I wanted it to. But that didn’t matter to me. It just made me want to discover more so that I could make the device dance to my tune.

From BASIC I went through a number of languages on different systems. Some I used for a while, some I still use parts of and yet more are long forgotten. I wrote an integrated Office suite from scratch in Pascal for my A Level Computing Science. On my Commodore Amiga I dabbled in an interesting coding language called FORTH (I wonder what happened to that). And, of course, I’ve used C, C++ and in more recent years Objective C, Swift, PHP and more database and web based technologies than seems sensible to list here without boring you ridged.

Each language has its own peculiarities, advantages and disadvantages. Sometimes you have no choice what language to use. For example, for many years Objective C was (almost) the only answer for iOS and Mac OS X development. That changed in 2014 and I’ve recently started using Apple’s new Swift language and am really enjoying it. One of the attributes I mentioned earlier is being open to change like this. The shifting sands of technology. Sometimes those sands will shift so quickly that you’ll have to change the way that you work completely. That’s just the way it is in coding, and it keeps us geeks on our toes!

After those 30 years (and then some) I’m still discovering, learning, failing (often) and debugging constantly. And I love it. Because I’m the right kind of person to be a programmer.

Year Of Code

So time for my moan
There’s an initiative that’s been running for a while now called “Year of Code”. I don’t claim to know much about it, but what I do know is that it encourages young people to get into computer programming. Or at least that’s its intention. There are other initiatives, such as the recently launched BBC Micro Bit, that aim to do similar things.

Let’s get something straight from the start – I have no problem at all with trying to get people to code. In fact, I think it’s essential that we do; my complaint is how we seem to be going about it.

In 2014, The Year of Code with backing from the British government appointed a figurehead for the UK’s campaign: Lottie Dexter. She’s one of those bubbly “can do” sorts that, I guess, the people in charge thought would appeal to the media. I have nothing against Ms Dexter and I don’t blame her entirely for the situation that she found herself in, however it was still mind bogglingly vomit inducing. I saw her interviewed on BBC Newsnight one evening where it turned out that she didn’t know anything about coding. She didn’t even know what it was. She was planning to “learn it over the next year” and claimed that teachers could “be trained how to educate students in computer programming in a day”.

Clearly, no-one had bothered to check if Ms Dexter had the necessary skill set to be a coder, because (obviously) anyone can do it. Anyone can be an Ada Lovelace or an Alan Turing.

Thanks very much for belittling my profession and hard earned years of experience. No, really, thanks.

This, in a nutshell, is what annoys me about initiatives like “Year of Code”. The total lack of understanding and the failure to accept that programming takes a certain type of person and many years to perfect (if, indeed, one ever does). Like every single profession, programming is the right job for some people and the wrong job for everyone else. These schemes all seem to think that absolutely everyone can code.

I’ve got news for you: They can’t.

And there’s more…
Around the same time as Lottie-gate, I remember watching an interview with a child, no more than about 10 years old. The interviewer was saying enthusiastically that the little darling was a programmer and had written their own game. “Isn’t it amazing!” gushed the TV airhead. Well, no it wasn’t amazing really. The “programming” in question was an environment with some elements that were dragged on to a virtual canvas and then you keyed a value into a handful of boxes on screen to decide what the “program” would do. No coding was harmed (or written, for that matter) in the making of that “game”. What that had proved, was that the child could type a number and use a mouse. That hardly constitutes coding in my book.

Once again, this is an example of sending a signal to children that coding involves a simple bit of drag and drop or, in the case of the BBC Micro Bit, a few (very) simple commands in order to make some lights flash. The BBC Bite Size page on coding ,incidentally, doesn’t even spell “program” correctly, but I digress (not for the first time in this article).

So what should they be doing?
What  really needs to be done is to demonstrate to children what programming really is, warts and all. I’m not suggesting that an 8-year old should be subjected to 6 weeks of intensive C++ object orientation techniques; however the use of fundamentals in coding in schools in order to find those who have the aptitude for it would be no bad thing. In all subjects you start with the basics.

Take physics, for example. Those in year 6 won’t be discussing the plausibility of multiple universes or the finer points of string theory; they’ll be playing with weights and discovering the fundamental principles of the laws of gravity. Similarly with coding, a language like LOGO would be a good introduction but alongside the basics of binary and solving logic problems. It’s not rocket science. Those who like it will be open to the more complex sides of coding while being under no illusion about what it’s really going to be like as a profession.

In summary
You may think that I don’t want young people to learn coding because they’ll take my job away from me. That couldn’t be further from the truth. As we become ever more reliant on technology, there will be plenty of coding opportunities for all of us. However my point is that coding isn’t something that just anyone can do, and no amount of poorly thought out initiatives are going to change that.

Coding is time consuming, it often involves working to tight deadlines, and it’s not unusual for projects to change completely during their development. Don’t be surprised if you’ve spent hours working on something only to find it canned and replaced by a new requirement at the eleventh hour. It happens. Spending many hours looking for one tiny bug that might be down to a single comma or a full stop isn’t unusual; you need to have the patience to have days that go like that. However, to see a web page, a computer or a tablet do something just because I’ve programmed it to work in that specific way never gets boring and there are plenty of other devices out there that need coding in order for them to come to life.

Just because I code for a living, it doesn’t mean that I no longer code as a hobby. I was looking for a gadget recently and couldn’t find the exact spec I wanted, so while the majority of people would prefer to purchase a finished product, I’ve decided to build and program one myself most likely based on a Raspberry Pi core. I’ll do it because I can. I’ll do it because I have the right kind of logical brain that will happily work through all the inevitable problems to get to a working solution. That’s the joy of coding for me. It won’t be easy, but it will be very rewarding.

And that’s the idea that we need to sell to those children who have the aptitude to do likewise.

I’m now posting my articles both on my blog and also to Medium. You can read this article on Medium here. Please follow me on Medium here.

Working standing up

For several months now I’ve been working at my desk standing up. Actually, that’s not quite right as I haven’t been standing constantly for months, there are times when I lie down (at night for example in bed) and I do sit down in the evening… but you know what I mean!

I was first alerted to so-called “standing desks” a couple of years ago when they were featured on BBC Breakfast. With a history of back problems, it’s seemed like a good idea to pursue for some time so earlier this year I finally started looking in to it.

After much research, I was originally going to go for an item that would allow me to raise and lower my computer monitor and keyboard. The Varidesk came in two flavours: a standard model and and wider version. At the time I was about to order (back in March 2014), Varidesk had just launched a new model in their US store (the Varidesk Plus – pictured) that included a separate keyboard tray that would raise along with the main monitor stand meaning you wouldn’t have to manually lift the keyboard. That sounded good to me so I contacted their UK office to be told it was due here in a couple of months.

So I waited.

varidesk-plus

In the meantime, I had a bit of a re-think and decided that only being able to lift part of my desk was going to cause me problems – it would surely be far better to lift the whole desk, wouldn’t it?

I’d looked at this option during my research, however desks that lifted cost 4 times as much as the Varidesk which had put me off. The other important factor was my current desk, which was a nice, large desk with nothing wrong with it – why throw out a perfectly good desk? I wondered if I could just get some adjustable legs instead!

So out came the internet and off I went looking for some legs!

I quickly came across a company offering different legs sets for existing desks. The price for electric adjusting legs is about twice that of a Varidesk, however it seemed a reasonable extra to pay to have the extra desk space in either high or low position so I ordered one. I could’ve saved money by buying a manually adjusting version, but the electric version seemed a good option.

Putting it together was straightforward and attaching to my existing worktop simple. So since mid July 2014 I’ve been able to raise and lower my entire desk, and what a difference it’s made! I can’t recommend this method of working highly enough.

1

 

2

The top picture shows my desk in the lowered position. It looks as it did prior to the upgrade (in other words, adding the adjustable legs doesn’t prevent it lowering to a “usual” height). The second photo shows it in the raised position. This is adjustable to cope with just about any height – however tall or short you may be.

3This photograph shows the legs when raised. As you can see, they are telescopic. Please ignore the jumble of cables; this is something I am sorting out over Christmas and New Year!

Each leg has its own motor and is very powerful so has no problem coping with very heavy weight on the desk. It also has a safety feature so that when the desk is being lowered, if it detects any resistance the lowering will stop and the desk will raise itself back up a few inches.

Below left is the button used to raise and lower the desk which can be mounted to the desktop itself if required.

4Don’t quote me on it, but I read somewhere that standing for just 3 hours a day for a year when you would normally sit is equivalent to running several marathons.

I’m finding that I’m spending most of my working day standing, sometimes (but not always) lowering the desk for the final hour or so of the working day. It’s not unusual, however, for the desk to remain in the “standing” position for several days at a time. For example, I’m typing this on Monday 29 December 2014 and I think the last time the desk was lowered was around 19 December (although to be fair, I haven’t worked so much this week due to Christmas).

In summary, I can highly recommend standing to work at a computer. It’s healthier, aids concentration and is just overall a better option if you’re a keyboard monkey like myself.

Stand to attention!

It’s been a while since my last post and I’ll be commenting on OS X Yosemite when I get my geek hat back on in due course. First of all, a quick diversion about health matters.

I’ve always worked in an office and that has involved a fair amount of sitting down. Sitting at a desk at a meeting. Sitting at a desk eating my lunch. Sitting at a desk talking on the phone. Sitting at a desk staring at a computer.

That’s a lot of sitting.

For the first couple of decades of my working life, I was in office jobs that involved moving around quite a bit. I probably spent at least half the day (sometimes more) running up and down stairs (I rarely took the lift) and having to go and see people about things that were happening related to my job at the time.

Between 1994 and 2000 I ran a small team and that probably involved the most “not sitting at my desk” that I ever had. Even when I moved into a corporate IT department in 2000 and my job involved a good deal more sitting around, I made sure (rain or shine) that I ventured out for a brisk hour long walk every day.

In 2009 I was made redundant and started up my own full time business. I still have to go and see people, but much of what I do is sitting where I’m sat right now typing on a keyboard and staring at a huge 30″ monitor.

That’s not good for my health.

Or my back, which gave out a couple of years ago with really rather painful sciatica.

Ever since then, I’ve been thinking of ways to improve my health and not do so much sitting.

First of all, in Autumn 2013 I re-organised my day to start earlier and finish later so that I can go out for a walk with the dogs. It’s around an hour along the beach but has helped greatly to lose a few calories and get some fresh air.

Part 2 of my health binge arrived today and is currently sitting in a cardboard box in my porch after being dropped off in a big lorry first thing this morning. I’ve bought a new frame for my desk that has an integrated motor enabling the desk to rise and fall as a sit-stand desk. I’ll now be able to do some work sitting down (as I am right now) and some of it standing up.

I plan to put the frame together at the weekend and I’ll post more about why I bought this particular desk, what other options I considered and how I’m finding standing up to work for some of the day next week.