About a month ago, I started off on a journey which I hope to detail in this blog, both as a way to keep track of the things I’ve learned and to record my successes and failures on the path to mastery of software engineering.
I’m rounding the bend on finishing the first ‘real’ course that Launch School offers (a Intro course is required to begin the actual Launch School curriculum), and wow — have my eyes been opened. I’ve certainly got a long way to go before claiming proficiency (let alone mastery!), but I’ve begun to love the journey. Maybe this is outside the scope of Launch School (this is after all a required blog post), but I’ve found myself at a point in my life where I believe an understanding and appreciation of the lifelong journey to true, “capital ‘M’” Mastery are the keys to long term fulfillment.
Like droves of others, I took up golf during the pandemic, both as a way to relieve stress and to build upon a hobby I could enjoy with my father. If you’ve read George Leonard’s book ‘Mastery’, you could easily place me within the ‘Obsessive’ category when I began. I watched every Tour highlight I could find, inundated myself with instructional videos, and spent countless hours at the driving range, hacking at ball after ball. What did I gain from that obsessive practice? A back injury and a month of not being able to swing a club.
While nursing my back injury, I read the aforementioned book ‘Mastery’ as part of the Launch School Orientation course and felt like the fog had been lifted. I could see the behaviors/patterns in my own life reflected and expanded upon. I could see the dozens of times I tried to ‘learn to code’ but gave up when I felt that I was plateauing. I was forced to confront the reality that true Mastery is not an end goal. It’s cliche to say ‘It’s a Lifestyle,’ but I’ll be damned if it isn’t the truth. Learning to enjoy the process of improving and understanding, even relishing the plateaus that are a natural part of growth, has been overwhelmingly transformative for my mental health. There’s a certain humility that’s required: the humility to accept that you’re not the next Tiger Woods and that it’s going to take you a damned long time to become even a ‘good’ golfer.
In the same vein, I’ve had to accept that the odds I can become a competent software engineer in the oft-advertised “12 weeks” that bootcamps and crash courses offer are slim. I’ve had to accept that, yes, it will take some time — years, even — to become a proficient software engineer, and that I should learn to enjoy the process itself.
I’ve just finished creating a blackjack game in Ruby as part of the Launch School curriculum, and I’ll be honest; I was a little unconfident. It seemed a bit daunting, and though I’d already created a similar program in Python, I didn’t remember the experience fondly. As I continued through the process, though, I realized just how much I had learned in my short time with Launch School. Beginning the process using the PEDAC method was incredibly helpful, and the basic, yet vital, concepts of pass by reference vs. pass by value, scope, and a rigorous usage of official documentation made this process far more enjoyable than I expected.
6 months ago, I might have read the project description and just stopped there, resigning myself as “non-technical,” content with the fact that I knew more ‘code’ than the average bear. All of these were covers for insecurities and feelings of inadequacy. Now, with the assurance that I’m on the road to mastery, and the confidence that a more thorough understanding of the fundamentals gives, I’m ready to confront whatever the next challenge may be. I may not solve it the first time, it may take days or weeks, but I know that given time, dedication, and a good dose of peer-support, I can and will solve it.