Learning To Program For The Sixth Time
I came late to programming, being too old to discover it at school, and my first introduction too it didn’t go well. I was forced into writing assembly code to control a traffic light in electronics class at university, torture. I soon forgot everything I’d learned, keen to block all knowledge of assembly code from my memory forever.
My second flirtation with programming came a year later with Fortran, it didn’t go much better. We were taught the very basics of Fortran and let loose on awful teletype machines. Editing code was incredibly painful and the results of our efforts uninspiring, but I did feel a little spark of satisfaction inside me when it worked, an ember of interest was lit.
That ember gradually grew inside me for a year or so, until it was bright enough to inspire me to choose to write an educational simulator of a gas turbine, in Pascal, for my final year university project. I didn’t know any Pascal, to be honest I didn’t really know anything about programming at all, so I had to teach myself from scratch. This third attempt at learning programming really paid off, I absolutely loved the experience, which was hugely more enjoyable because I got to use a VT240 terminal connected to a VAX mini-computer. Compared to using Fortran on the teletype this was like going from Morse Code to email. The project was a great success and solidified my intent to work in engineering computing when I graduated.
Unfortunately a year passed before I got my wish and this time it was developing highly complex manufacturing control systems in Modula-2, this was true professional programming, a world apart from that self taught hacking around that I’d previously done. Although Modula-2 is similar to Pascal it’s different enough that I had trash everything I already knew and start from scratch, my forth attempt to learn to programme. I did ok though, well enough that I was soon managing the team and moving on from programming to architecture/design.
After a few years in management I’d forgotten my Modula-2 and was drawn into my fifth learning experience, WYSIWYG and database programming in Visual basic and what a joy that was. Modula-2 programming for ‘mission critical’ systems was very formal, complex and constrained. Visual Basic was the complete opposite, such power, freedom and productivity made me giddy with excitement and I hacked away doing mostly prototyping of ideas that others would productionise, what fun!
I also came to love the VMS command language DCL which was even more powerful and productive than VB, but not really suitable for serious programming, not that is until we wrote a linker and post-processor for it that added so many improvements that it became an order of magnitude more productive. It really was a hackers delight and I’ve yearned for tools like VB and DCL to be part of my life ever since, sadly it was not to be.
As I moved ever further into management, architecture and strategy I left programming behind for many years and during that time programming evolved, all my old language knowledge faded in my memory and the languages either disappeared (DCL), went out of fashion (Pascal), or evolved beyond all recognition (VB), it proved too daunting a task to learn a new language, tools and libraries.
Now I’ve retired though, everything’s changed, I now have the time and energy and motivation to get back into programming, an activity that shaped my whole life and provided some of the most rewarding achievements. But what to learn for my sixth phase of programming? So many choices, what type of apps (web, desktop, mobile), what language (c#, python, ruby …), what tooling (VS Code, Notepad++, Visual Studio).
I’ve been paralysed by indecision, and lots of distractions (hiking, cycling, gardening). A few rainy days though and the planets have aligned. The quality of the RTM release of Windows 10 has convinced me to stay on Windows for my servers, desktop and laptop, the release of Visual Studio 2015 and it’s community edition provides probably the best tooling available for free and Visual Studio also has built in support for my two favoured languages PowerShell (the heir to DCL) and Python (the heir to Pascal).
So I’m all set, I will be playing around with personal automation using PowerShell on my laptop, desktop and servers and I will be playing around with web programming hosted on one of the clouds (for free) in Python and with automation on my iPad also using Python.
I’ve installed Visual Studio Community Edition 2015, which also optionally installs the PowerShell Tools for Visual Studio and the Python tools for Visual Studio, all that remained was to install Python itself and associated libraries, I chose Anaconda 3.4 (recommended by the Visual Studio team). I will be starting the video tutorials today, finally programming is back in my life!
I’m writing this post in Caffe Nero on my Windows 10 laptop, it’s a dull day today so I will be gardening and learning programming. Tomorrow I will be out walking with a friend at Brockholes nature reserve (pictured). Programming for me will be for rainy days!
As I’m older my experience is similar and different. My first programming was at school, was very advanced for its day, with low level done via a teletype and punched tape and BASIC on the RM380Z. At Uni we did Fortran 77 but more interested in the physics than the punched cards. Then first career was teaching and launched into BBC Micros – BASIC, Lisp, Logo, Forth, COMAL, Prolog – all dabbling and nothing overly deep. Second career was mainframe with 4GL – NATURAL. That’s where I stopped.
I recently started a Coursera Python course! Though as usual I have some knowledge but no personal things to apply it towards.
“my forth attempt to learn to programme” – subtly funny to an old code dog.
I wish it had been intentional Gary!
A good course I did last year was interactive python via coursera
https://www.coursera.org/course/interactivepython1
It was really fun to do and has a great support community. Probably the same one Vince is doing – its well worth doing, as most of the assignments are game based