A road that turns in the distance, with grey clouds overhead
I last wrote about why I’m learning to program at the age of 29 (here if you’re interested). Now I’d like to share more about how I’m learning programming. It’s been a somewhat typical journey so far, beginning with exploration and ending up on a more defined path. I hope that reading this can help you figure out the best way you can learn, too.
My real interest in coding began while I was working a full-time job. I had dabbled in the past, tried making a simple little Android app, but never finished. When I realized it was what I wanted to do for a living, I started where a lot of people begin their coding journey: freeCodeCamp. I read the testimonials and got excited about the idea of being able to get a coding job in just six months (maybe less because I’m pretty smart, right?). I worked through the first group of lessons on responsive web design, mainly on my phone during my daily commute (I carpooled, so don’t worry — I wasn’t coding and driving). I did the first project, a simple tribute page.
In the mean time, I found a few apps I could use to learn coding on my phone while on my lunch break. SoloLearn provided a good basic introduction to various programming languages. DCoder was a good app for practicing solving algorithms and getting used to writing code in general. But as useful as a smartphone is, the truth is that it’s still very difficult to learn to code on your phone — and employers aren’t looking for people who specialize in coding from a smartphone, either.
I mentioned that I was working a full-time job when I began looking into coding. If I had been single, I might have continued studying programming part time, putting in 20–30 hours a week while working 40. Having a wife and two small children, however, I soon realized that I wouldn’t have enough time to commit to coding. If I wanted a programming job anytime soon, I’d have to focus full-time on learning. So I began to make plans to quit my job to learn programming.
A person waving good-bye
About three months after that, I did quit my job, on the last day of September. In my hubris, I planned to study for about three months, perhaps four, and have a programming job by February at the latest. Turns out that wasn’t realistic. At all.
Mainly because learning on your own is hard. Or maybe it’s just the fact that I lack self-discipline. You see, Halloween is in October, and it’s our favorite holiday. We do a free haunted house for the trick-or-treaters, and go all out. Naturally, since I wasn’t working, I spent some time decorating (we may or may not have planned my quitting my job at this time for this very reason). After Halloween, our congregation has a lectureship every November, so I attended that and lost a week of studying. Then there was Thanksgiving, then Christmas, my daughter’s birthday, then my wife’s, then my son’s…
But these events weren’t the only distractions: do a search on the internet for how to learn to code, and you’ll find thousands of websites, along with overly-involved discussions about which languages are best to start out with, and which resources are the best for those languages… Then there’s time spent looking on Indeed for programming jobs to see what skills employers are looking for… how is one to make any progress amid all this?!
At some point, I think maybe late October, I decided that I wasn’t too excited about FreeCodeCamp anymore, because I really prefer the backend side of programming (and after all, HTML and CSS aren’t even programming languages). I began looking for alternatives, and came across The Odin Project.
Right away, I liked how much more complete The Odin Project’s curriculum appeared to be. It had the backend (which was still ‘coming soon’ at freeCodeCamp when I started), the frontend, and even a section on getting hired. Also, after the intro to web development section, it went straight into the backend (and I do love Ruby). Finally, I liked the approach The Odin Project took for their curriculum: rather than write all their own material on each topic, they linked to the best resources they could find. In theory, the result is the best possible curriculum.
Of course, switching to a new and more complete program would mean more time, but I was still naive, arrogant, or both, and thought I’d still have a job by February (if you haven’t noticed, I’m posting this in May and still learning — no job yet). So I began working though The Odin Project, and made pretty good progress. For a little while.
Even with a good curriculum to follow, I began to get stuck partway through the Ruby course. I had difficulty keeping track of all the information I was reading, which in turn hurt my motivation. I suspect everyone who learns to code on their own has days like this. Sometimes just don’t feel like reading another article you barely comprehend. I eventually decided that I just needed to be done with the Ruby section, and skipped ahead to the final project: a two-player command-line chess game. Upon completing this, I felt a great sense of accomplishment that boosted my motivation and helped propel me forward. Sometimes you just have to keep moving, even if it means skipping things. Getting stuck and giving up is far worse than missing a bit of understanding which you can pick up later.
Having regained motivation by completing the Ruby final project, I moved on to learning Rails. This course consisted primarily of following Michael Hartl’s Ruby on Rails Tutorial, which is an excellent resource. The Odin Project adds value by assigning additional readings, so that you can better understand the steps you are taking in the tutorial. There are also smaller additional projects along the way to further reinforce the learning. This section went better than the Ruby course, but I was beginning to see that completing The Odin Project curriculum would take a lot longer than I had thought. It was already February, and I was going to be spending at least a couple more months. Keeping myself focused and motivated would continue to be a challenge.
A person helping another to climb
Around the middle of February, I received an unexpected email. It was an invitation to apply to a program that paired students together to complete The Odin Project, work on freelance projects, and make open source contributions. These latter two areas were definitely interesting to me, as I did not have any experience with me. I knew they would be very helpful in finding a programming job. I also knew that having a programming partner would help me stay focused and improve my overall learning experience.
Looking into the program, I found that it lasted 4 months and did not require any upfront payment. Students would pay back a percentage of future earnings up to a set amount after completing the program. It was going to take me at least two more months to finish The Odin Project on my own anyway. And if I did, I would be completely on my own preparing for interviews and looking for a job. I decided to take a chance on this previously unknown company/program.
Joining the Microverse Fast Track program has been the best decision I have made since I began learning to program. You can read about my first month in the program here, but I’ll summarize and expand upon that a bit. I have been working together with a coding partner 40 hours per week since March 5 (nearly 12 weeks). During that time, I have:
The structure and accountability from being in an actual program has been a great help to me. Perhaps even more important, though, is the feedback from mentors. When you’re learning and coding on your own, how do you if the projects you build are any good? With someone to review your code, you can be confident in its quality. You can rest assured that if a potential employer looks at your GitHub repositories, she isn’t going to say, “What is this?” and immediately move on.
Twelve weeks into this program, I feel like I’m truly being prepared to work as a remote developer. It has taken me a while to get here, but I am confident in my future as a developer. To those just beginning their journey, I want to encourage you to study on your own for as long as that is working. You can learn a great deal that way if you stay focused and motivated. But if and when you start to need help, don’t be afraid to seek it. There are many programs available to help push you through to the finish line, and most of them are worth the investment.
Keep coding!