Becoming a Web Developer

“[Stanford’s] students come out, and they believe that C and C++ are the fabric with which God wove the Universe. OK? And they truly [think]: what is it with all these other languages?”

Dynamic Languages Strike Back – Steve Yegge

 

A blaze of nepotism from my sister saw me land my first paid contracting gig back in 1998. The company was technologically naïve and it was pure HTML/CSS. The start to a potentially exciting story perhaps, but alas, the summer ended and I went back to finish the last two years of my undergraduate degree in computer science and – after a brief stint in academia – I ended up as a salaried server and desktop-side coder for some big global software companies.

 

A year or so ago I might still have stood alongside Stanford graduates and asked Steve Yegge, “Yeah, what is it with all these unnecessary languages?” But more than just being blinkered against things like Scheme, I was part of the big machinery in the corporate software development world, busily building large, complex codebases that will likely be supported by legacy specialists in years to come – today’s version of the COBOL programmer of the 1980s.

 

But though I left the office today with three instances of Visual Studio open, three C# solutions that co-operate to produce some of the DLLs required for one of my companies’ products, I’m definitely not the same programmer I was a year ago.

 

Sabbatical

 

Nearly one year ago to the day I was a few months into a very enjoyable sabbatical I’d taken to rediscover programming, learn some new things to get out of the rut I had sleep-walked into. My over-engineered CMS blog was up and running happily albeit with zero traffic. I’d just finished LINQPad’s introductory F# samples and was feeling good that I had a better handle on the functional programming paradigm. One friend suggested that would make a good blog post and another suggested submitting it to Hacker News.

 

“Such a basic site”, I thought. I had no idea what I was getting into. To this day, it’s still the most traffic I’ve ever had – roughly 20,000 visitors in a few days. The last year has been spent trying to get anywhere near a similar hit ;)

 

But I’ve been reading and listening too, and most crucially thinking. For most salaried desktop software developers, even those who enjoy programming and like to learn new technologies, we tend not to be too forward looking. At my previous employer, I was one of the first to be introduced to Python and Agile development because I took a chance to work with a team in Sweden that another developer turned down. One who made a decision based on the current average salary for a C# programmer versus that of a Python programmer.

 

My thinking from Hacker News taught me to look ahead not just to the next programming language but to the next programming shift. Databases in the future might be relational, they might not. Server code of the future might by statically typed, it might not. Games of the future might be compiled to a specific chip architecture, they might be run in a browser with HTML5. High performance code might run parallelised on a GPU or in the cloud, written in a new language like Go or even in, yes, JavaScript.

 

Developing in the past

 

And I started to notice how old fashioned my approach to code blogging was. I was writing what I thought I’d find useful myself: a site that provided downloadable, open source, Windows .Net code projects. But when was the last time I downloaded something like that from someone else’s site? What I’d more realistically do is search for small code snippets to copy-and-paste into my existing projects. Why also would I want to offer such a crude interface to my code when I could allow it to reach so many more people on something like github or bitbucket? (The holiday period will hopefully give me the time to put this right.)

 

And not just the way I offer code is archaic but when was the last time I’d downloaded and installed desktop software? For so much of what I do these days the interface of most convenience is a web browser. My first paid technical work was over 14 years ago and my web abilities have barely moved at all because I was so blinded by how important I consider the desktop to be. It will always have a place for some applications e.g. my trusty FL Studio which uses ASIO drivers to access an external USB soundcard, but my coding chops have been missing a very large skillset for quite some time now. Even after starting to look into web development, there’s so much more to learn besides on the mobile and tablet platforms. If you consider this post to be largely devoid of content, let me assure you as a former C, C++, C# evangelist – acknowledging this fact is the first step, and it’s a very big one.

 

Becoming a web developer

 

Despite the slowing of my posting frequency, this is not through a lack of effort. For most of this year I have been battling with technologies numerous and alien to me. I am finally ready to reveal the initial offering of a developer rediscovering technology and programming.

 

The next Life Beyond Fife entry will be a formal introduction to my first side-project site: the idea, the architecture, the technologies, the questionable colour scheme, the business model, the third party APIs and affiliate program battles. The crushing despair and delays, followed by the euphoric relief and satisfaction of a finished project ready to roll out.