Welcome¶
This short guide will help you go from zero programming experience to being comfortable reading and writing in Python.
π Why Python?¶
Python is a language for instructing computers to do stuff. People have done some pretty awesome things with Python:
- Render the first ever image of a blackhole: The Python package NumPy was used to process data collected from telescopes all around the world to form the famous blackhole picture.
- Support a social media platform for billions of users: Instagram uses Python to manage their web servers so that you and billions of other people can share photos and videos.
- Power machine learning: Python is one of main languages used for machine learning. "Machine Learning" means getting computers to learn from data. This includes generative models for text (ChatGPT) and images (Dall-E, Midjourney), recommendation systems (YouTube algorithm), computer vision & object recognition, personalized medicine, robotics, and countless other applications. Popular Python packages include Sci-Kit Learn, PyTorch, and TensorFlow.
Beyond Big Tech and science applications, lots of creative types use Python to build games, make programmatic art, make animations, make educational videos, etc. But even if you never plan to work on any of these things, there are still a lot of benefits to learning Python.
Maybe you want a job change and want to enhance your resume.
Maybe you have a very boring, bespoke task that you feel can be automated but there aren't any good existing software solutions.
Maybe you just want to pick up a new skill.
Maybe you want to become an 3l1t3 h4x0r and learn cybersecurity exploits.
Maybe you want to enable your goldfish to trade stocks for you.
Maybe you're just curious to know what programming is.
All of these reasons are more than good enough to start learning Python!
As with learning any new skill, we will start our journey by facing modest problems. In this guide, you will learn to create the following programs:
| Project | Description | Skills |
|---|---|---|
| Fortune Telling | Are you anxious about the future? Let Pythia, the Oracle of Delphi, set your mind at ease | Python basics |
| Clean Your |
Sort your downloads folder, instantly | Working with files and folders |
| Powerballers | How many lottery tickets should you buy to win big? | Number-crunching, simulations, and data analysis |
| AI-less GenArt | Throwback to the original meaning of generative art | Graphics |
π Reading this guide¶
Programming is not the easiest thing to learn. Honestly, it's extremely frustrating at times. Despite this, it's a very rewarding skill. It can save you time β³ and money π΅, it can make your resume stand out πͺ, it's a great hobby to share with people π«, and it will improve the way you think and problem-solve π§ .
There are a lot of guides on learning Python. Some are really good, most are ok. Too many of them assume you know a thing or two about programming already. Too few authors actually remember what it is like to not know how to program. I don't claim my guide is the best place to learn to program with Python, but I am quite confident that it's a good place to start.
I wrote this for people who have never programmed before, people whose primary experience using a computer consists of watching videos online, sending emails, maybe making a spreadsheet now and then or typing up a report. People who don't know what a programming language even is.
Despite not needing any background knowledge, you do, however, absolutely need:
- An open mind
- To be okay with failure
- To understand that you can always improve
People mistakenly believe that they are not smart enough to program. This is backwards thinking!
- ποΈ You are not too weak to go to the gym. You get strong from trying, failing, then trying again at the gym
- π§ You are not too easily distracted to meditate. You gain focus by trying, failing, then trying again to meditate
- βοΈ You are not too bad with words to write. You become eloquent by trying, failing, then trying again to write
- π§βπ» You are not too dumb to program. You get smart by trying, failing, then trying again to program
π½ Technology Prerequisites¶
While you don't need any prior programming experience, you should own or have access to a computer of some kind. The computer needs to have an operating system, like Windows 10 or Mac OS, and you should be familiar with how to use the computer to install and run applications.
Also, you should be familiar with:
- Reading and writing in English
- Your keyboard (the
enter/returnkey,Ctrl/Cmdkeys, letters, numbers, space bar, etc.) - Using a web browser, like Google Chrome or Mozilla Firefox
- Navigating a website