A blog about trying to make yourself better at making and designing websites. Also about random shit.

Are you a beginner at web development? Give open source a shot

When I started web development, I always found myself inundated with soooo many different technologies and tools. I was always anxious because I couldn't shake the feeling that I would never be able to catch up. (Hint: Nobody ever catches up!) I honestly almost gave up, because it was frustrating to know that I would never be one of those 10x rockstar developer ninjas.

So what I did was I jumped from one tutorial to another and I read as many books and took as many courses as I could.

What happened? I learned some things, but I mostly forgot about what I learned because I never got to use them in any real-world project. It ended up being a waste of time.

It wasn't until later that I realized that there will always be tools coming out. New technologies and new tricks are being made on a daily basis. Surprise! Nobody can catch up.

Having a purpose

I noticed that a lot of people were also confused about what to do next—what they can do after going through a code school or reading a book. Is it go to the next code school? Is it to read another book?

And that's why I wrote "Life after Codecademy: What do I do now?". You need to realize that you're not going to feel ready and that the best way to learn is to actually jump into a project. Let go of trying to be ready. Let go of certainty.

I mentioned in the article that one of the main things that you can do is to contribute to open source, so I'd like to expand on that and give you some tips on how you can get started.

So why open source?

  • Because you'll be able to work on a real-world project.
  • Because you'll get feedback from real people.
  • Because you'll learn by reading other people's code.
  • Because you'll be constrained to certain piece of technology. This means you'll be free from all the advice out there that tell you to use this or that.

What are you waiting for? Let's get started!

Getting started

Here are some projects that I think are easy to get in and would help you out as a web developer (if you think otherwise or if you have better projects in mind, hit me up!):

  • CSSgram: "CSS library for Instagram filters." (Sass, Gulp, CSS, and npm)

  • tacofancy: "community-driven taco repo." (Yes, you can contribute taco recipes! 🌮 Learn Git, Markdown, and tacos.)

  • Bliss: "Want to use Vanilla JS but find native APIs a bit unwieldy? Bliss is for you." (JS, npm, Gulp, and Karma)

  • MediumEdit: "Medium.com WYSIWYG editor clone." (JS, Sass, and Grunt. Make sure to check out the "easy first bug" tag!)

  • Tachyons: "Functional CSS for humans." (CSS)

  • Ghost: "Just a blogging platform" (JS. Make sure to check out the "beginner" tag!)

  • TodoMVC: "Helping you select an MV* framework" (JS. Make sure to check out the "first time contributor" tag!)

  • Ava: "Futuristic JavaScript test runner" (JS. Make sure to check out the "good for beginner" tag!)

If you don't find a project that you like in here, check out GitHub Explore, 24 Pull Requests, or Up for Grabs. Check out First Timers Only, too, for some inspiration! If you're having trouble looking for a project, send me an e-mail. Maybe I can help you out.

Look for issues that you can work on

A GitHub project would have a list of issues and your job is to find an issue that you think you can tackle. This might sound simple, but it takes experience because it's easy to underestimate or overestimate a certain task.

The best way to go about it is to ask. If you're not sure how you can help out or if the task is unclear, add a comment or create a new issue that shows that you genuinely want to help but you're not sure how to start.

Sometimes it's good to find issues that are just a little over your current skill level. For example with CSSgram, I had to go off and learn CSS Filters before I could submit a pull request. This is good because I was able to learn something and I was able to apply that in a real project!


Remember that projects are managed by people—sometimes by just one person. These people might have other priorities and other stuff to do outside of this project. So don't be disappointed if your question isn't being answered or if your work isn't getting reviewed.

That's normal!

Just like real life, all you can do is move on to the next project. You can't get mad because more often than not, the project maintainer only works on this in her spare time.

Also don't get disappointed if your contribution is rejected. Learn why it was rejected and try again. Mistakes are a part of learning.

Build a habit

I've said this in my other posts before, but it's suuuper important to build a habit. You don't have to "kill it" every time. You just have to show up. Consistency is 🔑.

Schedule an hour every day or even every week to work on contributing. All that matters is that you do it consistently. Check out Amy Hoy's Slay your Schedule to see how you can make free up some time in your day.

External reading