I had some qualms before starting freeCodeCamp (fCC). So many people recommended it, but it seemed crazy to me that basically everyone that does fCC would have the exact same portfolio. Sure, it’s nice that the projects are laid out such that the next one is always just barely within your capabilities. But I kept wondering how I could stand out to recruiters if my projects were the same as everyone else’s.

But then it hit me.

Recruiters are not going to really care about these projects. The purpose of these projects was for me to learn by doing. Sure it’s nice to read textbooks and follow tutorials to find the right way to do things. But that is passive learning. Everyone always thinks that they know how to do something immediately after following along in a tutorial…until they actually try to do it…and they realize that none of it stuck and they are back at square one. As soon as I realized that the projects were for my learning only, from that point on I was all-in. If I really wanted special projects on my portfolio, then I could add an extra feature to make them unique, or I could just build other projects.

The projects

They are fantastic. They really are. The two most common complaints I see regarding people working on projects are the following:

I just can’t think of any interesting projects. I literally am drawing blanks here. I feel like I have great project ideas, but they end up being way too difficult for me and now I have several unfinished projects.

In my opinion, FCC handles these complaints beautifully. The projects are interesting and at the perfect skill level. There are just enough of them to really hammer down key concepts for building web apps.

The negatives

The exercises are almost all copy-pasta. I like the projects and the challenges, but the learning exercises are almost a waste of time in my opinion. They tell you how to do something and then make you do it yourself, but the answer is almost always basically given. This makes it easy to breeze through exercises without learning anything. So then by the time people get to the projects, they don’t know anything and have to learn on the fly.

They try to keep you away from using your own text editor. This makes sense given that setting up a development environment could prevent a lot of people from getting started, but if you know you’re in it for the long haul, then you should really do all of your work in your own environment and resist using codepen. Don’t get me wrong, I love me some codepen. But as a beginner, it is easy to find comfort in it. If you know that you should work in your own development environment on your own machine, then you can just do it and ignore when they tell you to use codepen.

My recommendations

Focus on the projects. If you find better resources to learn HTML/CSS/JavaScript, then feel free to leave fCC and do them, but I recommend coming back and completing the projects in your own text editor in your own development environment. One thing I did find myself doing was getting the projects to the point where they fulfilled the user stories, and then moving on without polishing them. I felt like I was in a rush to keep moving forward, but the main reason was just that I find CSS to be tedious. I planned to come back and make them presentable at some point (and never did). As for a recommendation, the jury is still out on whether that was a good strategy. On one hand, you don’t want to be stuck on a project for months trying to make it perfect without moving on, but on the other hand, you don’t want to move so quickly that you aren’t learning some of the things that you should.

I am absolutely glad that I chose freeCodeCamp over the Odin Project, and I would give that advice to anyone that asks. As soon as you find yourself copy-pastaing anything, that is the moment that you need to go back, re-read the material, and make an active effort to actually learn it. I pretty much cruised through the program until I found my way to React. If you want to know I did end up learning React, check out this post.

I also recommend that, as you’re working through fCC, you think about what full stack web apps you might want to build. That way once you’re through the frontend and backend sections, you can make some of your own, unique projects that you could put on a portfolio. I think that really worked out for me. If you want to know more about the full stack web apps I built, check out my portfolio: https://austintackaberry.co.