How to Get a Job as a Python Programmer ๐
“How much Python do I need to know to get a job? Do I need a degree?” I asked Jo, a hiring manager I’d met at a Python networking event, nervously.
“Personally, I don’t care about the formality of your education,” said Jo, casually blowing my mind with a single sentence. She and I had struck up a conversation about video games, and I’d taken the opportunity afterward to pick her brains on how to get a job as a Python programmer.
She took another sip of her coffee and surveyed the fields of company booths, all there to nab the latest and greatest talent. “I only care about your skills and how you think through problems.”
“Really?” I said, kind of flabbergasted. I had heard this from other people before, but it’s one thing to read a theory online and another to listen to an actual hiring manager say it out loud. “No degree needed?”
“Degree or no degree, I’ll look for the same kinds of stuff on your resume and ask the same questions about your projects. It’s your portfolio and skills that get you through the door, not anything else.”
That conversation was the first real confirmation of a truth I have now seen proven time after time. If you want to get a job as a Python programmer, you don’t need a degree. You just need the skills that a degree would typically give you.
What you need to become an employed Pythonista ๐
Ultimately, getting a job as a Python developer is a three-step process.
- You need to learn things.
- You need to build things with what you’ve learned.
- You need to show your work.
That’s true no matter what kind of Python programming job you want to get.
To start, I’ll assume that if you’re reading this article you’re a Python beginner, and you want to know how to get a job as a Python programmer without a degree. Maybe you know some code, but not much. This guide is aimed to help you get Python jobs at the entry-level.
However, it’s worth mentioning that Python can be used in several job positions: backend dev, data engineer, data scientist, and more. The knowledge you learn in this guide can go in other directions, too.
I’ll also assume you like to code. Python job salaries are definitely high โ StackOverflow reported the median salary to be $75k which was disproportionately high compared to average years of experience compared to other languages.
But money can’t be your only motivator. You have to enjoy the process of programming at least some of the time.
Finally, I’ll assume you’re ready to put in the work. Even if you don’t need to spend thousands of dollars on a degree or a bootcamp, you should still know that the process of becoming an employable Python programmer will push you out of your comfort zone, and you won’t go far if you look for shortcuts.
Getting a job as a python programmer will require an honest effort from you. You will not become a python developer in 30 days.
Let’s break down how to become a python developer step by step.
Learn Python ๐
Want to know how to get a job as a Python programmer? Start with Python, of course. Learning Python comes down to these three steps.
- Learning Python and coding syntax.
- Learning more abstract CS and software engineering principles.
- Learning how to apply what you know to real-world problems.
In short, you need to learn how to code with Python, you need to understand the underlying principles that make it work, and then you need to understand how the theory can help you IRL.
Learn Python and coding syntax ๐
There are so many guides and courses and videos out there that can teach you Python and its coding syntax. We’ve got a great one at Boot.dev that’s free to audit if you’re looking for a place to start.
Rather than reinventing the wheel, I’ll make this more of a checklist. Here are the basic Python principles you should grasp before you move on.
- What are variables? How are they declared and used?
- How can you compare different values to make logical decisions in a program?
- How can you reuse code with loops?
- How do you create and use lists?
- How can you declare and call functions?
- What are sets?
- How do you handle errors?
Beyond pure Python, there are some other coding fundamentals I recommend learning.
Learn another language: Knowing a second or third programming language can be super useful. If you want to become a back-end web developer you might want to pick up JavaScript, Go, and SQL. If you’re interested in data science, you might want to learn R or Julia. If you want to become a data engineer, you might want to also learn Scala, Go or Rust.
Why is this important?
- You learn different lessons. When I was writing about how to get a job as a backend Go developer, I talked about learning OOP with Python. Here, I emphasize learning networking with JavaScript. Different languages have different strengths and weaknesses. Learning more than one forces you to think more flexibly about how to solve problems.
- Hireability. No company wants a specialist, sadly. They want someone who can do it all. Not just Dev, but DevOps. Not just DevOps, but DevSecOps. And it’s gotta be in the cloud. If you can do Python and another language? You’re that much more employable.
Clean code: You do not code in a vacuum. You code with other Python programmers. You have to show the code to your boss. You will probably do code reviews. Clean code is essential.
Debugging: This is more of a mindset than a skill. Look, if you are looking into how to get a job as a Python programmer, you probably already know this. But it bears repeating. Coding is fun but challenging. You’ll run into issues left, right, and center. “The Way Things Are Done” will change without warning. You need to get into a flexible, problem-solving-is-enjoyable mindset to get a job as a programmer in Python.
Computer science basics and software engineering principles ๐
This is the biggest problem with coding boot camps, in my opinion. They jam you full of high-level code without actually teaching you the fundamentals. At the end of eight intense weeks of coding, you’ll be able to point to a shiny portfolio project you’ve built, but you’ll fall apart the minute someone asks you about the theory behind it.
(Computer science degrees will teach you all this properly, but it’ll take four years and cost up to a quarter million dollars. Not what you want if you need to know how to get a job as a Python programmer in the next year, not the next decade.)
Luckily, as Jo said, you don’t need either a degree or a bootcamp. Learn these concepts and then apply them in the “prove” step we’ll get to a little later in the article.
Because Python is such a great, user-friendly language, the good news is you can learn the most important computer science basics with Python. This is especially true for entry-level python developer skills.
OOP: Also known as object-oriented programming. I already made the “And I OOPโ” joke in another blog about how to get a Golang job, so I’ll refrain here. If you want to know how to get a job as a python programmer, it’s even more important to know about OOP since Python is an OOP language.
All you need to know here is that object-oriented programming is a principle of code organization. It’s the idea that “objects” can contain data and code. “Classes” create those “object” blueprints. Once created, you can then reuse those chunks of code.
Example: I like this example from Educative: Imagine you run a dog-sitting company and you’re keeping track of the names and birthdays of all your pups. There’s going to be a lot of duplicated code between your objects, which are currently your dogs. You want the same info โ name and birthday โ for each dog, so you can use objects and classes to build reusable code chunks instead:
- “Create a class for all dogs as a blueprint of information and behaviors (methods) that all dogs will have, regardless of type. This is also known as the parent class.
- Create subclasses to represent different subcategories of dogs under the main blueprint. These are also referred to as child classes.
- Add unique attributes and behaviors to the child classes to represent differences
- Create objects from the child class that represents dogs within that subgroup.”
Where you can learn it: At Boot.dev we have a comprehensive, interactive OOP course in Python. If you like videos I also recommend Corey Schafer’s video series on Python OOP. But the real best way is to build a project that has a lot of duplicate code and find ways where objects can help you simplify and reduce the code. (a lot of how to get a job as a Python programmer comes down to DIY.)
Local dev environment: This is an important step! Building a local dev environment will help you get more hands-on experience writing Python code. You’ll need to choose and set up different packages, modules, and libraries.
Example: I recommend just doing it yourself.
- Choose an editor โ we like VS code โ and install it.
- Make sure you’re using a good command line interface (built-in Windows command line is terrible).
- Learn how to use the CLI.
- Set up a GitHub repo.
- Set up Git so you have reproducibility and code history.
- Make sure your filesystem is set up in a well-organized way that makes sense and isn’t haphazard.
- Make your first commit.
- Install and run Python
Where you can learn it: We published a full setup guide on Boot.dev that will take from zero to a complete professional setup. I also like Microsoft’s guide. They cover different types of languages and environments.
Data structures and algorithms: How do you put data somewhere? How do you get it back out? What if you need to process that data in some way? The answer to all those nebulous questions is “data structures.”
Data structures can be linear, like arrays, stacks, queues, or linked lists. You can also get nonlinear data structures, like trees, graphs, tables, and sets.
Algorithms commonly get lumped in with data structures when learning computer science fundamentals because algorithms are how you manipulate the data inside data structures.
Example: imagine you have an e-commerce store. When a user types in “green bow ties,” you need them to find some relevant results as soon as possible. The data will be stored in a hash table or a tree structure. Something like a binary search algorithm or a hash function will search and retrieve the bowties the user probably wants.
It doesn’t end there โ you’ll need a list or a table to display those lovely green bow ties to your user, and you’ll want some kind of filtering or sorting algorithm to present them correctly.
Where you can learn it: If you want to test your knowledge, you can audit our Algorithms and Data Structure courses for free. Find you’re struggling a little? You can use a tutorial like this one to practice. You’re also welcome to go back to our courses โ the algorithms course will walk you through building a demo product, and the courses are designed to complement each other.
Networking: Networking is how different computer systems and servers over a network are connected and exchange data. Pop quiz! What is the difference between IPv4 and IPv6?
You should be familiar with the most common networking protocols and standards, such as HTTP, HTTPS, TCP/IP, DNS, and SSL/TLS.
If you look at that list of acronyms and think, “WTF?” to yourself, then it’s a sign you need to brush up on your networking skills.
Example: If you want to know how to get a job as a Python programmer, you’ll definitely be asked to do common networking tasks like connecting to a remote server over the internet and transferring data back and forth.
You’ll need to establish a connection, authenticate with the server, retrieve and process the data, then upload the results back to the server.
Where you can learn it: Our Learn HTTP course walks you through all those acronyms, as well as helps guide you through individual challenges that make up part of a bigger, real-world application. Tutorialspoint gives you a pretty in-depth walkthrough if you prefer reading to doing.
Databases: Different from data structures, which are how you organize data. This is absolutely a must-know for anyone who wants to know how to get a job as a Python programmer, and I’ve explained more about that here. Databases are where data lives. You should have a good familiarity with SQL and NoSQL databases (which I’ve covered here and here respectively).
Example: Say you need to store search log data. Do you know how to create a database, or which kind you should create? Do you know how to access that data using Python? How about manipulating it? Are you familiar with how Python and SQL work together?
Where you can learn it: This is one of the few computer science basics where it’s best to learn with a different language. I recommend our SQL course to build out real database tables and practice querying them. And again, there’s no substitute for learning by doing. Try connecting your Python project to a NoSQL database. Get it wrong. Figure out why. Get it right.
This is one of the few computer science basics I recommend doing in JavaScript, not Python. If you’re thinking about how to get a job as a Python programmer, I recommend learning another language anyway as I’ll get into below.
Coding best practices ๐
Another great piece of information for you: coding with Python is going to help you learn coding best practices because Python is an awesome language with clear, simple syntax and fast results.
Let’s go through them anyway to make sure that if you want to know how to get a job as a Python programmer, you’re taking away the right lessons.
Prove you learned Python ๐
You know computer science basics, and you know Python! You’re a Python beast and you can definitely get a job as a Python programmer. Except for one small issue * nobody will believe you unless you can prove it. You need to understand how to apply your coding knowledge to real-world problems.
Real-world problems are valuable to demonstrate you really know Python. If you can use Python to analyze a clean, sanitized data set, that’s great. So can anyone else with access to StackOverflow.
But can you use Python to effectively clean data? Can you make graphs that communicate the story you want to tell? Can you access and manipulate data already inside databases? That’s what employers want to know.
Luckily, you can do this in a few different ways. And along the process of learning Python, you probably did some of these already.
Here are four places you can prove you learned Python well enough to know how to get a job as a Python programmer. Pick and choose these based on the kind of Python programming job you’re aiming for.
Where to prove you know Python | What it proves |
---|---|
Portfolio projects | Shows the very best of your code and interesting products you’ve built. |
Website | Shares ideas and contributes to the community. |
GitHub contributions | Demonstrates good coding practices and makes connections. |
Your portfolio ๐
When you apply for jobs, many will ask to see a resume or portfolio of projects. This is both something you build โ the project itself โ but also the code that built that project. (This is where that clean code I mentioned comes in handy!) How to get a job as a Python programmer is very dependent on being able to showcase your skills in an easy-to-parse way.
How can you pick projects to showcase in your portfolio? As you run through the lessons I outlined above on the basics of computer science and Python, you’ll probably have created some products or cool code. But remember that quality beats quantity. Resist the urge to put all of them on your resume and instead select two or three that are high-quality.
What’s high quality? What projects can help you get a job as a Python programmer?
They should:
- Have well-written tests.
- Have clean and well-organized codebases.
- Have detailed README.md files describing what they do, and how to use them.
- Do something interesting. The more interesting your project, the more likely you are to pique the attention of a hiring manager. (AKA, don’t do the Titanic Survival Analysis project on Kaggle that everyone and their aunt has done. It’s a great project. It’s not interesting.)
We also recommend adding a library or a package to your portfolio to show true mastery and stand out from the competition.
Website ๐
A website serves multiple purposes. First, it can serve as a second portfolio for hiring managers who might stumble across your work normally, as well as something you can include in your resume.
Second, you can make your website itself a portfolio project. Python is great for building websites. And this is a good example of a real-world problem you can solve using Python.
Third, it’s good practice to write about what you do. Start interesting conversations, meet people, and show cool ways of doing new things. Talk about yourself and your interests. Websites are an awesome way to show you have what it takes to get a job as a Python programmer.
The PyCoach wrote an awesome tutorial on Towards Data Science about exactly how to do this using Python. He’s also a great creator to follow if you’re interested in how to get a job as a Python programmer.
If you don’t want to create your website, you can use Medium, Dev.to, or HackerNoon to showcase your articles and work. I love what Mahbub Zaman does * he writes consistently great tutorials using a variety of languages and tech stacks, as well as writing about soft programming skills. His example is great to follow if you’re looking for an accessible way to start.
GitHub contribution ๐
Finally, it’s a good idea to publish your projects on GitHub as well as have a link to your website or resume.
Beyond that, I actually think GitHub is better for demonstrating your ability to write Python with other people. Consider contributing to other projects, too. Submit bug fixes, add documentation, and contribute code. That adds more of that “real-world problem” flavor to your resume.
Remember, coding doesn’t exist in a vacuum. By working with other Python programmers on open-source projects, you start making connections by proving you care about adding positive contributions to projects.
Demonstrate you’re a hirable person ๐
You know Python, anyone looking at your interview materials knows you know Python. The last step in knowing how to get a job as a Python programmer is simply to prove you’re a hireable person.
People forget that hiring managers are people, not robots. People hire people they like. The right introduction or ice-breaking joke can make or break your chances at an interview.
Hirable skill | How to show it |
---|---|
Humility and confidence | Be the kind of hire a manager wants to brag about |
Intelligent applications | Customize each application and resume instead of spray-and-pray |
Networking | Join Python communities and positively contribute before asking for favors |
Humility and confidence ๐
We’ve talked about confidence in job interviews a couple of times before, but I’ll say it again here.
People hire people, not programmers. It’s a subtle but important distinction. If you’re an asshole who can code super well, you won’t get hired. If you’re a decent programmer who shows they’re eager to learn, easy to teach, and excited to make positive contributions at the company, you’ll have job offers flying at you with speed.
The TL;DR is that hiring managers are looking for hires who will:
- Save them time
- Make them look good
- Make their life easier
- Build out their team, giving them more authority and influence
- Deliver the project that will secure their next promotion
- Be fun to work with
That comes down to humility and confidence. Be sure of yourself, but not a know-it-all. Prove you’re willing to be corrected, and to take feedback well, but that you won’t need to be hand-held for the first six months.
Make sure to practice interview questions a lot * that will help you be sure of your skills while not being arrogant. I recommend a platform like StrataScratch that gives you real-life interview questions, as well as workable solutions.
Apply intelligently ๐
It is so tempting to shoot off your picture-perfect resume to every single half-decent job opening and hope for the best.
This is not how to get a job as a Python programmer.
Take the time to look at every single job opening. Find the hiring manager on LinkedIn and send them a message. Make sure to tailor your resume to match the keywords on the post. Update your cover letter to reflect what the company values. Tweak your projects to be a better fit for what the job posting is looking for.
It’s so much better to apply to one job a week, and do it well, than to apply to ten a week haphazardly and cross your fingers.
Network ๐
It shouldn’t matter, but many jobs come down to who you know. This is as true in the programming world as in any other career.
The good news is that Pythonistas are a friendly, helpful bunch. I recommend:
- Joining Python communities on Slack
- Contributing to open-source Python projects on GitHub
- Creating useful Python packages that other Pythonistas can reuse
- Commenting on Python blog posts you find interesting
And the most important thing? Give before you take. Networking is not transactional. It’s providing value before you expect value to be provided to you.
Take a minute and think * who would be a useful introduction to make? How can you make someone else’s day easier? What would be a helpful contribution?
That’s how to get a job as a Python programmer.
You are three (long, hard, but fun) steps away from getting a job as a Python programmer. ๐
That’s what it breaks down to. All 3,000 words of this guide on how to get a job as a Python programmer just are a long way of saying:
- Learn Python by focusing on Python basics and syntax and computer science fundamentals.
- Pick the very best projects you learned and put them somewhere people can look at them.
- Be a good applicant beyond being a coding whiz. Be smart, personable, and a valuable contributor to any team.
That’s it. Everything else is just window dressing. Hopefully, this helped you understand how to get a job as a Python programmer and you’re excited to get started.