Hello fellow geeks! After circulation of my previous post and Twitter thread, I've received a lot of responses asking me to do a step-by-step guide for Python devs.
So, here you go my lovelies. You can go from never having written a line of code to being paid to write Python in just 19 steps.
Step 1: Know what on earth code actually is and what it does
If you haven't written code before, it's good to know what you'll be getting into before you start. Don't spend too much time on this step. You'll learn as you go along. But for now, I like this short video!
Step 2: Launch right in and take a beginner Python course
If you know me, you'll know I love Codecademy. This one is great (and free)! Work your way through that course online so you understand the fundamentals of Python.
Step 2.5: Books instead
If you prefer books, I love Automate the Boring Stuff with Python. You can get a free PDF if you order it from the website rather than Amazon, so do that!
Step 3: Download Python
Now you've got over the first hurdle of learning Python basics, and it's time to start writing it on your own computer.
It's a bit more complicated to write and run Python on your own computer than it is to do it on Codecademy. Codecademy has a special environment, but you won't have that when you have a job! You need to download Python so it can compile and run on your computer.
There are lots of versions of Python, and arguments over which one is best, but try to stay up to date. People try to argue that Python 2 is better than Python 3 but they're wrong.
Download Python 3 from the website.
Step 4: Get comfortable with the command line
You'll use the command line to run your Python, so you've got to get familiar with it.
It's nothing to be afraid of. It's just another way of seeing and using your files. Check out my YouTube video for an introduction. You'll feel like a hacker!
Step 5: Get a text editor
You need somewhere to write your Python code. I recommend VSCode, and honestly, so does the entire industry!
You could also use an IDE like IDLE, which is similar to Codecademy's environment - everything is already set up for you. But I advise against this because you won't be using this in jobs and I think it can cause a harder learning hurdle later.
Step 6: Write Hello World in your text editor
Hello World in Python is very simple and you'll have learned it in your Codecademy course. Write this code into a new file in your text editor, and save the file as helloworld.py
.
Step 7: Run Hello World from your command line
Using your skills from Step 4, navigate to the folder that your new Python file helloworld.py
is in. Type python helloworld.py
and press enter, just like any other command. (You may need to run python3 helloworld.py
instead). You'll see the terminal say Hello World back to you!
Step 8: Learn more about Python
Now you know the basics, have it set up, you can write & run it, and you need to learn some more about what Python can do.
I recommend following a tutorial to build a calculator.
Step 9: Play around with it
To really advance your learning, you have to experiment with Python and play around with what it can do.
I always recommend that you figure out something small you want to build, and build it. You'll need to search the internet a lot, so do that! We all do.
If you can't think of any ideas, check out this article. I also wrote a tutorial for a pretty fun Python project that people seemed to love on DEV.
Step 10: Explore documentation and libraries
One of the best things about Python is that it has so many different libraries that can do so many awesome things.
Learn how to use libraries, read their documentation, and play around with some of these ones.
Python is also used a lot for machine learning, which you might know already. I recommend finding a machine learning library and playing around with it. It will feel like the coolest thing ever.
Step 11: Learn Flask
Flask lets you build web apps with Python, so you can have a cool GUI to go along with your projects. Here's a beginner tutorial that I like.
Step 12: Get some projects up on GitHub
Now that you have a few projects and you're getting more comfortable using the command line, it's time to learn Git.
Git is a version control system, and GitHub lets you manage this while you show off your code to other devs & employers. You should have some projects from Step 10 and maybe a GUI from Step 11, now it's time to get their code on GitHub.
Here's an introduction to Git and GitHub.
Step 13: Build something you're passionate about
What are your hobbies? What do you wish existed? Build something that you enjoy with Python & Flask. Employers love that kind of stuff, but more importantly - you'll have fun!
Make it a bigger project than the ones you've already done and make it something you can be proud of.
Step 14: Deploy it!
Deploying a Flask project is easy. I recommend using Python Anywhere - it's free and insanely simple.
Step 15: Keep learning and building
You're not done yet! Keep learning, keep building projects that you're passionate about, keep getting them on GitHub deploying them. Watch old PyCon talks. Learn about best practices and implement them.
This step should be FUN - if it gets too much, take a break.
Step 16: Expand your knowledge of computer science
To land a Python job, you'll need to have a grasp on computer science concepts. Namely - data structures & algorithms. You'll be asked about these in your interview. There are loads of available data structures & algorithms courses online, so I recommend taking some.
Data structures are very simple ways to store and manage data. There are multiple ways of doing so in programming.
By 'algorithms' here, I mean two things - popular algorithms (things like sorting and searching a list), and algorithm design (if I tell you I need a program that does this small thing, can you write an algorithm to do that that?)
Start learning from this course.
Step 17: Practice for the coding interview
The best way to solve those algorithm questions is to practice them at home. They're really fun, especially in Python.
I highly recommend Leetcode for practicing these - they'll give you a huge list of them for free, with an online coding environment to try them in, and if you pay you can have a real person give you feedback. Try to solve them on pen & paper or a whiteboard first, as this is quite often what you'll be asked to do in interviews.
Step 18: Update your CV, LinkedIn, and GitHub profile
On your CV and LinkedIn, include your personal projects and everything you worked on for them. Write about exactly what they do. Get a profile photo on your LinkedIn and GitHub.
If possible, try to code a portfolio website - it can just be simple in Python & Flask, or if you know anything about HTML and CSS make one in that too.
There are plenty of people who will do free reviews of your CV if you ask them - reach out for help!
Step 19: Start applying!
You won't feel ready, but do it anyway. You miss 100% of the chances you don't take. And you'll start to learn what to show off on CVs, and what you can expect in interviews.
There are plenty of other ways to land a Python position, but this is a good guide to follow if you're brand new to programming. It could take half a year or two years, depending on your dedication, passion, and pure luck.
Remember to tweet about your journey and join the #100DaysOfCode community on Twitter. Keep learning and never give up!
Top comments (17)
Wow. That covers A-Z. Thanks for compiling this :)
No problem, hope it's useful!
It is! I left the coding in Python last year. Guess now I will dive into this :)
Awesome, good luck!! DM me on Twitter if you ever need help!
Thank you! For sure! Also, if you need help in frontend/design let me know 😁
Cat, you are a great role model thank you! I dabble with html and css, but find JavaScript a pain! I am so determined to become successful.
Thanks Jayne! You can do it, determination is all it takes. Good luck to you and if you need any help feel free to message me!
Aw thanks Cat. By the way, I love your name! I love cats!
Hahaha thank you, me too!
great post - well done
This is some solid advice, will this work for JavaScript? Or do you have steps in JS specifically?
Hey! I’ve written one to become a frontend web developer which includes a lot of Javascript, but not a ‘Javascript developer’ per se (I’ve mentioned nothing about Node in there.) Hope that helps!
That really gave me a push to get into it.
Thanks a lot !!
I just started learning Python in Jetbrains academy, it's pretty cool, my previous programing knowledge is helping me a lot.
Thanks for the thread, saving it for the future reference.
Hey, a course based on the book Automate the Boring Stuff with Python, is free in the Udemy.
udemy.com/course/automate/?couponC...
Hi Cat,
Great article, comprehensive.
But, I thought Python does not need to compile. I thought it was an interpreted language. ;))
I see steps here that I have yet to follow to complete my Python training. Great work!