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.
Good luck!
That’s great! New hobbies are good, and it sounds like you’ve picked a good one. I tried BASIC a few times and couldn’t get the hang of it, so I gave up. Your post makes me wish I hadn’t.
That’s awesome that you’re picking coding back up! I’m self taught as well, and I’m currently doing a degree with a focus on python. Not going to lie, I miss the curly braces and semi-colons of older languages. Good luck!
Awesome. I think everyone should learn at least some level of programing βΒ the logical ways of thinking it teaches are super helpful. I hope you have fun with it!
So much of that mirrors my childhood as well, but for me it was a Commodore 64 and then an Amiga 500. I even wrote a little text adventure in BASIC that had less than a dozen rooms and paths in it.
It’s interesting that you are picking up Python. I’ve read many articles about how Python is a great teaching language to help people learn the concepts of programming.
Good luck with the hobby! I miss programming sometimes myself.
If you get bored with Mac Python programming you could always pick up a Raspberry Pi and do some “internet of things” Python stuff (blink lights, interface to things, etc. you know channel your inner Wesley).
Hey Wil,
If you like solving puzzles and brain burn you should check out: http://www.pythonchallenge.com/
It taught me a lot about a lot of things (including Python)…
You’re taking your first step into a larger world. Python is actually a pretty powerful language, and knocks all those 80’s versions of BASIC into a cocked hat. (Some very large games implement much of their logic in Python, only employing “native” languages like C++ for the very performance-critical pieces. EVE Online is one example.)
At this point I can’t remember BASIC at all but used it as a kid. I started on the TI 99/4 and 99/4a (my dad was on the design team so I had most of the good games and expansion modules – except for a modem: he was afraid I’d rack up a big long distance bill). It was a great computer at the time and the game graphics were better than most systems. I still have a working TI 99/4a in my closet.
There’s an ‘intro to python’ course on coursera.com (MOOC site) taught by a couple of guys at Rice that works towards making a version of Asteroids – you might find it a good match given that you want game stuff. I went through part 1 and some of part 2 and then had to go live for a few weeks with bad internet service and didn’t finish part 2. But it was a good intro and seems like it would work for someone without a lot of (recent) programming experience.
link is here, https://www.coursera.org/course/interactivepython1 and the next session starts up 10/3, so your timing might be excellent.
I took the same course and would also recommend it. The instructors are really good and have a lot of fun teaching the course.
Uh, you didn’t have to do that. Macs come with Python built in.
But I hope you at least used Homebrew to install it.
Also, if what you REALLY want to do is make games, you should have a look at Unity + Playmaker.
Cool Wil. My first 2 computers were nearly the reverse of yours. I had a TI 99/4A first, then an Atari 800XL. I did more BASIC on the Atari. The TI I mostly played cartridge games. I have a Computer Science degree and have been a professional software engineer for about 25 years now. I’ve tried to learn Python a couple times and sort of lost interest both times. I don’t have any direct use for it in my job, we’re a Java shop, but it still seems like a useful thing to know. By the end of a day/week of working on software the last thing I usually want to do in my free time is more programming π Good luck and enjoy!
Hi Will be a part of my game here is the fan page https://www.facebook.com/tangoaventura we need your voice for the teaser of the game. And we can make you a character of the game!! Thanks and sorry for use these space
Woot! Its an awesome hobby. I would totally reccomend looking at the arduino and raspberry pi as a hobby of latforms for interesting software/hardware interaction. Enjoy your refound hobby!
This is very cool. Trying to get my daughters to learn some programming as it is definitely a boost to one’s career if you know a programming language. I taught myself ASP, ASP.NET and Javascript a long time ago and have enjoyed the benefits of knowing how to do things that 1. piss off the corporate IT guys (which is always fun) and 2. contribute to continuous process improvement for whatever group I’m in at work.
Dude, check out teamtreehouse.com – teaching, tutorials, hands-on learning for all sorts of languages. I JUST started the Python module myself.
Best of luck! I’m sure you will be getting in Internet arguments about really really important opinionated programming concepts in no time!
That’s awesome!
My dad introduced me to Basic on our Vic-20 when I was around 7. Same as you, I remember myself copying code from magazines, and loving every second of playing with it.
I didn’t do much with it as a teenager… and yet I am now a software developer and love it, for the same reasons as I did as a child – it is like a game to me.
This week I introduced my soon-to-be 7 year old cousin to code monkey. We set together for 3 hours straight – we just didn’t notice the time flying by.,, I hope one day he will have the same good memories π
Hey cool Wil!
Python isn’t really my jam, I program in Perl by preference when there isn’t another constraint, but several of my colleagues and friends program in Python unless that HAVE to use something else. That’s really fantastic that it’s starting to click for you. Getting your head wrapped around A language is what’s important; after that, you can extrapolate to others if you want to.
I never tried to program on a MAC; I had a TRS-80. I know there was some really bad graphics APIs that were attempted to be stuck on top of BASIC; sounds like you experienced one of them. BASIC really didn’t have the right type of subroutine structure to program graphics in a sane way; your frustrations are quite common, I think.
Thanks for sharing your journey! And how doubly cool that your humble bundle brought you back to something that YOU were interested in!
(Signing off from my work desk, on which sits a PlayStation 2 that I programmed way back in the day. Good times, good times…)
Craig
PS for other readers: Wil is understating his coding skills a bit here. He may not have done a lot of coding-from-the-ground-up for many years, but he’s installed, written, and maintained at least two versions of WWDN including wrangling databases and low-level configuration. In recent memory, he’s run builds of his window manager from source, which I (as a computer professional) avoid if I can possibly help it.
Atari 400… Arguably the worst keyboard ever put on a computer.
You have never used a Sinclair ZX80 then!
There is an Aerosmith python course on edx.org of you want to learn more about it π
Feel free to play with our storytelling engine, Wil. It would be an honor. https://www.youtube.com/watch?v=gc3s48huCIk – RPG fans love it, game designers love it. I think it’s right up your alley. π
Ah, the good old TI-99/4A. Fond memories of copying C. Regena’s programs from Compute! line by line, but being careful not to type too hard lest I jostle the Extended BASIC cartridge and lock up the computer. (And TI Invaders is still my favorite Space Invaders clone.) That was a good machine.
I was a more twisted individual! I ignored the BASIC and learned to hand assemble Z80 machine code on my old Sinclair Spectrum. I can still remember some of the op-code values, 0xC9 is return π
Ahh.isn’t that wicked cool the feeling one has when a program works? *happy dance * I remember puttering around on a Radio Shack computer n display and one of the programing books laying about in the store. At 12 ,I stood at the console typing away, cruddy eyesight and squinting at the book text. Finished and executed. Whoop!! It worked. Then I tackled HTML. Such fun. Wil, thanks for the reminder. I need to do this again. π
I used to do a bit of programming as a hobby, but ever since I started working as an electrical engineer, that ceased being a hobby and started being a job. I can completely understand the need to have hobbies that don’t somehow migrate into your job. Check out Arduino programming some time… It’s a great intro to robotics. The language is C++, however the API and dev tools are developed in such a way that its extremely easy to learn and modify posted examples.
I bought a 99/4a during the $50 fire sale. Wrote a 52 card memory match game for it. Talk about painful! And then loading it with the cassette interface. Ugh.
I clicked through on the book link. Cool book. Awesome website. Thanks for sharing. Enjoy learning!
States and Capitals was multimedia. It actually played audio off of the same cassette that held the program.
I still have my Atari 400 in a box in the garage. I should get it out soon
Remember when you had to turn the volume down, because it was going to make the DTMF tones to actually load the program?
Yeah. I can’t remember how it was organized though. Obviously, the tape would be sequential access. Were the states always in the same order?
Now that I think about it, am I confusing States and Capitals with the programming courses that came with the tape drive and BASIC cartridge? Was that what was multimedia?
Great! Python will help opening your mint to the infinite possibility that computer programming gives you. And you can use it also to interface with a Raspberry Pi or an Arduino board… Have Fun
This is awesome! Who knows what could happen? Maybe the simple act of learning some programming on the side and getting the brain to make new synaptic pathways will help with some creative problem solving skills!
You should know that there are two “live” versions of python, 2.7 and 3.0. From what I’ve seen 3.0 is more of an ivory tower and 2.7 is still good enough to be used by pretty much everyone. I expect much flammage from the purists due to this comment, but it’s what I’ve consistently seen in bioinformatics.
Also, if you go even deeper, be sure to understand data encapsulation inside classes. It’s a little obtuse, but when you understand it, it’s power is incredible.
While Python is really the correct choice, you may also want to take a quick look at Ruby. Most people seem to love one or the other, but not both.
I used to write video games for my Atari 800XL. I brought it out at a maker meetup a couple of weeks ago. Here’s a game I wrote in ’86 when Aliens had just come out. I might go back and try to write an ending for it sometime. https://www.facebook.com/brett.king.nc/videos/10153731368176162/
If you’re really serious about writing a text adventure, you might want to look at one of the dedicated languages; they do a lot of the hard work for you so you can focus on the writing. I recommend either Inform 7 or <a href=”http://www.tads.org/>TADS 3.
As the various comments no doubt make clear, there is a metric fucktonne of good docs and examples all over the place online for python hacking… Here’s a bit of a different angle, for some really interesting stuff about the culture of programming, check out the ‘Jargon File’. (Lots of the stuff in there is pretty old school by now, but it is still fascinating reading, I reckon).
http://www.catb.org/jargon/html/
Python is a good choice for a learning language, too. Happy hacking champ!
I haven’t done anything with Python. My work has been Perl, C/C++, and recently PHP. True to nerdiness, my first completely home-built database website integration is a DnD Character builder.
Python has rich libraries and many tutorials on RPGs as an Object-Oriented (OO) language. If you are more interested in the creation (game) than the tinker and tooling (computer languages), I would also recommend Unity. Here’s a course w/code that is highly recommended https://www.udemy.com/unitycourse/?couponCode=DotNetRocksUnity (I have no connections to the course or the show’s coupon code other than I am a listener of the show).
For pretty much any kind of programming help, in pretty much any coding language, https://stackoverflow.com is your friend. Know it, live it, love it.
What a great way to go back in time. No “butterfly effect” issues here.
I am in the process of learning how to program javascript and rails (been able to copy and paste what I need to work for years, but never have I guilt anything from scratch) Pearl is next on my list. Excited to see if you do anything with it. But I do understand your joy for Basic which I had as a kid. Someone else above recommended getting a Pi. I also recommend it.
Truly I think you would find a lot of joy in a $35 computer that you can dick around with.
I’ve been teaching myself python using Learn Python the Hard Way by Zed A. Shaw. His approach is a lot like how you learned BASIC, so you might like the book. Another recommendation: coursera has a few programming courses you can take for free taught by some guys from Rice University. I made: this http://www.codeskulptor.org/#user40_aah1h4iva7_0.py (it works best in Chrome) in their Introduction to Interactive Programming with Python course. The courses are designed to take 2-5 hours per week and are pretty engaging. I dunno how much free time you have, Wil, but if you’ve got 5ish hours a week you can dedicate to the course, you might wanna sign up! You can post on the course’s forums anonymously so your fame doesn’t get in the way of learning stuffs.
Have fun!
I remember writing programs on a TRS-80 during summer school…something related to Frankenstein game!
TRS-80 yessss!
I feel so old. Our first computer was a TRS-80 my dad bought when I was in high school. Learned a little basic on it and a little on the Atari my boyfriend (now husband) had. Never could quite wrap my head around object-oriented languages, but I’ve used my basic skills to dabble a bit in Javascript and write some pretty slick macros in Visual Basic for Excel. Helps me stand out in my accounting career. π
That brings back memories, Wil. I cut my teeth on the Radio Shack TRS-80 back in the late 70’s, when I was all of 12 years old. My love of computers actually started when I was in sixth grade, when my teacher rolled a DECwriter terminal with an acoustic phone coupler into the room so that we could connect to the school district’s mainframe and run educational programs, as well as play a few games of Oregon Trail. I knew right then and there what I was going to do with my life.
I got a TRS-80 Model III for Christmas in 1980 (one of my dying grandfather’s final wishes; he cultivated my love of computers, just as he cultivated my brother’s love of working with his hands) and, to quote Matt Damon’s character in “The Martian,” I “scienced the f**k” out of it. I was already familiar with BASIC at that point, so the next logical step was assembly language, which was really the only way to squeeze as much out of 16K of RAM as possible. Those were giddy days, the Wild West days of personal computing. After moving up to the TRS-80 Model 4 (because why not?), I joined the rest of the world and moved on to an IBM PC clone, where I poured my love of programming into the C language, which helped me get the job I’ve been at for 19 years and counting.
My next step? Programming for portable devices. I’ve dabbled in iOS at work for various work-related projects (we’re doing custom iPad apps for our teams in the field), and am learning Java and programming for Android. C/C++/C# programming was becoming routine; this is getting my juices flowing again, and taking me back to those Wild West days.
This post reminds me so much of my frustration as a nine year old not being able to “get” much beyond “hello world” on my zx spectrum. 20 years on, I went back and looked again at the wonderful world of code. Now I’m a full-time code monkey and loving it :). My day to day is spent with python but I’m a “all the languages” kinda guy haha (c/c++, Java, c#, php, JavaScript etc.)
My top tip for you(and for anyone learning to code) is find yourself and need/want, and write to code to fulfill it. Focusing on something you need/want helps focus and direct your learning, and helps enthuse you and makes you want to come back for more.
Happy Coding!
Fascinating, Will’s introduction to computers was very similar to mine, except we had an apple II-e. I remember countless hours of transcribing code from a magazine in order to play “computer games”. I stepped away from computers for about 15 years, and then went back to college at a late age and found all the stuff I learned back in the 80’s came right back to me. Now I use a variety of languages (mainly python) to solve complex environmental models.
AaaAAAHH holy shit I had forgotten all about the TI-99! That was my first computer…TI Invaders, Hunt the Wumpus, pages of code typed in to make an inchworm blink and beep its way across the screen…wow. Hadn’t thought about that thing in years. Thanks for the nostalgia punch. <3
My first computer was a second-hand TI 99/4A. No games and using a cheap tape recorder for storage never really worked, but I never got tired of typing in BASIC programs. We had one at Maker Faire this year, part of our “nostalgic nerds” booth. In fact I wrote a blog about that computer…
http://blog.restfulhealth.com/2009/09/i-was-teenage-heavy-metal-nerd.html
I’ve been teaching myself Ruby in the last few weeks (I absolutely had to back the “Hello Ruby” Kickstarter too. I remember doing BASIC on my Speccy 128k in the 80’s and was proud when I got a flag to flash or did the Pangolins game
Does anyone else remember Pippo?