As a late Gen-Xer whose father was an early adopter of technology, I have been working on computers since about the time I could read.
Our first family computer was a Kaypro II, a large metal box with green screen ASCII graphics. I was glued to the computer after school and on the weekends. I learned game rage while getting killed by “rocks” (falling o’s) playing Ladder, a Donkey Kong-like game. I drew paper maps while exploring the world of Adventure, a text-based fantasy quest game. I learned basic programming, well, programming BASIC. I used its word processing program to write about being Catholic (according to my grandfather, the worst thing that could happen to a kid) and to write the first chapter of a still-unfinished mystery novel where the female protagonist’s dinner partner was murdered on a first date.
Later, my gaming enjoyment expanded to our Sega game system (Wonder Boy!) and eventually an upgraded PC with actual color graphics we got in the early 90s (KingsQuest!). Despite a lifelong love of computers and math, for some reason I was never drawn to this as a college major or career. Was it laziness? Maybe.
I majored in Psychology, phoning in much of my coursework and filling electives with theater and dance classes. Despite my love for nerdy things, I preferred focusing on people and the arts.
A couple of years after I started working at Southwest Airlines as a Crew Scheduler, I was feeling a little bored. I volunteered to help test our department’s new optimization software. Building requirements, testing, and working on implementation plans was my jam, and eventually my path into leadership. Increasing responsibility led me further away from hands-on work, though, until I took a step back and built our department’s first analytics team.
I learned to code again, using SQL to pull, join, and analyze data from multiple systems. Building calculated fields and visualizations in Tableau put me into the same flow state I felt on the Kaypro as a young child. As the team grew, my time spent in meetings dwarfed my time playing with data. I missed it.
When I left my 20-year career, I decided to use part of my sabbatical to learn to code in Python. A friend recommended edX’s MITx 6.00.1x, “Introduction to Computer Science and Programming Using Python”. It started two months into my sabbatical, after I’d had some time to decompress and start volunteering.
Would this bring me back to the road not taken, a career in coding?
Course overview
This course was a two-month Massive Open Online Course (MOOC) built from MIT’s introductory computer science curriculum. I opted for the “Verified Certificate” for personal accountability and the ability to test my knowledge with graded exams. The course released new units and work with due dates on a rolling weekly basis.
The course consisted of:
Video lectures with accompanying powerpoint PDFs
“Finger exercises”, like quizzes, including auto-graded questions and shorter coding problems to test knowledge of individual lessons within a unit
“Problem sets”, like tests, including auto-graded questions and coding projects to test knowledge of each unit
Midterm and final, timed tests using both questions and coding problems to test knowledge of the overall course material
TAs moderated imbedded discussion boards to answer learners’ questions. I found these helpful when I was stuck on a concept. They often linked to YouTube videos which provided more thorough and intuitive explanations of coding concepts than the lessons provided.
By the end of the course, I learned:
Python coding syntax
Good programming practices, including testing/debugging and how to reduce algorithmic complexity
Object-oriented programming
Restraint from the impulse to hurl my laptop out the window
This class was tough. Without some programming and testing knowledge, and aptitude for learning such things, I wouldn’t have gotten through it. I dedicated 10+ hours per week to the coursework and problem sets. I used a decent amount of outside resources, mostly a PDF version of a textbook and YouTube videos, to understand the concepts. I felt the same level of frustration as when the rolling o’s crushed me playing Ladder. Similar to the maps I drew while playing Adventure, I pulled out the old pen and paper to sketch out algorithms to help me solve the problem sets. I made a game out of seeing how I could solve a problem with the fewest possible lines of code.
Despite missing an entire week due to Snowpocalypse (my state’s inability to provide power during a freeze), I finished the course with an A. I enjoyed the learning process enough to take the next session, MITx 6.00.2x, Introduction to Computational Thinking and Data Science.
This next session had a similar cadence and included:
Optimization algorithms
Statistics and probability
Simulations
Interpreting experiment data
This course was equally tough for me, and also worth my time. I’d spent years using optimizers to solve complex crew-related problems in my career. It was fun to learn the kindergarten version of how these programs are created.
What did that A actually get me other than a little ego boost?
Experiment conclusions
Four months and hundreds of learning hours solidified two things:
Learning and solving quantitative problems tickle my fancy. My future career should include some aspect of working with systems and numbers.
A future career consisting mainly of coding isn’t going to be fulfilling enough for me.
I loved learning how to code, but couldn’t see myself doing this 40 (or even 20) hours a week. Starting midlife as a beginner, I found it too daunting to reach the point where I could contribute as a full-time software engineer. I would rather have these technical skills in my back pocket to use when needed.
Also, if I had to do it all over again, I would take a less theoretical class with more practical applications. Since taking the class, I haven’t used Python at all. In fact, the only time I used Python for anything outside of the course material was to make a little video congratulating my former coworkers on getting a big project into production.
I intended to learn Python scripting and apply it in more practical ways. It’s been nearly two years since I finished the courses, and I haven’t. That indicates to me that I need to have a specific reason to do so, or it’s just not a priority.
To anyone interested in a future career in coding, these courses might be a good way to get foundational knowledge in computer science and see if it’s a viable future career for you. Each course is relatively short (~2 months) and inexpensive (free with $75 optional Verified Track). However, a boot camp with more interactive help and practical application might be a better option. The best course for you is one that you’ll finish.
I’m glad I finished. If anything, I proved to myself that even 20+ years out of formal education, I have the aptitude and discipline to learn something technical.
As a people person who understands how to code, I wonder how those two could be combined?
Wow Claire, even with your interest as a child, that's a lot to learn particularly in a MOOC course (I think they have low completion rates). Congrats for finishing and following your interest to learn something new. I enjoyed your YT video too, I'm not going to lie, I somehow fell for your beach trick haha. I think learning Python will surprise you in some way in the future if it hasn't already. I'm starting to believe there are no accidents, that everything comes together one way or another. Or maybe the purpose was to follow this childhood excitement. Either way, very cool to see and read about!