by Collin Ferry

How Long Does Free Code Camp Take?

I spent the end of winter in a solar-powered, stove heated cabin in Northern Utah. There was no shower, but we mounted a satellite to the roof and managed to pull in faster internet than my apartment in San Francisco. I decided to learn to code.

I wanted to use the isolation to learn something new. I’ve been technically minded for as long as I can remember, but my past attempts at coding have yielded unspectacular results.

I learned some C++ in high school but mostly wrote gargantuan, repetitive code because I didn’t understand functions. I took a Visual Basic .NET course in undergrad but I have almost zero memory of what went on there. I worked through Codecademy’s JavaScript course a few years ago from a hammock in Guatemala.

I think this sinuous path of not-fully-learning did prepare me in some ways. I also hold a degree in Computer Graphics, which was much more heavily focused on design, animation, and modeling than it was on coding, but it did give me some foundational knowledge of HTML/CSS.

A lot has been written on “why coding” so I won’t beat a dead horse here.

The short version is this: smart people seem to agree that knowing how to code is a force multiplier for almost everything else in your life.

After digging around online to determine the best place to start, I decided to start working through Free Code Camp. The runner up was The Odin Project but Reddit seemed to agree FCC was the stronger starting point. And for whatever reason I trust Reddit’s hive mind when it comes to this stuff.

So I set a small initial goal of 2 hours/day and installed RescueTime to track myself. Here’s a glimpse into how it went.

DAY 1

I worked quickly through the first three sections. HTML5/CSS, Responsive Design with Bootstrap, and jQuery had an estimated total completion time of 13 hours, but according to RescueTime I knocked them out in just four. At this point I wondered if I was doing something wrong, but I decided to congratulate myself and keep moving forward.

DAY 3–4

I’d been on a roll and was moving smoothly through the Basic Javascript section. Early in the morning on Day 3 I started feeling stuck for the first time on a Profile Lookup exercise involving the use of a loop to iterate through an array of objects. But by 10:30pm I had made it almost halfway through Basic Algorithm Scripting (and according to RescueTime I’d spent a total of 12hrs 20min on Free Code Camp).

The next morning I started plowing through the rest of the basic algorithms, writing some of the solutions in 3–5 minutes. I confirmed in the FCC chat that many people start off relatively quick and slow down over time as the relative difficulty increases (thus making the estimated completion times become more realistic).

That said, by the night of the fourth day I’d wrapped up the algorithms with a grand total of 18 hours on FCC (and an estimated 22 hours of total labor counting time spent on other research resources like the Mozilla Developer Network. The estimate at this point was 75 hours.

My original micro-goal of 2 hours/day had left me thinking I’d have completed 100 hours of work by the time I left my Utah hideout. Now that I’d become really inspired with the work I’d completed 75% of where I wanted to be in a mere four days.

DAY 17

I went into major heads down mode and didn’t take any progress notes for two weeks. The bad news is there’s little to report there, but the good news is FCC had me in a flow state for two straight weeks. By this point I had completed a skeleton portfolio (now a bit meatier) and built a Random Quote Machine as well as a really awful Lord of the Rings inspired weather app. On Day 17 I submitted my Wikipedia Viewer. Learning how to use APIs was fun and useful. It turns out you can build things of medium complexity without understanding back-end servers or databases (you can just plug into someone else’s)!

DAY 23–24

Working through the intermediate algorithms I found myself starting to see the difference between clean and ugly code. I also began embedding more notes to my code for later review. Somehow it took me this long to realize that console.log(“tests”) always get spat out in the JS developer console in the browser. I had started using https://repl.it to run code that would display the console logs as clear output. Kind of embarrassing now but hey — I didn’t let it stop me and now you know better.

I crashed my browser for the first time working through Sum of All Primes. Regardless, I ultimately worked out the issue and felt really great about getting 99% of the prime function solved without any outside research.

DAY 31–33

I was finding the Advanced Algorithm challenges pretty…well…advanced. I was pretty ecstatic when I finished the “Friendly Dates Range” Advanced Algorithm in just 90 minutes. In two of these advanced algorithms I referenced specific functions off StackOverflow to help with the cleanliness of my code. At the time I worried this might come back to hurt me, but many resources I’ve encountered argue that what makes a great programmer is the ability to ask a search engine specific questions. For instance, creating a JS version of Heap’s Algorithm from scratch would be high level mathematics and a reinvention of the wheel. Finding a JavaScript model I could work from allowed me to actually finish building the car.

On day 33 I wrapped up the last of the advanced coding challenges. The next project (the first of the Advanced Front End Development projects) required building a JS Calculator. It was nice to dig back into the HTML/CSS side of things. I upped the challenge by live coding on FCC’s Twitch channel and ended up completing the project with a live audience of 24 people. This was great experience which required me to explain my code as I wrote it. Live coding also has a built in need to maintain momentum. It rewards a “move fast and break stuff” style of coding over a more research-heavy method.

DAY 40

Coding the Tic-Tac-Toe game proved to be (for me) the most exhausting project of all. For me, coding the AI wasn’t very fun or satisfying. In my opinion, my end result had weak AI and a sub-par interface. At the time I wondered if perhaps building interactive things like this simply wasn’t my passion.

DAY 45

I worked insanely hard on the final project which asked for a JavaScript replica of the 1970’s game Simon, complete with an optional “strict mode” and an increasing speed of play. I was determined to make it exceptional. As of this writing I still feel like my Simon is one of the best looking versions out there. On day 45 I finished the project and grabbed my Front End Development certificate!

Final Stats:

77 hours reference and learning

67 hours software development

41 hours communication (including the FCC chat)

= 185 hours over the course of 45 days (or ~4 hours/day)

I ended up finishing the curriculum in about half the time.

I can’t recommend Free Code Camp’s Front End Dev program enough. Regardless of how long it takes you, it’s free, it’s easy to start, and it has an intelligent and accessible community (if I do say so myself).

I had found myself feeling intellectually starved and learning to code provided a satisfying stretch for old mental muscles. I’m moving back to San Francisco, and intend to continue this journey into tech.

If you’re learning to code, treat your education like the job that it is. Follow me and let me know how I can help! Never before have the huge gains of iterative progress been so clear as when learning to code.