by Sophanarith Sok

How I wasted two years of my life trying to learn web development before discovering Free Code Camp

1*qI4dVsz38EixPWPxqX--9Q

It was two years ago. A time before Free Code Camp even existed. I googled “how to become a web developer,” and a long list of languages appeared. I did some research, and it seemed like Ruby was the most popular language.

“If I learn Ruby in 4 months, I can build cool things! Maybe even get hired as a junior developer, and learn even more cool stuff!” I thought to myself.

This was the most delusional idea that my brain had ever conceived. Keep in mind, at this point I had barely touched HTML, let alone CSS and JavaScript.

1*nkWf1zVrZ3DCZgnsZAXLWg

After searching for some books, I found a very well-received beginners book on programming called, “Learn to Program” by Chris Pine. It introduced me to the basics of programming.

Each chapter had several simple algorithm problems that you could complete as a review. After about a month working through the book for many hours every day, I was eventually able to run through the entire book in a single day and solve every problem within a few minutes.

At this point, I had a pretty big ego, and I felt that I was pretty good at being a programmer. I thought, “Hey, I can run through this book in a day. I’m a programmer! Right?”

I was incredibly wrong. I had only scratched the surface of a gigantic iceberg that never really has a base, but rather continues to widen the deeper down you go.

Like an ancestor from thousands of years ago that explored an entire island and realized that across the sea, there is an entire world, above the clouds, there is an entire universe.

With the power of Sublime Text 2, Ruby, and one book, I thought I could create anything I imagined. Now, two years later, I realize that that was simply far from the reality.

If I could go back in time and speak to my past self, I would tell him that the realities of his ambitions are bigger than he could fathom, and that this is a long grueling journey should be taken seriously. “Stop treating programming like a game because your life depends on it. And in two years, you will realize how serious this really is, and how much time you’ve wasted.”

Maybe I shouldn’t be too hard on myself. After all, I didn’t really know where to start. I had one book, and would run through course over at Codecademy.

During this time, I didn’t know what a development stack was, not to even mention the scope of back end development and front end development. My idea at the time was that, you pick a language, code some stuff, and everything should work like magic. Nobody gave me an overview of what the development process of building a web application was like.

Even after completing the book “Learn to Program”, I knew how to code some algorithms, but I had no idea what purpose they would serve in an application, other than to solve the silly challenges at the end of a chapter.

This was basically my learning experiencing for about two years. I just blindly jumped from one online resource to the next, not sure how each piece of technology tied in together with the others, or what I could build with it.

Then something great happened. I discovered Free Code Camp. I remember reading the description on the front page. I thought to myself, “I can get a JOB if I complete this curriculum?! Are you sure? It wouldn’t hurt to try. I’ve already completed every course on Codecademy, and I can run through an entire book in a single day! How hard can this be? Piece of cake. If I finish Free Code Camp and I can’t get a job, then I will write a horrible review and call it a scam! That’s what I’ll do!”

So then I started…

I took a glance and the curriculum layout. It was simple, but one thing caught my attention. At the end of the curriculum, once you finish everything, there it was… the glorious access to nonprofit opportunities that would allow me to gain real world experience AND have a positive change on the world! That sounds pretty damn wonderful! I really want to work on that!

The first few way points on HTML and CSS were a piece of cake. I was plowing through them. Of course I was. “I am a pro at this, duh,” I thought to myself.

Then I hit the JavaScript challenges. “Wow, all of this is just review of what I already know! Pfff… I’m already halfway finished!” I ignorantly believed.

Then I hit the algorithm challenges…

The first few were pretty easy. But then, on the fifth one, reality hit. It was a simple task. Just capitalize the first letter of each word. Logically it was easy. But I couldn’t do it. That’s when I realized that I was not fit to be a Web Developer.

“If I can’t tell my computer to simply capitalize every character in every word, how am I going to be able to build real applications that do far more than just that?” I thought.

Of course, I wasn’t going to give up that easy. I will never let the computer defeat me. I am a human — the same species that created this machine. If I want to command it to do something, I will find a way. I am its commander.

After many hours of googling, I managed to come up with some code that I typed myself, and I clicked the green “submit” button and it passed.

That’s when something special happened. I felt the rush of accomplishment that you only get when you spend hours trying to figure something out, then finally see that all the your tests have passed. This was literally one of the most satisfying moments of my life.

More satisfying than any moment in any game I have ever played. I was hooked. I wanted to complete each algorithm, because to me, each algorithm was a boss that I had to defeat, and every boss I defeated would earn me experience points that would level me up to a more skillful coder.

I knew I was going to defeat each boss and become a better coder. What I didn’t know was that it was going to take me six grueling months.

Yes, it took me six months to complete all the algorithms. But I did complete all the Front End Projects, too, so I guess I wasn’t too shabby.

At this point, I had put in about 1,000 hours of work into FreeCodeCamp. My comprehension of JavaScript coding was far superior to when I initially started. I did find myself staring at my computer for very long hours and on many occasions I would see the sunrise.

I learned how to write algorithms that checked for correct formatting, manipulated sentences, deciphered codes, calculated a planet’s average altitude in its orbital period, built a fully functional calculator, and more. In only six months, I learned to do all these things.

I played around with Node, Express, and Angular, and researched the MEAN stack by peeking into sample projects. I began to understand how web applications were made. And that’s when I realized that Free Code Camp is the real deal.

It has been almost a year since I started working on Free Code Camp, and I still have not reached the nonprofit section that I’ve had my heart set on. But that doesn’t matter, because the skill jump I’ve made between when I first discovered Free Code Camp and now is astonishing. If Free Code Camp had been available when I was in high school, I can only imagine the level I would be at right now, or how far in I would be in terms of my career.

The most ridiculous thing about all of this is, of course, that Free Code Camp is free. They offer an amazing community, a full stack curriculum that constantly gets updated, and the opportunity to gain real work experience while helping nonprofits. They even have their own job postings section! I am skeptical that many tuition-charging coding bootcamps even offer as much content and opportunity as Free Code Camp does.

1*kh9uOycaUD5SEii_PcvMEQ

Finally, I would like to say that Free Code Camp is very hard. But that’s what makes it so great. It provides a realistic overview of what it takes to become a developer. Finish the curriculum, and you’ll be a developer. It’s simple. It’s hard. It’s real. All you have to do is keep going until every challenge on the map is checked off.

I still have about 1,000 more hours to go because of their newly added content. But every hour translates into more skills that I can acquire, so I can become the developer that I strive to be.

It’s quite a long journey and I may fall off schedule or struggle, but I am enjoying every bit of it.