Day 1: Python
AND NOW YOU BEGIN. THIS IS STILL DAY 1. PYTHON. LFG.
This is where all the actual coding and learning to code starts. (Holy crap that was 25 intro slides. My God what have I done?) I'm still glad I did all that explaining because it all matters.
SIMPLY THE BEST ENTRY-LEVEL PYTHON COURSE
100 Days of Code: The Complete Python Pro Bootcamp for 2023, by Dr. Angela Yu.
Here's why I like this course: You're doing a new project every day, and building upon your skills as you go. Along the way, you learn data engineering, how to build basic websites, data analytics, you make a Blackjack game, and then build up to capstone projects.
It's "100 days" and I assume you're going to spend about 2-3 hours a day on this. If you can manage more, then you might knock out "two days" in one day sometimes.
If you like her Python course, and I know you will, she also instructs on iOS (that's Apple iPhone) development, Javascript, and I believe there's a Python course in Korean. (I don't speak Korean, but it looks like 100 something something Python, something something. Like I said, it's in Korean.)
Dr. Angela Yu is probably the best Python intro teacher.
Add the course to your Udemy Personal Plan (https://www.udemy.com/course/100-days-of-code/).
THE FREE ALTERNATIVE: BRO CODE
Along with being funny at times, this course is solid.
Bro Code is a step by step guide, but it's a little different than the Angela Yu course. Yes, it's free, but it's not the same kind of day-to-day project base.
There are projects in this one, and you will learn things like a dice roller, a shopping cart, etc. So it's functional.
Since it's free, I'd definitely pair this with the book on the next page for getting projects started.
I'd recommend you follow along with his course, and then us the book on the next slide for project ideas. The projects should be something you can finish every day, just a simple "job finisher" or game that will allow you to use the skill you just learned.
Bro Code offers a 12 hour course, and it's a good starting point.
Bro Code on YouTube, the full playlist (https://www.youtube.com/watch?v=6VElWbND-zg&list=PLZPZq0r_RZOOkUQbat8LyQii36cJf2SWT).
PYTHON LIBRARIES
Python is the "standard" toolbox with your hammers, screwdrivers, wrenches, and maybe a basic saw. Libraries are specific tools for specific jobs. My analogies are going to fall short on anything related to woodworking or carpentry, but I'm going to do my best to explain it using this analogy, so bear with me.
Imagine you're making a custom walnut desk, say. You could do everything with just the basic Python tools in front of you, and it'd take forever. The better idea is to head to Home Depot and get specific tools for things like cutting rounded edges, or machining something.
You'll need to learn how to use these tools, but since you understand the basics of woodworking, you'll just integrate them into your workflow with your design plans. A Python library is like a very specific tool in the hardware store, offering pre-written bits of code for specific tasks, so you don't have to start at square one every single time.
There's a Python library for almost everything. Need to crunch some numbers? Get numpy. Want to create a chart? matplotlib is ready to go. Interested in machine learning? tensorflow or scikit-learn can be added to your little carpentry shop.
Please keep in mind, once you have all the cuts made, you still need to put it together. "Some assembly required" is always a bullshit statement. It's a lot of assembly. (IKEA charges full price for shit you gotta put together yourself, and doesn't value your time. I'll die on this hill.)
Just because you've got these libraries, doesn't mean your desk builds itself. You still need to know how to use these libraries. Buying a tool means you have to learn how to handle it. The good news is that no one ever lost a thumb from a Python library.
Last thing, and it's good to keep in mind: Libraries get updates, which is great. New features are good. Sometimes those updates may cause your code to get weird.
HELPFUL RESOURCE: AUTOMATE THE BORING STUFF
Make robots do work for you.
Automate the Boring Stuff is available online for free, or you can buy it. But since it's free, you should definitely use it as a resource, because it is exactly what the title says. It has sold over 500,000 copies. It's a REALLY good book on Python.
You can use this book to automate boring tasks in your life. Want to automate tasks in a web browser and clean up emails? Sure, do it. Python scripts are like robots that do work for you. Don't do repetitive tasks yourself. Make a robot do it.
Once again… it's free, and it's a great way to learn.
automatetheboringstuff.com (https://automatetheboringstuff.com)
PYTHON CRASH COURSE, 3RD EDITION
Not a free book, but absolutely worth the money.
It's project based, a lot like Dr. Angela Yu's course. I think that learning projects is the best way to learn Python. Make stuff, then make more complex stuff.
Get it on Amazon, print or Kindle (https://a.co/d/3SVoQdU).
ENGINEERING NOTE FROM SHANE: "COMPLEX VS. COMPLICATED"
Complex systems are good, engineering wise. Explaining why nature has ways of healing itself after a forest fire and re-growing is complex.
Complicated systems are bad. Explaining to your wife why a Hooters waitress wrote her phone number on your arm is complicated.
Aim to be complex, instead of complicated.
Code is complex sometimes, but when you're coding something like ETL pipelines with multiple sources, try to make them "complex" instead of "complicated," because complex systems are built for failure, whereas a complicated system is more like a Rube Goldberg machine. Try to avoid a single point of failure. Create redundant processes when you know failure is likely to happen from a data source.
KAGGLE LEARN
Kaggle Learn can also help you learn Python: It's literally all free.
From learning the basics of programming, to getting started with Python, intermediate Python, and Intermediate SQL, there is a solid path here for you to pick up Python and SQL skills. (And as you'll see on the next slide, Kaggle also starts with Python before moving into SQL. So let's talk about that next part.)
Kaggle Learn (https://www.kaggle.com/learn).
SIGN UP FOR GOOGLE COLAB
Once you start getting sharp on Python, sign up for Google Colab.
Getting started with data engineering can mean you want to run big ass data problems, and those data problems sometimes take a lot of time to run locally on your computer. Laptops, and even desktops only have so much power.
Google Colab gives you access to machine learning resources like GPU's that speed things up.
The 100 Days of Python doesn't cover Jupyter Notebooks, but they're easy to work in, and all your current skills will apply.
Google Colab Link: colab.google (https://colab.google/).
NVIDIA: PANDAS 50X FASTER
I think NVIDIA is worth like… a trillion dollars now or something. Now that you have Google Colab, start making NVIDIA and Google pay for your cloud resources.
NVIDIA decided to make your Pandas 50x faster. Just because.
On Day 72 of your 100 Day Python Course, you're going to start with some advanced data exploration concepts with Pandas. Pandas isn't exactly fast. But NVIDIA fixed that. When you use Google Colab to host your notebooks, one line of code will accelerate your code with the magic of billionaires and all their money.
Angela Yu doesn't cover this, but that's why I'm here. She's great, and I'm just adding that special sauce to make you stand out from the crowd.
Learn how to make Pandas super fast (https://developer.nvidia.com/blog/rapids-cudf-instantly-accelerates-pandas-up-to-50x-on-google-colab/).
Something wrong on this page? →
Curriculum last updated 2026-04-30