By Gwendolyn Faraday

I have always had an interest in coding for the web. I built my first site almost 15 years ago using Yahoo’s Geocities, which allowed HTML styling and a few layout choices.

Even when I went to college, I enrolled in engineering and studied Matlab and C++.

I loved coding but I had one major problem holding me back: I never committed to learning.

Information Overload

For years I would start tutorials and classes that would teach me the basics of a certain language or technology (like Dreamweaver, Java, etc.). But I never made the time to pursue anything to an advanced level.

I would spend hours researching and finding new classes or tutorials. I would watch myriads of these different tutorials, and read blogs by different authors, each with different styles of teaching and advice for how I should learn to code. One said this, and the other said that.

I was both confused and frustrated. I wanted to give up, thinking that I would never make it to a high enough level to pursue a career in coding. I was convinced there were more technologies than I could possibly learn, and it would be too stressful a journey.

Professionally, I was a restaurant manager (and later, a salesperson) working 50–60 hours (or more) per week. Between work, helping my grandmother, and other personal obligations, I always made the excuse that I didn’t have time to learn how to code. Yet I spent so many hours surfing the web and reading about how I should go about learning without committing and sticking to any one curriculum.

Fast Forward to 2015

As I so often do, I started this year with ambitious goals to change my life, get in shape, and have the best year ever.

By January of 2015, I had just completed a Treehouse track on using Swift for IOS app development, and I had built three semi-cool working apps on my local machine. I was so excited that I decided that this was — without question — the year I would definitely learn how to code!

The Plan

I had just quit my time-consuming job as a salesperson and gotten a temporary job at a local restaurant, which gave me loads of free time. I immediately began to research and plan what technologies I would learn, and what tools I would use. I started reviewing HTML, CSS, and basic JavaScript.

Around March, I found Free Code Camp, and also CodeCloud.me — a website promising to effectively teach students through building real life projects with some big name companies like Expedia. I decided to leave Free Code Camp in my todo list and pursue the CodeCloud.me projects.

I wasted about a month trying to figure out how I was going to learn to code on their site. It was confusing, poorly designed, and most of my group quit before the project ever started. I had many other problems with their curriculum, and finally went searching for that site that I’d stumbled upon earlier, Free Code Camp.

Free Code Camp — How I Finally Learned How to Code

I was happy seeing that the number of users on Free Code Camp was increasing, so I figured it was a good program. Plus it was entirely free.

After listening to the audiobook, “No Degree, No Problem” by Josh Kemp, I decided to dedicate several hours every day to learn how to code. I went through the front end development challenges pretty quickly, and completed all five of the front end projects.

These projects took me from three days to a week each to complete. I learned about JSON, APIs, jQuery, Angular, Bootstrap, advanced JavaScript concepts, and so much more. I finally felt accomplished!

I then started the backend sections on Node, Express, and MongoDB. These really gave me a broad perspective on web development, and how front end and server-side technologies tie in to each other.

To date, I have only completed one of the full stack projects, because I am working as a front end developer and studying ReactJS. Soon, however, I plan to complete all of the Free Code Camp projects.

Having a job in web development is helping me immensely, and allowing me to learn everyday while I am working.

Meetups and Networking

I am naturally a very introverted, quiet person, so networking is extremely hard for me. However, I decided I had to at least try. I started going to meet-ups and letting my online network know about my new skills, and that I was looking for a new job.

The first meet-up I went to was a Girl Develop It one where they taught Git and Github, and had time allotted afterwards to socialize. I was already pretty familiar with the material, so I figured it would make me more comfortable for the first meet-up.

I forced myself to walk up to people after the lesson and introduce myself. It was painful. My hand was shaking because I was so nervous. I wanted to run out of there, but somehow I made it through the two hours or so, and ran out to my car to take a breath!

It did get better. The more meetups I attended the more comfortable I got. I saw there wasn’t a functioning meetup group for Free Code Camp in Indiana, so I started one here so I could be around coders that were at my own level and get them started helping each other. We had several meetups that went well, and allowed us to connect and share ideas. Hopefully, we will be more active in the future with coffee-and-code meetings and other events.

Reviewing and Debugging Other People’s Code

One thing that has helped me immensely is reviewing other people’s code. It’s one thing to write my own code and make changes to it. It’s another thing entirely for me to review and edit someone else’s project.

Image

I started looking at other people’s code in the Free Code Camp chat room when other students had questions to try and help them. When we started a meet-up group in Indianapolis, several other campers messaged me for help with their projects as well.

At first, it was extremely difficult for me to understand or read code written by anyone else. Especially if I had already completed a different version of the project, I had trouble figuring out where everything was, and why they wrote it the way they did.

I started to clone various github projects to give me practice. After doing this a couple dozen times, I started to get the hang of it.

Everyone has a different style. Some people are better at design, and some are better at functional programming, or other areas. There is something to learn from everyone, even if it’s what not to do.

Looking back, learning how to read other people’s code has helped me immensely in getting to where I am today.

Books vs. Audiobooks

I have amassed quite a collection of unfinished programming books sitting on my shelf. I spent up to $30 or more each, was excited for a few days, and ended up leaving them forgotten on the shelf, only to pursue a new book shortly after.

I found a method that works much better for me: listening to audiobooks. While I am at my house I work through mostly video tutorials, and build projects. And then on the road, I listen to audiobooks.

This system has been working really well for me. Plus I can maximize my learning when I would otherwise just be listening to music.

Another note is that, even though I downloaded all of the books through Audible, I never paid full price for them. I received two free books for the first month I signed up. I then cancelled at the end of the month, and they sent me an email after that offering me three months for a large discount (I think it was 50% off). After I cancelled my subscription again, they sent me an email offering me three months for $.99 per month. Also, they always have some free or really cheap audiobooks available.

I am not saying here that quality material is not worth paying for. Rather, I think that once you are making money from coding it is great to invest in quality training materials. However, if you aren’t making money from it yet, I think you should try to spend as little as possible up front until you get hired.

Here is a list of the (worthwhile) books I have listened to so far. Let me know if you have any other ideas.

Bottom Line

In short, the six keys to my success were:

  1. Diligently Following a Curriculum (Free Code Camp)
  2. Setting aside time every day to code (several hours no matter what!)
  3. Listening to Programming/Web Development audiobooks everyday while driving
  4. Reviewing other people’s code, and asking them to review mine
  5. Compiling a portfolio of at least 5 or 6 working projects that can showcase abilities
  6. Networking and meetups, and more networking!

There are still many more goals that I want to achieve as a professional. I am studying ReactJS and Sass currently, and I have a list of other technologies I want to learn.

I am very happy with where I am at, and I am trying to take one thing at a time.

Check out my blog and get in touch :)