Projects, Projects, and More Projects: Free Code Camp

(Previous: Whiteboards in Engineeringland)

fcc logo

How do you make sure you retain what you learn each step of learning to code, AND have a way to show prospective employers how far you’ve come?

Projects. Lots of projects.

Anyone can list JavaScript on their resume, but if you have a variety of projects in your portfolio, an employer can see exactly how you’ve been using JavaScript, and whether or not your skill level would be a good fit for their team.

Not to mention that the more projects you’ve done, the more tools you have in your (virtual) developer’s tool belt–you have lots of examples to use as patterns that will inform more difficult coding tasks.

This is where I’m happy to recommend Free Code Camp. Free Code Camp is free (!) and offers certificates in Front End Development, Data Visualization, Back End Development, and Full Stack Development. Each certificate path includes a number of exercises to learn the necessary skills, as well as a project portfolio. For participants who complete all four certificates, there are also opportunities to volunteer to work on full stack projects for nonprofits. There is also a very active chat room where participants review each others’ code and help each other when they get stuck, and various Facebook groups by city for participants who want to meet up in person at a common location.

Free Code Camp certificates are meant to be completed in order (here’s a map of the whole process), and so are structured in order of increasing difficulty, but many participants skip to what they are most interested in, or only do the challenges required for the certificate, without the preliminary exercises.

Since I had been programming for a while before I found this site, I went straight for the required certificate challenges for the Front End Certificate. There are two sets of Algorithm Scripting challenges, including problems like Sum all Numbers in a Range, Sum all Odd Fibonacci Numbers, and Translate a String to Pig Latin. Many of these are tricky, or involve specific JavaScript tricks, but there are also a lot of people who work on them and give each other feedback, so figuring them out is mostly a matter of perseverance.

But the really fun part (for me at least!) are the projects. For the Front End, there are a set of projects involving getting information from AJAX calls to APIs and parsing it into something usable for your project (for example, Build a Random Quote Generator and Build a Wikipedia Viewer), and then another set of projects that are pure JavaScript (for example, a calculator, a Tic-Tac-Toe game, and a Simon game). I was looking at my notes a LOT when I did the first AJAX/API project, but by the time I got to the fourth, I felt so much more confident in my abilities. The same thing happened with the JavaScript set–by the time I finished the last project, I felt like given a little time and research, I could figure out anything. It was really empowering.

Each project also has a checklist of user stories and requirements, like what you might see in an Agile work environment, and a sample project that you can look at to get a general idea of what is expected (although it is also okay to take your project in a different direction, as long as you can check off the requirements and user stories!).

Front End and Visualization projects are built in Code Pen, which I found easy and helpful to work with–each “pen” comes preloaded with HTML, CSS, and JavaScript files already in place, which means you can jump in right away, and make changes to your project that have instant results.* And you can toggle between an Editor View and a Full Screen View of each project, to see how a project would appear to a user.**

Now that I’ve finished the Front End projects, I’m working through the Visualization projects, which are a little more challenging, but continue to build on the same skill set from the previous projects (here’s my current project set, if you want to get an idea of what the projects are like).

Completing one project after the next has given me more confidence, and at this point the challenges that I’m working on are often analogous to real-world developer challenges, which is also encouraging. I can see how far I’ve come in a short time, and I’m determined to keep pushing ahead to the next set of challenges.

So if you’re like me and love project-based learning, I highly recommend Free Code Camp!

(Next: “Simple” != “Easy”)

*Although, a word to the wise, beware of writing infinite loops or unfinished loops on your JavaScript page–the code compiles automatically, and can crash your program while you’re still writing it! If you accidentally write something in JavaScript that crashes your program, copy your URL and add “?turn_off_js=true” to the end of it to turn off the JavaScript (without the quotation marks, of course), and then you can fix whatever caused the problem.

**Back End projects are done in Cloud9, an online development environment that skirts some of my I’m-not-using-a-Mac dependency installation problems. Love it!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s