From never writing code to becoming a Python dev in 19 steps
Tags: python, career, beginners
Published: 2020-07-03 16:37:30

[Twitter](https://www.twitter.com/catmcgeecode) | [YouTube](https://www.youtube.com/channel/UC7khnAAAID1WQ_4gQO73Gmw) | [Instagram](https://www.instagram.com/catmcgeecode)

Hello fellow geeks! After circulation of my [previous post](https://dev.to/catmcgeecode/from-no-programming-experience-to-web-developer-in-19-small-steps-olc) and [Twitter thread](https://twitter.com/CatMcGeeCode/status/1278314269482930176), 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.

[Read it as a Twitter thread](https://twitter.com/CatMcGeeCode/status/1279015669770706944)

##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!](https://youtu.be/qepp8a2fDHQ)

##Step 2: Launch right in and take a beginner Python course

If you know me, you'll know I love Codecademy. [This one](https://www.codecademy.com/learn/learn-python) 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](https://automatetheboringstuff.com/). 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](https://www.computerhope.com/jargon/c/compile.htm) 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](https://www.python.org/downloads/).

##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](https://www.youtube.com/watch?v=Qsx_u5g60Nc&t=50s) 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](https://code.visualstudio.com/), 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.](https://www.programiz.com/python-programming/examples/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](https://www.dunebook.com/python-projects-for-beginner/). I also wrote a tutorial for a [pretty fun Python project that people seemed to love](https://dev.to/catmcgeecode/get-your-first-dev-job-by-building-these-projects-2-markov-chain-lyrics-generator-1kib) 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](https://www.ubuntupit.com/best-python-libraries-and-packages-for-beginners/).

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](https://pythonspot.com/flask-web-app-with-python/).

##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](https://www.github.com) 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](https://www.freecodecamp.org/news/what-is-git-and-how-to-use-it-c341b049ae61/).

##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](https://www.pythonanywhere.com/) - 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](https://www.codecademy.com/learn/linear-data-structures).

##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](https://leetcode.com/) 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!