I seriously considered calling this “confessions of a lapsed professional software developer”. Back between 1995 and 2008 I was a professional developer, first with Nortel Networks and then Symbian and Nokia. I cut my teeth on Sinclair BASIC and then Modula-2 at university before 12 years of C and C++ for a living before being tempted away to the heady heights of change management and currently business analysis.

Back then, if you were developing a piece of software its highly likely that its interface to the outside world would be via one of four methods: complicated windowing system (X-Windows), the command line, writing to a file or via an API (not http APIs, think CORBA).

Fast forward a few years and I found that I wanted to create a few small websites for my own use. The modern way of providing a UI for users is via the web. HTML and CSS are easy to learn (although I hate CSS  – KILL IT WITH FIRE) so building a new project should be easy, right? Well, it turned out that the answer to the question was ‘yes’ – at least back then. I tried a few different things but eventually settled on a combination of PHP and JavaScript. PHP was simple to learn, almost BASIC-like in syntax – you didn’t even need to learn about object-orientation if you were lazy. Embedding code in HTML templates and having a script for each webpage or action made things very clear. If I wanted to be extra-clever I’d code up some jQuery on the front end so I could introduce some asynchronous partial-page updates. Funky stuff.

Skip another few years and, again, I have a nice list of projects that I’d like to code up. PHP seems to be significantly out of favour so I looked into what are the current most popular languages.  Well, scripting language are still in vogue – especially Python and Ruby. Neither of them is drastically dissimilar to things I’ve learned before so I was pleased to find that I could learn each of them in no more than a few days.

The problem is the next step. Frameworks. Now it’s not enough now to know the language you’re going to write in – you also need to be proficient in the framework you’re planning to work with. Whether it’s Rails, DJango, Flask or Node (I still have a soft spot for JavaScript) jumping the barrier from being able to write some reasonable code to being able to construct an interactive website plus database feels significantly higher than it was a few years ago.

As an aside – I run a code-club at my work where the folks taking part are currently learning Ruby. We’ve got past the bits on variables, arithmetic, loops and conditionals so now they know enough to write any program :-). I’m adding in some useful bits like file access, data structures, etc. Naturally, the students want to build websites. I don’t know what to say to them. For me, the step-up from Ruby to Rails feels so big that I’m not sure what to advise them.

So, perhaps all this is just because I’m old and stuck in my ways :-). I’m used to writing relatively stand-alone programs and not starting out by planning how I’m going to build my MVC structures. Probably what I need is someone with some experience of Rails to walk me through how to do the basics and then answer my future questions. Currently I’m left looking at the 5cm thick Rails book (compared to the <1 cm ‘K&R C’ book – my best ever purchase) or another impenetrable online tutorial.

Any volunteers will be very gratefully accepted.

But I’m still going to hate CSS.