I've tried to learn to code at least half a dozen times. The first was in 2014: my freshman year of college.
In an effort to stand out to potential employers, I followed a tutorial and created my first WordPress website. Aka, the earliest version of this site:
(Technically, there was an earlier version, but this archived snapshot from 2016 was the oldest I could find on The Wayback Machine).
This was long before WordPress introduced the block editor. Back then, if you wanted to customize your site's design and layout, you either had to pay for an expensive premium theme or change the code yourself.
So it was that I soon found myself googling "how to learn to code" and came across the free tutorials on Codecademy.
I powered through the HTML courses and began to get my feet wet with CSS. Emboldened, I enrolled in the beginner JavaScript course.
Things went well at first. I had a sense of learning a ton really quickly; given how little I knew about programming, this was likely true.
As often happens with such learning projects, however, the initial enthusiasm and excitement quickly faded. I hit a point where I was lost and confused...so I gave up.
This same pattern continued over the next ten or so years. I would decide, "This time, I'm going to learn to code! For real. Seriously."
But each time, my efforts petered out. And that was perfectly fine; I have no regrets.
After all, those ten years were busy! Among other things, I:
Studied abroad in Belfast
Wrote my Jr. and Sr. independent study theses
Graduated from The College of Wooster with a BA in English
Spent 3 months living in Medellin, Colombia
Learned Spanish
Started my career as a content writer
Worked at an SEO content agency for almost two years
Wrote 10s of thousands of words in various freelance writing gigs
Moved to Denver, CO
Took numerous trips both in the US and abroad
Became Head of Content at College Info Geek
Did two semesters of humanities grad school before deciding it wasn't for me
Met the love of my life <3
Throughout all of this, I made various attempts to learn to code, but none of them stuck.
Fast-forward to today, and I'm on the coding learning path once more.
Since I'm first and foremost a writer, I thought I would document my coding journey on this blog. If nothing else, it will be a way to look back and see my progress. Maybe it will even help or inspire you, dear reader.
Why I'm Learning to Code
There's one question I keep returning to as I write this post: "Why is this time different?"
I've given up on learning to code many times, after all.
But over the past summer, I learned some things that changed my perspective and got me excited about programming once more:
1. My friend learned to code
My friend Thomas Frank used a combo of self-study and ChatGPT to learn to code as part of a project he was working on. I found this very inspiring, plus I was excited to learn about his use of AI in the learning process (more on AI below).
2. Discovering new job opportunities
I always knew that learning to code would be helpful in my career regardless of field, but I recently learned about jobs that combine my existing content creation skills with coding knowledge.
At a meetup in Denver, I spoke with someone who works in a field called DevRel: developer relations. And, more recently, I've discovered the abundance of technical customer support roles that require some knowledge of coding.
Learning that programming didn't have to be my primary duty made a technical job feel fresh, exciting, and most of all attainable.
3. Seeking a career change
Related to the previous point, I've been in a phase of career exploration over the past year.
I'm still searching for a full-time role in content writing or SEO (and I'm open to contract work, drop me a line here if you'd like to work together).
But I've been on the grind long enough that I'm starting to consider other options. Especially if I can find a job that blends my existing content skills with coding, such as technical documentation or DevRel.
4. The thrill of learning
I love learning for its own sake, but it's been a while since I embarked on an ambitious self-study project.
My last (and still ongoing) project was learning to play guitar. But now that I have the basics of that down, I want a new challenge.
Since coding is such a vast, rapidly changing field, it offers endless fuel for my curiosity.
5. Technical self-empowerment
Even in the age of AI, simply knowing how to make and maintain a website is still a huge skill. It saves me tons of money, as I don't have to pay someone to build sites for any projects I undertake.
I view learning to code much the same way: it will empower me to make whatever I want with computers and the internet. I don't have to settle for what I can build with no-code or GUI tools; I'm in control of what I want to create.
6. Having fun
When I'm getting frustrated or bored with learning to code, I try to remind myself of all the cool things coding lets you do and make!
Currently, for example, I'm working through a JavaScript course that includes tutorials on things much more exciting than the standard to-do list app: games, face detection, and more.
How I'm Learning to Code
"Few people fail because coding is too hard, they fail because they lose motivation" - Lane Wagner, creator of Boot.dev
Wanting to learn to code is all well and good, but how am I going to do it?
I focused too much on this area in the past. I wanted to find the "perfect" course, the "best" method. Which led me to jump around from resource to resource without actually learning or practicing much.
This time around, I'm keeping things simple. My goal is to do only enough formal study to build a good foundation. From there, I plan to dive into real-world projects.
I'm taking this approach because every programmer I know has given me the same advice: if you want to learn to code, make something! You'll learn far more that way than you ever will in a formal course.
For my part, I'm starting with a course called Beginner JavaScript. I bought this course back in 2020 near the start of the COVID lockdowns (as I said, I've tried to learn coding many times).
Once I complete Beginner JavaScript, I'll transition to project-based learning. I have a few ideas for things I want to build, but I'll likely start with learning to use the Google Maps API.
I've always wanted to make Google My Maps with custom markers, and doing that requires some JavaScript. Plus, from what my developer friends have told me, learning APIs is a major part of modern software development in itself.
The Role of AI
So far I've tried to avoid talking about AI. Frankly, I'm bored of hearing about it.
Still, I know that AI is an inevitable part of the learning to code conversation.
I don't know enough about AI or coding to tackle the "Will AI make software developers obsolete?" question. A similar question comes up enough in my own field of content writing, and I still don't have a good answer.
I will say this: people talk as if AI has already taken all the coding jobs. But that hasn't been the case, at least not yet.
Jobs for software developers are still out there, just look at any job board.
The number of openings further increases if you look at jobs that require coding skills but don't have software development as their primary duty (marketing analytics, technical SEO, and technical documentation, to name just a few).
Not to mention, AI is (somewhat ironically) an amazing tool for learning to code.
Even before Github Copilot and its ilk became tech press darlings, ChatGPT was already a super useful pair programmer/programming mentor.
As I said above, my friend Thomas used ChatGPT extensively when he learned to code. You can learn more about his process in the video below:
I'm deliberately holding off on using AI tools like Copilot until I've finished Beginner JavaScript (again, avoiding shiny objects as much as I can).
But since AI is already so much a part of the modern software dev workflow, I'm going to make learning AI coding tools a priority in the near future.
Tracking My Progress + Next Steps
What's next, now that I've laid out my plan?
To start, I'll be posting regular updates to this blog.
I don't want to commit to a particular frequency. I expect my progress to be less than linear, and some weeks I won't have much to share. Plus, sometimes life gets busy, and I'd rather not promise what I can't deliver.
In tandem with this experiment, I've begun another: I joined Threads. I've wanted to try microblogging for years, and now that Twitter isn't exactly what it used to be, Threads seems like a great place.
So in addition to long-form updates here (and possibly on YouTube, stay tuned), I'll be posting smaller daily updates on Threads. Follow along there if that interests you!