I started my coding journey in spring 2018, a bit less than one year ago. I earned some programming skills since that time but still, I understand there are many more things to learn ahead. Anyway, I decided to gather these tips in a single place to help future developers on their path. This article is the guide I would have liked to have found when I started my journey.
If you decided to study on your own, there is a lot of information on the Internet and it's hard to wrap your head around everything. It's important to have a structured plan and avoid wasting time by jumping from one resource to another.
Please note that these are just the first steps into the front-end universe. It will help you get started but it's not intended to be a complete guide.
As a disclaimer, please note that the following resources are not an advertisement. I mention them because they helped me at some point and I personally recommend them. Most of them are free, otherwise, it will be specified.
- Curriculum. This can be your main path. It's a well-structured overview of the things you should learn and provides a good learning curve.
- Exercises. They are bite-sized so you can easily keep up the pace by doing a couple of them every day and keeping your heat map green.
- Projects. After completion of every chapter, you will build 5 projects to get your certification. It's ideal to get some practice and consolidate your knowledge.
- Community. It's more than just a learning platform. There is a forum, blog, and YouTube channel where developers of different levels share their knowledge and where you can find inspiration.
- It's free. Money can be critical for many people and here, in any case, you won't spend anything except time.
Pro tip: you can create an account on Twitter, if you don't have one yet, and publicly commit to the 100DaysOfCode challenge. The reason is simple - there are many people doing this challenge. You will get motivation and support, and it will help you to keep up the pace. I highly recommend it, don't be shy and enjoy the community
Now we are all set to start!
Responsive Web Design
The first section encompasses the very basics of how to build static sites and apply styles to them.
Basic HTML and HTML5 and Basic CSS sections are the fundamentals of the modern Internet. Applied Visual Design, Applied Accessibility, and Responsive Web Design Principles will teach you the basics of writing good websites. Don't rush and step carefully, those are the main building blocks in your knowledge.
Next, you are going to learn powerful layout techniques like CSS Flexbox and CSS Grid. Before moving on, complete this short guide to get an overview of different layout techniques that people used before the Flexbox-Grid era. It's unlikely that you will ever need to use them, but it's always good to be aware and appreciate the technologies we have today.
I fell in love with Flexbox because of its simplicity and power. A lot of different properties may confuse you at first, so my suggestion is to put a cheat sheet near your computer so you can always easily look them up. Additionally, bookmark this interactive Flexbox cheat sheet
The Grid is more advanced and flexible but in most cases, Flexbox is quite enough. Anyway, you will have another powerful tool in your arsenal. Especially, if it's that easy to understand when you grow your crops in Grid Garden
Before moving on to the final projects, I recommend you to do this:
- Create an account on Codepen. It's a cool playground for the front end where you can build your projects, test your snippets, and practice.
- Install a code editor on your machine and learn how to work with it.
- Learn the basics of the command line from this video by Wes Bos or the Shell Workshop on Udacity.
- Learn how to use Git in this playlist by NetNinja.
- Get some guided practice. Choose any projects from this playlist by Traversy Media and code along. Build them until you feel confident. It would be great if you already use a code editor and version control, and upload your work to a special study repo on Github.
Now you are ready to get your first certification!
Go and build your final projects and share them
For more practice, I highly recommend you to sign up on CodeWars
and set an initial goal to achieve 6kyu. It's very helpful because when you complete any challenge, you can look through other people's solutions and discover new tricks, approaches, and ideas.
To find other 100DaysOfCode challengers including me, go to your Account Settings and type in #100DaysOfCode into the Clan field.
Before proceeding to the final projects, you have to be prepared for the final boss, the Cash Register.
After you beat it I can say that...
Sticking things together
Front End Libraries
From this point, you are becoming a real front end developer
The most popular CSS framework. Build a couple of websites along with guides on YouTube. Get used to Bootstrap's famous column grid layout.
I didn't fully appreciate CSS frameworks until I saw their real power. I wanted to learn advanced CSS techniques and bought an amazing Advanced CSS and Sass course (paid) by Jonas Schmedtmann. Highly recommended if you want to polish your CSS skills and understand the workflow. I'm still happy that I found it.
React & Redux
Frankly, it's hard to understand how to work with it in freeCodeCamp's format since you can't build anything from scratch and some things work under the hood. So take a course on React and Redux, and take your time to understand their ideas and tools.
My personal favorites:
I hope you are excited to use your new knowledge on the final projects.
Now you can build anything you want
You are a real front-end developer now and have enough skills to build great web applications. Maybe you are curious what to do next and the answer is as simple as â??Build, build, build!â??. Your current task is to create a portfolio for yourself and get more practice.
Here are some tips for you on what to do next:
- Get ideas for a project in the Take Home Projects section on freeCodeCamp.
- Build any project along with a course, then modify and improve it by adding new features.
- Tackle D3.js and Node.js to get the next freeCodeCamp certifications!
- Improve your rank on Codewars.
- Get a taste of advanced web design from this Web Design for Web Developers course.
- Keep your GitHub account active and try to contribute to open source.
If one of these resources doesn't work for you, it's okay. Don't get frustrated, what works for someone doesn't necessarily have to work for every single person.