📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

How I Would Learn Python FAST (if I could start over)

Sajjaad Khader13:29

Transcription

Back in 2019, I had exactly two months to master Python because somehow I got into this cool research project lab that required Python experience, but I had exactly no experience whatsoever. So, not only did I have to learn Python, I had to learn it really well fast. So, in this video, I'm going to show you what I wish I had. The five-level Python pyramid designed to take you from zero experience to advanced level in building real Python projects with AI. But please remember, you have to follow this pyramid in order to ensure your foundations are solid. So with that being said, sit back, relax, take notes, and let's get started.

The first layer of the pyramid is the base, your fundamentals. Do not start coding right away. Trust me, you'll be shooting yourself in the foot because you must first learn the art of the language, the art of Python. Just like you wouldn't want to wake up one day in France and someone tells you, "Hey, start speaking French." No, no, no, no. You want to make sure that you actually learn the language and learn it the right way. So, first let's understand Python's syntax. In the real world, we count things like 1, 2, 3, 4, 5. But in Python, we actually go zero, 1, 2, 3, 4. The first number is always zero. It's a zero-index based language. So instead of saying, "Hey, can you give me the first item on the list?" You actually say, "Hey, get me the item at index zero." So the next time someone tells you, "Oh, you were my first love." That's actually a red flag, 'cause who was number zero? Another thing, say you're going shopping, you might say, "Drive until you reach the store." But in Python, we use what we call a while loop. "While you are not at the store, drive." So until the condition of you being at the store is true, you shall continue to drive forever. So it's a bit of a frame of mind difference that I really want you guys to hone in on. But what's more important than actually all this syntax jargon is your overall mindset. In Python, you need to think of yourself as a problem solver, not just a coder. You see, code is a tool. It's a mechanism for you to solve bigger problems. In fact, back in the day when software engineering was first getting started, they used physical punch cards. And coding languages like Python and Java came much later as a mechanism of abstraction to help us write faster, more efficient solutions to our problems. Imagine if you're an artist. If you're a good artist, you want to create visually aesthetic pieces, and you should be skilled enough to do that with a paintbrush or a crayon or a color pencil. Everything is just a tool at your disposal. And so, if you want to become really good at coding in computer science, it shouldn't matter what language you pick up. The art of your problem-solving will forever stay the same.

So, now that we've laid down our foundations, let's get to the setup layer. And here's where a lot of beginners get lost. A lot of people at this point will tell you, "Oh, go to your terminal and install Brew, then download Python, then download Anaconda, download PIP, download Spider, download PyCharm, download VS Code," and they'll tell you so many different things to download 'cause it'll make you this complete high-quality programmer. Well, guess what? All of that stuff is useless at this stage. You know why? Because I've been through it. Trying to download all these different configurations as a beginner programmer, you actually don't even know how to set things up properly. When I was first learning, I downloaded everything and I tried to run Python. But apparently, there's a difference between Python 2 and Python 3. And then when you type "python" to the terminal, all of a sudden you have to write out code and then you have to know the Python function to exit. It was a complete mess. And I spent more time trying to be able to write Python code than actually writing Python code. But if you want to learn Python quickly, the right way, the first thing I would do is actually go to Google Colab. All you need is a Google account, like a Gmail. Then you open up this environment and you can run any code with any library you would ever need. Plus, you don't have to deal with download configuration issues since it handles all of that. Like imagine being a chef and you walk into a kitchen that has every single ingredient you would ever need. Plus, it has pots, pans, dishes, and spatulas. Michelin-grade quality. Everything you would ever want right there. Yeah, I know you'd feel good. So, that's your environment. But in terms of the actual tasks you should do at this point, I want you to check out this GitHub repository right here called "30 Days of Python." It's a repository that contains all the fundamental basic Python lessons and it'll get you all the way to an intermediate level. It starts with your basics and data structures and then it goes to Python and web applications and API calls. Plus, with every lesson, it gives you tutorials, sample codes, so you can actually take all the information you're getting and execute it in your Google Colab. But beyond just that, I would also recommend using Kodi.te. This platform gives you a lot of mini, bite-size lessons with actual projects for each one. It's great for Python because it shows you once again the lessons and allows you to practice coding in their sandbox environment. Plus, it has a mini AI tutor that can help you out if you're ever struggling with anything. And the best part is they're completely free, but they have some premium features like unlimited AI queries. And if you're interested in that, I actually have a discount link in the description down below. Anyways, once you've got a solid grasp of Python, then you can actually go ahead and download all those like complicated configurations into your home laptop environment. You can download Python 3 and install a Visual Studio Code or PyCharm.

Really quick, I want you to check out this new Dell Pro Max Tower T2 I recently got. It's an AI powerhouse. The Dell Pro Max Tower T2, powered by the NVIDIA RTX Pro 6000 Blackwell GPU, isn't just another desktop. It features the industry's only new chassis designed specifically for AI workloads. These specs enable faster training, smoother inferencing, and real-time performance for the most demanding workflows. With 96 GB of lightning-fast memory, it delivers the bandwidth and compute power needed for advanced data visualization, 3D rendering, and generative AI development. Simply put, it's the ultimate GPU for creators, developers, and engineers pushing the limits of what AI hardware can do. This is what future-proofing your workflow looks like. Taking the advantages of AI in a high-performing environment. Step into the future of work with the Dell Pro Max Tower T2. Explore more at dell.com today.

And now back to the video. Now, let's get ready to move even faster. And the next layer of our pyramid is real-world projects. You can't claim to be a good chef and not cook anything. And you can't claim to be a good coder and not build anything. We want to see some results quickly. So, one of the best resources I found, especially nowadays for learning Python, is this GitHub repository called "Practical Tutorials Project-based learning." A lot of people get stuck in this thing called tutorial hell, where they watch every video, read every textbook, absorb every tutorial over and over and over again until they burn themselves out. The way you avoid this is by actually starting to build something. This way, you can see the fruits of your labor and you know for a fact that you're making progress and not burning yourself out. So go to this repository, click Python, and you'll see projects like web scraping, web applications, bots, and even data science type projects. And within them, it goes step-by-step on how to build these projects. So even if you have no experience whatsoever, you will build experience through that. And the goal for you throughout each project should be thinking, "How can I take this tutorial and amp it up?" For example, maybe I don't want to create a Reddit bot, but maybe I want to create a similar bot that can actually scan the market and find the best time to buy a stock. All of a sudden, you took this baseline project and transformed it into something that's actually impressive. Then you can put on your resume and actually use it to get hired. But if you want to take it even a step above that and really showcase your depth of expertise in Python, there's this GitHub repository right here called "Build Your Own X." Once again, it has so many advanced-level project ideas for actually many different coding languages. But if we just look at the Python ones, it shows you, for example, how to create a Python interpreter. And it gives you the framework to build bots, to build databases, to build containers. A lot of the work that you do throughout these projects will set up the infrastructure for you to create startups or really cool apps one day. And guess what? Maybe you start working on this project because hopefully it might get you a job. But better yet, if you're able to create a startup through this, you might be so successful that you don't even need a job. And that's the type of mental framework that I want you to have because with so many resources at your grasp, you can literally do anything.

So by this point, you should be intermediate with Python. You have your baseline and solid projects now. But if you really want to accelerate your workflow, we need to talk about the next layer, which is actually the hippopotamus in the room, and that is AI. A lot of people say that it might not be worth learning to code because of AI. It might not be worth studying computer science. This whole video might be useless because AI is going to take over. Well, actually, Python is the best language to learn in this AI world because a lot of machine learning AI development work and applications are run through Python. Python has so many popular libraries like scikit-learn, pandas, PyTorch that actually help build machine learning models. And actually being that expert in Python will actually give you a unique advantage in this AI world. So how do you build that advantage? Well, two things: Use AI as a partner and use AI as the product. So on the partner front, this means using a variety of different coding assistants to get your job done. For example, Cursor is an IDE that I started using instead of VS Code because it can scan through your whole codebase and make code adjustments very quickly. Then it'll actually generate files and files of Python code very quickly. But if you're not there yet, then GitHub Copilot is also great. And I found this really useful for the scenario where you know how to solve the problem, but you don't remember exactly, "Oh, what was that function called again? What was that type called again?" So, this is kind of like your mini assistant to help you code faster. Now, I want to be very, very clear. I'm only recommending using AI once you have become an intermediate level in Python because when you're still trying to learn the basics, it's not really good. It's kind of like cheating on your homework. You learn nothing. But once you have the experience, it will actually accelerate you so much further. Just like no one learns to drive using a Lamborghini, but once you have enough driving experience, you can drive that car to accelerate your driving experience. The second part of taking advantage of AI is using AI on the product standpoint. You need to dive deep into the world of AI, machine learning, and deep learning and start dabbling with Python libraries such as NumPy, scikit-learn, and do some really cool projects. One of my first ever real machine learning projects was creating a COVID-19 death predictor. It was during the pandemic. I gathered a bunch of data across a lot of different countries about their population sizes, densities, and the impact of COVID-19. Then I processed it using NumPy and plotted graphs using Matplotlib. And so visually, we got to see a heat map of the impacts of the pandemic all across the world. Plus, it was an excellent talking point on résumés and interviews. And I actually used that to help me land the internships and jobs that I got afterwards. But that was many, many years ago. Nowadays, there's so much you can do with the power of AI, generative AI. For example, you can create a chatbot that purchases items on Amazon.com, so you don't have to go through the nitty-gritties of finding a product, adding your payment information, and processing it. Or you can create a machine learning recommendation system so that anytime you're in a new city, you automatically get a text message of the best restaurants in your area that are tailored to your taste buds. But the bigger picture I really want you to think about is once you create those products, package it, put it in an app, throw it on the app store, and I have seen people literally make millions of dollars doing such things. Or a step below that, throw that project onto your resume, add it to your LinkedIn, and use it to actually help yourself get hired.

All right, so finally, we've made it to the top of the pyramid. And at this point, you have effectively learned Python pretty well. But the goal for you isn't to just learn to code, but rather continuous mastery. Staying the master of Python coding. Just like a lot of things in life, your goal isn't to get married. It is to stay married. The goal isn't to get in shape. It is to stay in shape. It is to master that practice. So that means there is a continuous effort that you need to put week in, week out, day in, day out to stay at the top of your game, especially with coding in Python. So to do that, you should try the brain dump protocol. Every night once you're done coding, turn off your laptop, take out a piece of paper and pen and write down for 5 minutes what did you do that day? What went wrong? What went right? And what is something that you learned? And it might seem a little bizarre at first, like, "Why are we writing this down?" But there's actually a deeper purpose. First, you actually bring yourself back to reality and put your thoughts together. Second, it gives you a sense of accomplishment because you worked so hard throughout the day. Third, it tells you exactly what you need to tackle the next day. And fourth, over time, you'll be able to stack up your progress and see what used to bother you then actually became a highlight for today, and it'll reinforce internally the idea of your mastery. If you want to lose weight fast, you track all your calories and keep a food diary. Just like that, if you want to learn to code Python fast, you better keep a coding diary to track your progress. And beyond just this, anytime you do anything cool or remarkable, post it online. One of my friends for his last two jobs never even had to apply because anytime he did a cool coding project, he would post about it on Twitter, and hiring managers would reach out to him because they see the amazing work that he does. So once again, with the power of Python, with the power of AI, and honestly, with the power of the internet, you have so many golden opportunities. Honestly, it's so exciting.

Well, that's about all I have in this video. I really hope that you guys enjoyed it. And if you did, make sure to hit the like button, subscribe if you haven't already, and if you're interested in finding out what do software engineers do on a day-to-day basis, you might like this video right here.