What I've learned from teaching 500,000 students to code and building dozens of projects.

Avi here. Since I started programming, a question that I've been asked again and again from my students is, "How do I learn faster?" Here's the answer: Build projects.

Let me explain with a story of my own. I started programming when I was 10-years-old after a friend showed me that she had built a Python weather dashboard that told her exactly when it would rain. I was astounded. I spent the next day figuring out how I could write my own Python Script to crawl Yahoo's Weather API and 24 hours later I had built my first program. If you had told me I had to take an 8-week long bootcamp to learn how to code or watch monotonous YouTube videos until it clicked, I might have never started in the first place. No one forced me to get into programming - I discovered my passion because I wanted to build this cool idea. StackOverflow became my best friend as I achieved my goal. Along the way, I learned about a variety of concepts from calling APIs in Python to parsing JSON and had plenty of practice applying them in my project. The lesson here: use projects as motivators to learn.

Okay so we got that out of the way. Building projects are the key to learning things faster. Now what? How do I pick the right projects? Where do I even start?

The next big takeaway: Work on projects that matter to you. My first project was a simple weather script because my ten-year-old brain thought that was wicked cool, but you probably have other passions and interests. Don't compromise. Build projects around your interests and hobbies. If you are starting a project, make sure that it is something that you deeply resonate with. If you are into cars, build a car speed comparison tool. If you are into productivity, build a time tracker to help you be more productive. Even better, build things you want. When those ideas for a cool app or website pop up in your head, START BUILDING IT because motivation is perishable. As the saying goes, the best time to start was yesterday, the next best time to start is now.

Good things happen to those who are patient. Here are three magic words: Repetition, Compounding, and Consistency. These three words are the key to solidifying programming fundamentals and truly understanding new concepts and ideas as you apply them in projects. You've heard how important spaced repetition is for learning - the same thing applies when learning how to code. Try coding for an hour a day. Don't have an hour a day? Code for 30 minutes. Can't do 30 minutes consistently? Try for 15 minutes. Break tasks down into smaller tasks and knock them out.

Last but not the least, the tip that changed my life: Teach what you learn. Yes, it sounds simple - teach what you learn - but I can't repeat it enough. Explaining concepts allow you to improve your understanding and solidify your learning. Teaching has positive externalities as well. After I started teaching others how to code and began posting videos on Youtube, I not only understood each and every concept better, but thousands of others used my videos to learn how to code. My AP Stats teacher had a philosophy that to truly understand any concept you must "learn one, do one, and teach one." Teaching others has helped me hold myself accountable to truly understanding concepts until I feel ready to share my knowledge and it's paved my path in becoming a professional Python Developer and Data Scientist.

For those of you interested in project walkthroughs: Every Tuesday, I'm releasing a new Python/Data Science Project tutorial. I was honestly just tired of watching webcasted lectures and YouTube videos of instructors droning on with robotic voices teaching pure theory, so I started recording my own fun and practical projects. I posted the first project walkthrough on building a Weather API Dashboard with Flask and you can build the whole project for free here.

Want to get notified every time a new project launches? Click here.


Hey! I'm Avi - your new Python and data science teacher. I've taught over 500,000 students around the world not just how to code, but how to build real projects. I'm on a mission to help you jumpstart your career by helping you master python and data science. Start your journey on TheCodex here: https://thecodex.me/

new projects and courses coming soon :)