I first delved into the world of programming when my dad upgraded our home PC to a 486 DLC for home, and I had a book called “All About Computers” by Jean Atelsek from 1993. There’s a section on programming in that book that takes you through some games coded in BASIC, and how to write some menu type programs.
I followed those instructions line by line, without any real understanding of what I was doing, but it gave me my first insight into programming. Probably the most advanced stuff I did was to create some startup menu’s in DOS that accepted inputs. Fun stuff when you’re a kid 🙂
Fast forward to 2002 when I entered University to study Computer Science, where Java and C++ were the 2 main languages of choice. We studied algorithms, but there wasn’t a particularly good set of lecturers in my view (sorry UCT) in the Computer Science department who could explain what the algorithms were about, the context they could be used in, or why they mattered to business systems. I didn’t like it at all, and switched to a business focused degree, in Information Systems.
There I encountered a lecturer named Elsje Scott, who I worked for in my final year of my undergraduate degree, tutoring Visual Basic classes to 2nd year students. That’s when she began encouraging me to focus on the concepts of code – structures like loops, why they exist and when to use them – instead of focusing on a specific language syntax.
The following year after graduating I began my post graduate honors degree, and it was there that I realized the power of this – when she demonstrated how easily you could switch between programming languages if you understood the major concepts. I applied this by picking up C# within a few weeks, and the year after that I picked up PHP in a few days when I entered the workforce, quickly followed by Ruby on Rails, and switching between platforms as necessary.
She played a massive role in forming how I view the discipline of programming – I see structures, concepts, and standards as programming, not how to write the syntax of a for loop in Python or PHP. Anyone can look that up on Google, but knowing when/why to use a stack or queue, or why multiple nested for loops in any language is usually a bad idea – well, those are skills that I’ve applied across programming languages and on multiple projects.
Basically problem solving using code structures 🙂
I’m extremely grateful she took an interest in me and my career, and I’m still super proud of the empirical research we published together about using Standards in Team Projects.