Do You Need the Latest Computer / Software to Learn Programming?
Tags: beginners, swift, xcode, learning
Published: 2023-06-01 02:51:58

###Spoiler alert, the answer is no. 

But for a moment, I was thrown. I actually told my wife we’d need to spend $2K+ on a new computer, and she was not happy!

In this post:
- A must-know resource for downloading Xcode
- Clarification on what an online coding class is about
- Advice I wish I’d gotten when I was 15

Last month I joined Udacity to learn iOS development. I hit my first big road block on Day One: I needed to download and install “Xcode.” (If you aren’t sure what that is, it's the editing software provided by Apple that lets you create applications for their devices using the Swift programming language.)

I was instructed to install the latest version, and I tried, but it refused to run on my Mac. After some googling I discovered I needed to update my system software. I was actually two versions behind on MacOS. I moved a bunch of files to make space and updated once, but the second update was a no-go. More googling told me I would need a newer model iMac to run the latest system software! 

After a day of downloading, upgrading, troubleshooting, and researching the cost of a new computer, I was no closer to beginning my first real lesson. I thought I'd be making an expensive purchase I hadn't counted on. I was tempted (only slightly) to give up before even getting started.

That night while attempting to sleep I entertained the idea that maybe I didn’t need the _very_ latest version of Xcode. Surely I could run something older? It would probably be a pain, trying to keep up in the class using older software, but I would just have to make do.

The next morning I hunted for an Xcode I could use. Apple doesn't make it particularly easy, but once I googled the right incantation, I discovered the definitive resource for Xcode versions and their MacOS compatibility:

####Save This Link if You Need Xcode
[https://xcodereleases.com/](https://xcodereleases.com/)

After downloading the most recent Xcode compatible with my ancient iMac, I finally got started working through my lessons. 

_And here comes the punchline..._

**Those Udacity lesson videos are _many, many_ versions _behind_ the Xcode I ended up with!!**

I'll save Part II of this story for another post. But for now...

###The Point to Online Learning

Yes, the Udacity videos are about a decade old. There’s a thread in their Knowledge forum about this. Some people complained loudly. And they have a point - the videos are very outdated. 

However, this is not as huge an issue as it may at first seem. True, what you see on the video doesn't always match what you see on your desktop, and that can slow you down a bit. But it's good to keep some perspective about what we're actually learning here.

This is not about learning how to use the latest version of Xcode. This is not even about learning all the latest features of Swift.

What we are learning includes: basic Swift syntax, what features make Swift unique as a language, general principals of object-oriented coding, and general principals of software design.

None of that information has changed in the past decade, especially at the beginner level.

In fact, what I’m hearing over and over on the [CodeNewbie podcast](https://www.codenewbie.org/podcast) (required listening for anyone starting a tech career path!) is that success in tech is not about knowing everything. It’s much more about being able to learn and keep on learning. This makes sense in an industry where new tools are constantly being introduced and old tools are constantly being updated. 

Udacity can’t reasonably be expected to keep all the videos from all their programs continuously up to date. That wouldn't even be possible. More importantly, working around outdated information is, I imagine, great practice for actually working in tech.  

###Hey, Kid, Don't Give It Up Now!!

All this brings me to a piece of advice I would tell my 15-year-old self if only I could hijack a TARDIS.
 
I would go back to before I gave up on programming. I had invested a lot of time and energy writing software for the very first home computer: the Sinclair ZX81 (and later the Timex-Sinclair 2068). I even sold cassettes of my “Haunted House” game on consignment at the local computer shop. 

![Timex ZX81 computer; small black plastic encasing; lower half is a membrane keyboard; bright red lettering above that spelling ZX81](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s63nyynule02okyidip4.png)

By the time I figured out how to do that, the world was changing around me. Cassettes were on their way out. Floppy disks were in. BASIC was no longer the language of choice (if it ever was). Other computer systems were flooding the market — many different ones. I felt too overwhelmed to learn them all. Instead of pivoting, I let go of my ambitions to write and sell software.

I really wish someone had stepped out of a TARDIS and told me: _Don’t let this overwhelm you. Pick one system and learn it. Then go on to the next thing when you need to. You’ll be developing general skills that will lead to a fun, creative, lucrative career._

I hate to think what I missed out on between then and now! But I’m keeping my gaze forward and thinking about what I still have to contribute… TBC