When I was a kid, I had an Atari 400. I spent hours sitting in front of that thing, copying programs from magazines and running the games I’d made from them. When I wasn’t writing my own (even though I was copying things from Atari Age or whatever, I was slowly learning how BASIC worked and felt like they were “my” programs), I played the hell out of Star Raiders and Pac-Man, and States & Capitals (which was loaded from a cassette, because that’s how we did things back then).
After the Atari 400, I got a Texas Instruments TI-99/4a. I loved that computer so much, and it was in that machine’s TI-BASIC environment that I truly grokked BASIC programming. I wrote text adventures, a rudimentary database to store news events I made up for a UFO research project that I also made up, and when I wasn’t doing that, I played the hell out of the weird and wonderful video games that machine offered.
Around 1984, I got my first Macintosh, and the first thing I bought for it was whatever BASIC ran on the 128K OG Macintosh back then. I was so excited to get into that language, and start doing things that took advantage of the GUI and this thing called a mouse, but 12 year-old me just couldn’t wrap his head around the language. I don’t know if it actually, objectively sucked, but in my memory, it really sucked. Nothing made sense, nothing followed the conventions I had grown used to, and just getting programs to respond to the mouse was beyond me.
So it was, in 1984, that I gave up trying to open BASIC to write computer programs, and instead opened MacWrite, where I began to write stories. I also played the everlivinghell out of every Mindscape game I could get my hands on.
Fast forward to a a few weeks ago. I was looking through my Humble Bundle library, and noticed that I had a book in there that teaches Python. I flipped through it, and the curiosity that I had as a kid bubbled up to the surface of my mind. I went back to the beginning of the book, and began reading. I downloaded Python for my Mac, and I started copying down the examples, starting to figure my way around the most basic aspects of the language. I’m a few chapters into it, now, and bits of it are beginning to stick. I’m having a lot of fun breaking things and then putting them back together, and just remembering the joy of turning a set of instructions into something useful and fun, like I did when I was a kid.
I have no idea if I’ll see this through to the end, and I have no idea what I’d actually use the skills (if I can even master them) for, but I really need a hobby that isn’t also part of my job, and this seems as good as anything.
Who knows? Maybe I can finally finish that dungeon adventure I started when I was 10.
93 thoughts on “Hello, world.”
Couldn’t figure out how to leave a comment on the Radio Free Burrito pages; just wanted to tell you I enjoy the podcast! Thanks!
Just close the window and forget you started back into programming. Before you know it you’ll have configured your dream Atari 8-bit set up from your youth, acquired a few Commodore 64es from various sources, and bought a TI-99/4a for $2 at a retro gaming convention because it had Parsec and you remember hearing that it was a pretty cool game.
Or maybe you’ll be stronger than me.
I teach game programming as a introduction programming class at the high school I work at. We start with print hello world and finish with sprite based games using the Pygame library; which is a great library for writing simple games by the way.
All of my students work is up on github.
I am with you on this. I am doing the same, learning programming in iOS using Swift and Objective-C.
Always was fascinated by being able to write my own programs.
Ah, Mindscape. Did you play The Colony? That was the coolest/creepiest game ever.
Oh god. Learning to program that “cooperative multitasking” monstrosity was a bear. I feel for your 12-year-old self.
Just wanted to say, love the Heinlein reference. I wouldn’t have caught it if I weren’t actively reading Stranger in a Strange Land right now. 🙂
There is a free course starting on October 5th on Coursera.org on programming in Python. I signed up to take it. You might find it helpful.
I did the same with my Commodore VIC20 in 1982. Last year I decided to try my hand at Python. That lasted about a week.
I got my TI 99-4A for my 12th birthday, a week before Texas Instruments announced they were ceasing support of their “home computers” to focus on their calculator line (the jerks). I taught myself BASIC and Extended BASIC, mostly using the manuals, because no one in my family was remotely interested in computers, and I spent hours plugging away at creating sprites and animating them because I wanted to create a Knight Rider RPG. That computer got me through my first year on college, and now I keep an emulator on my laptop (and I still have the manuals!) because nostalgia.
I’m also teaching myself how to code, albeit Java, through FreeCodeCamp, Codecademy, and Code Maven from Crunchzilla, and it’s a challenge because teaching myself how to code meant never learning how to code efficiently. Sure, I know what “for loops” are, but my brain goes totally blank when I’m called upon to create a “function”, and I keep reminding myself that there’s no One True Way to achieve a desired outcome; 2+2=4, yeah, but so do 3+1 and 7-3. I know how to translate the code into layman’s terms, so there’s that. I also do the change-this-and-see-what-happens, especially on Code Maven, and your mentioning of having the same computer I did brings back many fond memories and reminds me I’m not too old to learn something new.
Tunnels of Doom on the TI-99 with a tape drive! My first marathon gaming session….
As soon as you said “Tunnels of Doom” I immediately heard the loading music that played as you went up or down levels. It’s been I don’t know how many years since I last played it, but it’s still in my head.
Thanks for sharing! This expresses my how I feel when I work with programs on a daily basis, I get to play, explore, break things, and put them back together!
Not apropos of this post, but after seeing you at Rose City ComicCon. Check out this video by Ira Glass, which, I think, goes a long way to explain Imposter Syndrome. https://www.youtube.com/watch?t=103&v=PbC4gqZGPSY
I bet nowadays you could afford to buy an Atari 800. With TWO cartridge slots, one for a regular “left cartridge” and a second slot for a “right cartridge” in case anybody ever makes one!
(I never owned an Atari but played Star Raiders a lot at the local ComputerLand)
I know how you feel. My first computer was an Apple //e. I learned Logo originally in a classroom with tape recorders for media drives. The fascination of tapping out a bunch of commands and seeing a graphical do-dad move around amazed the hell out of me.
I also learned BASIC and still pad things (like error codes) to leave room for the future just like those old days of “10-based” line numbers. 🙂
And that programming thing you ran into? Just mindset. When I went to college, I was all about getting a computer science degree. I was getting the concepts and doing fine in most classes until I hit Assembly. Holy crap. Address-space and all that. Such foreign concepts for me especially since I learned largely from books. When my suitemate who slacked off all the time and never studied walked into our final for that class, tapped out his program and turned in the printed output in 30 minutes while I was struggling for the full two hours to get things to work, I decided I wasn’t cut out for that career. (Oddly enough, I ended up learning a different type of programming: molecular biology.)
I still treated programming as a hobby and played around with projects (now on a Mac as well) throughout college. It wasn’t until later when I entered the world of Web 1.0 and tech startups that I rekindled that original calling (now on PC, though).
One thing I realized as I started managing programmers and mentoring them, there’s a mindset when it comes to programming that just isn’t normal. Or rather, it’s not common. I think BASIC works because it’s straight forward. You have some basic branching logic and variables but concepts of threading, inheritance, and other “advanced” concepts aren’t there for the most part. But, once you dig in and get a sense for how those concepts work, it becomes hella easier to figure out all these other languages and programming in general, though you obviously don’t need to know them all for all languages.
The funny thing was that I felt like over the years that I was studying biology while still dabbling in programming, my brain was still banging away at those programming problems and concepts. Then one day, when my career changed (again) for various reasons and I decided to try again, things just clicked into place.
So, as I tend to do, I’ve droned on here. Sorry. 🙂
The tl;dr version is: sometimes it’s just a matter of time for your brain to wrap itself around something you’re interested in and when the time is right, you’ll find yourself enjoying that thing you thought you’d never enjoy again. So glad you found something. As a developer, while programming is work and at times I get tired of staring at and tapping out code of various types, I can’t imagine anything else that gives you the ability to quickly and easily see your work as you do amazing things. It’s like being a carpenter but instead of having to labor away and potentially wait days or weeks to see the end result of your work, you can just hit refresh and bam, you’re program is spitting output out on your screen.
I’m sure you’ve got plenty of programming-savvy geeks following you here and on Twitter so if you’ve got questions, feel free to ask. 🙂
Oh. Memories. Like you my first computer was an Atari (800 though) and we used an old TV set as the monitor. My first BASIC experiment was going to the computer section at some department store & putting all the display models into infinite loops of text touting my middle school.
I tried a MAC once but prefer PC, now my husband and I build our own desktop machines. Well we did until we stopped bothering with desktop machines.
Learned object oriented code by first learning MUSH code on text-based RPGs (it’s kind of a bastardization of Perl.)
Thank you for this but of nostalgia.
This is so similar to my story. I got into computers and programming learning BASIC on an Amstrad CPC-464, and then the Spectrum +2. At school we learned BBC Basic on the BBC Master computers. At college we moved up to PCs and got to play with Borland Turbo Pascal. But even though I continued to do bits of programming through my academic career (including Ada95 at Uni), nothing really captured the imagination and sense of being able to actually do stuff that BASIC had given. Everything felt weirdly locked away from the shiny GUI, stuck in a text world.
And then came Python. Python, for me, captured the simplicity of BASIC with the seemingly infinite power of being able to make properly useful graphical applications (I played a lot with wxPython, and then with GLADE/Gtk). Now, as a paid developer, I spend a reasonable amount of time writing Python. \o/
Hey Wil, thanks for this, it was a good reminder of my childhood when I used to open the BASIC code to snake and pacman on my parents really old XT and hack around the levels. That got my started on my career path of Developer 🙂 Happy days!
I just thought you may appreciate what the guys at http://textadventures.co.uk/ do. They used to have a downloadable where you could play pre-made adventure games or also develop you own. They can get really complex if you have the time, but even just getting into designing your own quest adventures is a lot of fun, makes for a good creative hobby that is not really too brain numbing. I hope you enjoy it as much as I do.
Thanks for the tip about that book, this last week I’ve been asking myself if I want to learn Python or just stick to the classic ASP and C# I code at work. I’ve now bought “Automate the Boring Stuff with Python” as well as another book on web scraping, because I’ve wanted to be able to automate information retrieval. Thanks again, Wil!
I got started a little bit earlier than you but have very similar experience. Altair,Commodore PET, IBM PC and the things like college got in the way of playing around with programming. I’ve been getting back into it with Python and it’s the perfect language for a casual project. Especially with all the libraries for connecting to other devices (like your DLSR).
By the way, I had a contract job with Atari back in the day to test the OS on the 400.
I love this story! I was also born in 1972 and grew up typing in BASIC listings on my Heathkit H-89. I graduated to DOS machines and QuickBasic, but fell out of programming when GUIs came along.
Flash forward to five years ago and I started dabbling with LISP, a language that Python borrowed from, and I learned how to build web apps. Now it’s part of my job and my hobby. I wish you the best Wil, Python is a great choice and programming is a great hobby!
Great story! My first computer was also an Atari 400, but rather than ending up with a Mac I got an Atari ST. I use a Mac these days, though. If you really want to get back to the fun learning experience of BASIC back on the old days, you should try out Xojo. It is easy to learn like BASIC, but much more modern and way more fun than Python!
If you are truly interested in adventure games, have a look at programming languages for writing “Interactive Fiction”. They are quite different that BASIC or Python, but have the advantage that they already include the whole needed infrastructure, for example the text parser or basic functionality such as player inventory or movement.
An expecially interesting language is “Inform 7” which uses (more or less) natural language for code. Code can look like something like this:
The kitchen is a room. “You are standing in a spotless kitchen.” The cupboard is an unmovable container in the kitchen. A knife is in the cupboard. The conservatory is south of the kitchen.
Bought a TRS-80 with 4k. A friend wired it to a small b&w TV. It was heaven. My Dad saw it and immediately took me to Radio Shack to buy a proper monitor. I think he was so happy that I took an interest in something that might get me a job. I got the degree and have been working for over 30 years in programming. But I still miss the TRS-80 and The Sanyo MBC and the newsletter that I ravished every month. It was so much fun back then.
TI-99 with cassettes – brings back memories! I remember having a Touch Typing Tutor “game” and some Tombstone shoot-em game. Damn, that was a long time ago.
Dig this Atari 8 bit home computer jam by ComputeHer! http://computeher.bandcamp.com/track/software-a800xl-mix
I started on that lovely beige wedge of a computer too, and managed to write some popular games and utilities in BASIC. Technology marched on, however, and once C and Intel x86 became the de facto standard I felt left behind. I script Web pages now, but it’s just not the same.
Low-level programming is so much more satisfying. I’ve often daydreamed about taking a break from the daily grind to climb back on that horse. Your post here is inspiring me to make it a reality. 🙂
Good on you picking up programming 🙂 I was really surprised to read that you’d dabbled in it in the past. Makes the “Wes Crusher” character that I grew up with slightly more real.
Try out Code academy: https://www.codecademy.com/
They have a section there on Python that does a pretty god job of getting the basics down. As well as some other languages.
Hey Wil! — You and I actually followed pretty similar paths at slightly different times. I began playing with QBASIC on a friend’s old computer way back. Programmed a rock/paper/scissors games from scratch and learned some techniques. Later, in my freshman year of high school, our math class gave out TI-82 graphing calculators that I would play with in class. I eventually talked my parents into getting me the amazing TI-86 and went to town learning TI-BASIC to program text games, and games using the graphing interface, as well as programming some “helpful” tools to make test taking a lot more efficient. I think saw the limits of what I could do and wanted to learn how to program the much cooler games that were available online, but these were programmed in Assembly. I tried to learn assembly and eventually decided it wasn’t for me. I too have recently picked up some Python books to learn the newer language and to see what it might hold for me.
Hi Wil! I’m the author of “Automate the Boring Stuff with Python”. I was so existed when marketing at No Starch Press pointed out this blog post. (Like, wave my arms and scream excited.) I’m glad you like the book. I had sort of the same path as you: I wanted to make my own RPGs in Qbasic but always hit that wall of understanding, and of course back then there weren’t any online sources I could look at. About five years ago I started writing programming books that the kid I was would have found useful. “Automate” is my fourth book, and it seems to be doing really well.
I’d like to point out that everyone can read the book for free online since it’s released under a Creative Commons license: https://automatetheboringstuff.com
This is a long shot, but there’s a video game museum in Oakland that does a long of great geeky community things, including programming classes for kids to make video games. The MADE (Museum of Art and Digital Entertainment) has been around for four years and they currently have a kickstarter going to help pay to move into a better space. I’m guessing a lot of people ask you for favors, but it’s something that more geeks would probably want to help out with. I’d be thrilled if you could tweet about it: https://www.kickstarter.com/projects/themade/the-museum-of-art-and-digital-entertainment-20
Either way, thanks! I’m glad you like the book. 😀
seems your work finally gets the publicity and fame it deserves.
If you need / want help making the game, be it ideas or graphics. I might be able to help. I’d love to try anyway. Keep up the good work Wil and never stop being creative!
Hey, hey listen! Hey listen! Hey!
I’m 13 now and have self taught myself python, am developing a fleshed out game with pygame and am doing it solo. I know the pain of learning a new language while being extremely preoccupied with IRL stuff (in my case school), but you can do it!
The TI99/4a was a fun machine to learn on. I found an old floppy with some games I wrote in 1983. I used a USB to floppy adapter and amazingly enough the 30+ year old floppy was 100% readable. All the games play on a TI99/4a emulator. I posted them and the steps I took to convert the old floppy. http://abraindump.com/blog/2013/06/26/ti-994a-games-a-walk-down-memory-lane/
Comments are closed.