Here’s real story without all the “I did it and you can too!” hype thrown in for click bait.
It’s Grueling and Awful for 1–3 Years
Let’s get real. Unless you’re a pre-trained super-intelligent AI or a child savant who is a reincarnated Mozart, you are not going to sit down with an instrument and be great or code the next machine learning breakthrough on day one. It’s going to be real, hard, and real hard to get good enough to make money with either one.
Learning to Play Music
I started seriously learning to play an instrument, alto saxophone, when I was in middle school. When I got it out of the case the first time, I did not even know how to put it together. For the first several weeks and probably months, crude screeching noises, audible cursing, and a general lack of coordinated finger movement were the most common outputs of my early efforts.
However, probably about a year into playing only really in band at school, the light bulb went off about getting my eyes, mind, and body to cooperate in the right order where instead of just objectively sucking, I was able to play the melodies on the page with a bit of style and actually have some fun.
Once I got into high school, I got very involved with band and decided to learn guitar because I wanted to be Randy Rhodes after watch him melt my dreaded teenager face on Ozzy Osbourne’s “Mr. Crowley” shortly after I discovered YouTube existed.
At this point, I had embraced the suck for several years on saxophone where I could read music pretty well and understood how to learn new music. Was it all that enjoyable getting to that point? Not really. It was tedious, boring, and difficult.
The first couple guitars I had were just not great, but when I got one that was usable, a black Epiphone Les Paul with a junky amp, a whole new phase of embracing the suck began. It was different this time.
I noticed that rather than taking about 3 years to be decently proficient at playing well enough for people to recognize what I was playing, it took only about a year. Why was that?
I had learned how to learn.
Fast forward a couple years, and I was able to pick up a bass to just play well enough to get by without much effort. Sure there was some new learning, but after only a couple weeks, playing my favorite songs on bass was pretty doable.
Learning piano was a little more challenging, but it still took drastically less time than it would have if I had started from scratch as an adult with no music experience.
Learning to Code
My path to learning code was a bit forced. The greatly oversimplified version is that I was working with a partner while still in undergrad on a startup. We got a little money together and decided we needed a website. Neither one of us knew the first thing about web development, so we hired a “professional” to help us out. They made probably the single worst promo website I have ever seen and we blew the entire marketing budget on this site. I had the choice to either learn how to make a website or go without, which was not an option.
We didn’t have any money or WordPress or Squarespace or any template site that most people would use, so I started cobbling one together with my trusty old MacBook Pro I had for school and the Bootstrap framework for HTML, CSS, JS, and a smidgen of PHP was involved.
The first couple versions of the site sucked, but they were good enough to show people that we had a business with a website after a couple months of not sleeping, Googling every step of the process, and figuring out how to deploy a hand coded website.
That business ultimately did not work out for a lot of reasons, but I did get started down the road of programming.
I kept practicing. It was the exact same process as learning saxophone when I was a kid. It took about 3 years to get good enough to show people something useful and for normal people to think that my work was actually good.
The Fun and Profit Part
After I graduated, I worked as a musician playing multiple instruments and as a freelance web developer for small clients I found along the way through word of mouth only. Between playing shows, being involved in the booking, and doing web development on the side, I was able to stay independent and be able to scrape by without a “real” job. It wasn’t pretty, but it worked.
Toward the end of that third year, I kept reading about how Python was a really cool language for all kinds of things. I soon discovered that there were a couple web development frameworks with Python on the back end, namely Django and Flask.
I decided to apply my web development experience to learn Django. That started me down the road of getting pretty proficient with Python. Well, turns out that it only took about a year to get pretty good and start producing higher quality work using the Django framework. It also planted the seed that led to my successful transition to 100% remote work just as the pandemic hit.
Over about 4 years of playing music and writing code on the side, I ended up doing a master’s program in IT completely online. Sure, there were a lot of papers, but I had multiple courses with R and SQL.
Guess what. It only took a few weeks for me to be really proficient in using the new languages. It was exactly like moving from guitar to bass. The principles were the same, but the fingers just had to move in a slightly different way.
Toward the end of my master’s program, I took up a side hustle that involved teaching students around the world R, Python, SQL, and economics (my major in undergrad) completely online. Between that side hustle and some client work from time to time, I was able to go fully remote just before the pandemic began.
As I am working through my PhD, I am actually earning more money now being fully remote and working fewer hours than I ever did having to show up anywhere while still being able to keep up on the school work.
Was It Worth It?
For me, the nearly decade long adventure of programming set me up for being able to achieve my goal of being able to work 100% remotely 100% for myself was 100% worth the long struggle. Results may vary on your end and will take a while to materialize.
Realistically, learning to code is not going to be worth the time and opportunity cost to a lot of people. It’s your choice what you do. This is my story without the fluff telling you that it isn’t all fun and games. The work is hard, tedious, often lonely, but way better than having to be dependent on unemployment during the pandemic.
For those of you who are interested more in why music and programming go hand in hand, check out my article about Why Music Composers Make Good Programmers here.
Here is my take on the question Is Online Education Worth It?