My Programming Journey
How did you get into programming?
Which languages have you learned? Which do you still use?
Where would you like to go with your coding?
A conversation with @anomadsoul sparked this idea, perhaps it would be interesting for the developer community on Hive to share how they got into programming and their journey from starting out to what they do now?
Please share your own journey either in the comments or on your own blog because I think it would be a cool way to get to know each other and grow our community!
My programming journey starts around the age of 8 or 9 ...
Vic 20 / Commodore BASIC
My first experience of any computer programming was when my cousin, Ian, brought his computer around on a visit. It was probably Easter 1983. You can see us here, Jay, Ian and me on the right feeding my bacon sandwich to our dog, Patch.
Christmas 1983 or thereabouts, my parents somehow get us (my brother and I) our own Commodore Vic 20. Even then I knew they couldn't really afford such an expensive machine so it was shocking seeing that bad boy Christmas morning.
In the box was the computer and a tape recorder, with several starter tapes including an introduction to BASIC. I was hooked to the point where my parents would get mad at me for how much time I was spending on the thing.
This machine taught me so much, and even away from the computer I would be filling pages of graph paper with my user-defined character binary drawings and maps/levels.
Even though my cousin upgraded to the C64, and I was super jealous, the Vic 20 to this day has a special place in my heart. So much so that I own a couple of those guys in my collection!
BBC BASIC
My junior school acquired a BBC microcomputer as part of a national initiative run by the BBC called the Domesday Project. This was to involve thousands of kids throughout the country inputting data about their local area to be compiled into laser disks. While I didn't get to see the result at the time, I did get to see some of it years later. The main thing for me was the school got a BBC and I got to spend a little time on it.
BBC BASIC was frustratingly similar and different to what I had been learning on the Vic 20, but even then I could tell it was a more powerful machine and version of the language.
BBC BASIC is still going strong, with a beautifully implemented version that you can use today on your modern computer and even an amazing browser-based implementation or how about BBC BASIC in tweets.
LOGO on the Speccy
In addition to the BBC, our school had a Sinclair ZX Spectrum 48k. As well as games of Jetpac and Jet Set Willy, this computer had a role in teaching us a version of Turtle Graphics called LOGO.
If you are unfamiliar with this kind of programming, the idea is to use simple commands such as forward, right, left, etc to tell a "Turtle" where/how to move, and in the process draw pictures.
You can try it out in a more modern incarnation in your browser here and there are Python and Scratch versions of course.
Z80 Assembler
Between the Vic 20 and the Atari ST, we had a Spectrum +2. Of course I used BASIC, but I also tried to learn Z80 assembler on this machine and pretty much failed to produce anything useful.
Anyone who was around at the time will remember typing in games from computer magazines and books.
Some of these games got pretty sophisticated and included some "machine code" for elements that required speed. It inspired me to learn assembly programming so I bought a tape from the Micro Fun computer games store in town. When I got the tape home I discovered it was pretty sketchy - the software had been written over an existing tape with a new label applied, and the documentation was photocopied.
The assembler did work, and had some sprite building tools, etc, but had none of the quality of life stuff you would associate with a useful (not even particularly modern) macro assembler, and swapping tapes between assembly and testing just added to the frustration.
Of course, in the last few years, I returned to both the 6502 and Z80 assembly languages and found everything so much easier. Sometimes the tools do make a difference.
STOS / 68000 Assembler
My buddy John got massively into 68000 assembly but I couldn't deal with the way graphics worked so I languished. Fortunately, STOS, being based on BASIC, allowed me to make demos and games.
STOS and the Atari ST rejuvenated my interest in programming. As soon as my brother started earning a proper wage, he bought an Atari ST (for games but also the midi port opened up some potential music avenues for him) and I loved that computer.
What many people in North America don't realize is how out of reach the Amiga was to most of us. Financially, the ST was a reach, about one month's rent, and the Amiga was 25% or more higher, just too much until much later when the 16-bit wars had worn the prices much, much further down.
COBOL
When it came time to graduate from high school, I did the math and realized there was no way my family could afford for me to go to university, especially as my "career counselors" were telling me I was going to fail my exams miserably. I ended up doing work experience at the local hospital system and doing a night class for COBOL programming.
It was surprisingly useful in terms of programming concepts. I think about the things I learned in that course, such as Jackson Structures, every time I create batch-style reports.
MUMPS
I didn't do a lot of MUMPS programming but it tickles me that the main computer programming done at the hospitals was an operating system and language called MUMPS.
We ran our stuff using PDP/VAX/DEC mini servers and VT220 etc terminals, and it was wonderfully cyberpunk but woefully bad for my resume outside of healthcare.
DBase and DataEase
When I was only able to get short-term contracts, it was usually around tactical database stuff, so a lot of DBase and DataEase. Occasionally we compiled the DBase code with a tool called Clipper.
Today a lot of the stuff I did back then would be done by someone using (abusing) Excel.
Turbo/Borland C and Oracle SQL
After my COBOL night class I did a couple of years B-Tec diploma in Computing. We did a bunch of interesting stuff, such as C and Oracle. At the time it didn't help me career-wise, but looking back it was valuable stuff. I still use C, Oracle not so much!
DOS Batch Files and X86 Assembler
As soon as I started earning some income I had to get a PC if I was going to have any kind of career. I bought a 286 with 40mb hard drive but mono monitor over the smaller hard drive and colour. On this machine, I learned a whole lot, but probably the most immediately useful was DOS (of course) and X86 assembler.
SmallTalk
Having missed out on university, I tried to see if I could get a degree in my spare time. It worked out too much financial commitment but I did enjoy the one year I managed which, as well as general computer science concepts taught us the SmallTalk OG object-oriented language.
BASH
One of my roles at the community college I worked at was administering our Unix servers. This meant learning a lot of BASH scripting, which I very much nerded out on. I loved how so much of the Unix experience could be intermediated with shell scripts, from booting locked up terminal sessions to managing print queues.
Delphi / Pascal / Visual Basic
A friend and college colleague was a huge advocate of Delphi, having learned at University. I gave it a go but it didn't fully gel with me, so despite the intense mockery I suffered, I stuck with Visual Basic for DOS and Windows.
HTML + JavaScript, Active Server Pages
Knowing Visual Basic gave me an advantage when ASP came along. In fact I was early enough getting into it that I got published in magazines writing about it:
What I use today
My day job is for a company that is big in the WordPress space, so PHP/MySQL/React plays a big part. For anything automation or my side projects it tends to be Python.
Of course that doesn't include my retro game stuff, which lately has been mostly TRSE, C and Assembler, but you will also have seen my writing about QB64 and AOZ.Studio - it's really cool how much knowledge we can instantly access nowadays unlike the old days where I would have to buy huge telephone directory sized books that cost a weeks wages!
I got into programming as a kid too. My first real programming language was QBasic even though it was already mostly dead when I started learning it around 2001. I got an old 386 with Windows 3.1 so that I could program in my bedroom without using my family's primary computer. I remember making several DOS games with QBasic. I also learned HTML even before that.
Oh man that makes me feel super old :D
You definitely should check out QB64 if you started out with QBasic :)
I'll look into that! Most of the technology in this post is from before my time, but I wonder what it's like for today's kids that are growing up on touch screens and smart phones.
There was a big period where "computer" lessons at schools were around teaching word processing and slide presentations, but with things like Scratch, the Raspberry Pi and even Swift, I hope more kids are getting into making their computers/tablets/phones do stuff :)
A bunch of friends kids got into programming through Minecraft and Roblox too!
Learning how to use Microsoft Office was basically the main topic of computer classes when I was in school in the 90s and 00s. Roblox crossed my mind too and I think you're right about the younger generation! The ones who are curious about how technology works have so many new ways to learn.
My programming journey started at age nine or ten, when I started making art on my graphing calculator. I still have the notebook - somewhere - with all the formulas, some Cartesian, some polar. I didn't get started with "proper" programming until age fifteen, when I learned industrial G-code. My first programs were all hand-written and then manually typed into CNC controllers. I still have all my old programs in yet another notebook, mostly lathe projects. I've always found it easier to program CNC lathes manually, even if the program is fairly complicated, but I'm hopeless at programming a CNC mill or wire EDM without CAM software.
I tried to teach a SCARA (Selective Compliance Articulated Robot Arm) to play draughts when I was in college. I managed to get the robot to reliably pick up and place the pieces, but I never got to the "actually play the game" part before I had to move on to another project, given the amount of time I spent fiddling with the various end effectors.
Speaking of college, I spent an entire semester beating my head against a brick wall trying to program PLCs, which are counter-intuitive as hell. I still did well in that class, but to this day, ladder "logic" escapes me, and I'd much rather use mechanical (including pneumatic and hydraulic) means of automation, rather than relying on electronics for everything. Maybe I'm just old-fashioned.
Everything from here on doesn't really count as programming, but it's still STEMgeek stuff that's relevant to what I do.
My sister helped me with my first custom-built PC right after I graduated, though I have to credit one of my classmates with helping me decide on all the components beforehand. At the time, I used it for gaming and to run my Makerbot Replicator. I don't know what Makerbot is doing now, but back in 2012, their software was Python-based, and easy to tinker with for anyone familiar with Python. Too bad that my problem was hardware, not software. That computer is still my main, but I've had to replace the power supply and I've gone through 3 hard drives (word to the wise: WD 1TB Caviar Black has a tendency to fry itself for no apparent reason). I've also upgraded the memory, since it has a big motherboard with six RAM slots instead of the usual four.
I learned PC-DMIS (or, as my boss called it, "PC-dumbass") at my first (and so far, only) industry job, in which I programmed and operated two coordinate measuring machines (CMM). I also learned two different types of ERP software, but every time I tried teaching my colleagues how to use new software, whether it was new to me (e.g. Minitab, Globalshop) or familiar as the back of my hand (e.g. Excel, Mastercam), well... the less said about it, the better.
These days, I use Adobe Flash CS3 for 2D art and measuring raster images of blueprints (long story), Autodesk Inventor for making 3D models, Blender for processing .stl files, and PreForm for running my new 3D printer (I donated the Replicator to NIH, specifically VPPL, for which I also designed the logo).
I have done very little manual gcode writing but I did study it so I could debug my automatically generated or supplier supplied gcode - it reminds me a lot of the turtle graphics/logo language, perhaps that is why I picked it up well versus some of my maker space friends!? :D
I got a computer when I was 12 or 14. It was a clone of the spectrum, which had to be assembled manually. But I don't remember this period well, because at that time I was only interested in games, and the equipment often failed - the tape recorder from which the programs were recorded spontaneously turned off and had to start process from the beginning. So programming for commodore, spectrum or early pc passed me by.
In 96, I got a full-fledged PC. But of course I didn't program on it, but only played, until I was 19, when I got a job as a sysadmin in one company there I started learning linux on my own. I remember I had a Red Hat 6 distrib and that's how my path in programming began. I had to deal with bash scripts. A little later I started making my first program - it was a knowledge testing for electricans. It used an interface written in Delphi and the main code in Javascript. At that time I was trying to make a cross-platform project and invented my Xulrunner based on the Mozilla browser, while the first version appeared.
Then I got acquainted with Php, Sql. I did work on Foxpro for money, did a little digging with C (remade the game on SDL), worked with Progress ABL, 1C, VBA. did a couple of pet projects in Python
But now somehow it turned out that I work in a bunch of Php/Javascript/Sql/Bash. Recently I wanted to try golang, but I haven't figured out where to apply it for myself yet
Brilliant! A real trip down memory lane that means we are probably of a very similar age. I did Vic-20, C64 and the programming I did was mainly debugging the programs I spent hours typing in from Your Computer and the like!
My interest in Databases came from a Database that was in the official Commodore magazine which was written for a PET but with only slight adaptation ran well on my C64 and I used for trainspotting and my magazine collection.
I also did COBOL at night school in Leeds at Leeds Polytechnic when I was an apprectice with BT. Two years of classes and I never used it in anger!
AT BT, I turned to Hardware and network design as in the 80's, everything was starting to turn digital with Kilostream and Megastream and private Wide area Networks. The only 'programming' I ever did again was setting up the multiplexors on the networks.
Then I got bored and walked from IT and BT in 95 and never looked back although I do read stuff here now that people like you and @themarkymark post and the other Devs post, and I do find it really interesting but it's like a century apart from me and I seriously doubt I'd ever have had the patience or intelligence to have continued through the incredible learning process that IT folks from my time must have had to go through. Back in the 80s, I was on some manufacturer's, or inhouse training course on an almost weekly basis.
Every respect to you sir! and happy to see see you're keeping the old ways going. I'd love to see you write an article on what, if anything, you learned back in the day that helped you, or still helps you in the IT business today.
Best wishes :-)
Thanks for this wonderful trip down memory lane!
My interest started around age 7 or 8, drooling over television and magazine ads about the Amiga. I read all I could find, but didn't actually get to put my hands on a computer until I was 13, when my out-of-state uncle gave us his old Tandy 4P for Christmas. It came with a reference manual for BASIC (which I believe was the machine's 'native' environment), a disk that would boot some non-standard DOS environment, and nothing else, and I was unable to find any other software or reference manuals for it. I used that to get a pretty solid knowledge of BASIC, wrote a simple word processor and some text adventure games, and tried like hell to get my hands on an Apple II or anything else with color graphics. I never did have any luck with that, but it taught me a lot about ASCII art. I dabbled a bit in ASM assembly on early 8086 machines some years later, but never totally got my head around that.
I live in a rural area, and there wasn't a whole lot of need for programmers out here, but even out here in the woods the PC revolution was taking off, so there was always some work to be found setting up peripherals back in the day. When AOL was big, I could set up custom init strings for 12 different types of modems from memory. I learned HTML to help some people set up early web pages, but the work was sporadic and not particularly well paying, and I ended up moving into construction work to pay the bills.
Since then, I've just learned what I need to know to do what I want to do, mostly scripting and custom config files (on linux OS's for over 10 years), gcode for the 3d printer, lately getting into Verilog because FPGAs are very affordable, and I want to automate my gardens. It's been a bit of a struggle, since I actually never learned C or any of its children, but I think I'm getting my head wrapped around it well enough to start wrecking some chips :D
I'm starting to age out of the construction industry, been thinking of getting back into programming for retirement work. The languages have certainly come a long way since the late 80's!
It's funny because today I wrote a piece called "Once upon a website" which is a little bit of a biography on my first major website project. However that was 2002-2007, my journey started around the same time as yours, maybe a tad later, by 3 years. My first computer was the Commodore 64.
I did write an article on another blog a couple of years ago. I am going to lift it and push it on to the chain, scheduled for tomorrow - watch out for it.
I am these days a front-end developer working solely with JS, Vue and Nuxt
I will look forward to that!