No one really knows how to do a job before they do it. Most people land a coveted position through a strange alchemy of related experience, networking, and hard work. The real experience is the job itself. That’s when you get the opportunity to apply what you know to real-world problems and see it pay off.
The following four programmers earned their first Python jobs in different ways. Some had prior Python experience, some didn’t. Some knew what they were getting into, others found out later. Understanding how they landed their first Python job might help you land yours. Here’s how they did it.
Want to level up your Python skills and stand out in a rapidly growing market? Check out SitePoint Premium! You’ll find books to get you started (like The Python Apprentice) and develop job-ready skills (like Front-end Testing in Python). Enhance your skills with The Python Master, and access a growing library of over 400 books and courses on web design and development.
First Python job: Data Scientist
How Nathan Got the Job
While completing my Physics degree, I applied for a data science job with a small tech startup that primarily used Python (and SQL). The thing is, I didn’t have experience with Python at the time. When the interview came around, I answered the programming questions by using pseudocode to demonstrate I understood the concepts.
Pseudocode uses coding logic without using coding syntax. So by using the same logic that Python does, I could show an understanding of the concepts without being specific to any language.
For example, any computer scientist can understand the simple pseudocode below, but they may not understand the Python function unless they’ve worked with it before.
loop_index = 0 while loop_index < 5: print(loop_index) loop_index += 1
Set loop index to 0 Loop while loop index is less than 5 print loop index Increase loop index by 1
Pseudocode is more readable to humans, too. It’s not actually much different from code, it just avoids using language-specific syntax. And using it it worked! They gave me the job. But of course, before I arrived I had to actually learn the language.
My advice for those wanting to enter the field is to tackle real-world problems as soon as you can. At Project Hatch, a company I cofounded that analyzes startups and provides them with analytics to grow their businesses, we do hire people who are self taught, but there’s a huge skill gap between those who only do Codecademy-style courses and those who actually apply their knowledge. I would say keep working through Codewars challenges until you’re at a point where you don’t have to repeatedly look up what arguments you should be using and what order they should be used in.
If you’re looking for real-world problems to solve, go on Kaggle, which has a huge number of data sets to play with, and practice pulling useful information out of them. For example, if you’re looking at a data set for food recipes, align the data set with local food prices to find all of the recipes that create meals for under $5. When you’re ready for a real challenge, try Kaggle competitions. You’ll find problems to solve and companies willing to pay. These challenges will be incredibly difficult to begin with, but you’ll learn a lot discussing solutions with other computer scientists on the forum.
First Python job: Cyber Security Architect
How Bill Got the Job
I had supported Python developers for a number of years as a NASA network administrator and security engineer, so I was aware of the power and flexibility of the language before a new opportunity presented itself.
In 2017, I was approached by a major financial institution to join a team charged with developing a new assessment program to identify monitoring gaps in a particular business process and its supporting applications. I believe they came to me because of my:
- network and security experience
- lack of experience in the financial sector, as they wanted a fresh set of technical eyes on their problem
- ability to tease out what actual requirements are
- ability to approach a new project with an open mind and no preconceived notions.
Funnily enough, and unbeknownst to me, this turned out to be my first Python job.
Our team was expected to triage the gaps, identify possible mitigations, and report our findings to leadership. We began by mapping applications to each business process, but quickly realized that the size of the different data sets we needed to review (application and hardware inventories, Qualys vulnerability scans, daily BladeLogic reports, Splunk logs, etc.) were too large for import into Excel spreadsheets. Furthermore, we didn’t have access to traditional UNIX text processing resources or administrative access to our workstation, where we might have installed any new data management tools. And we didn’t have the budget to purchase new tools.
We did, however, have access to Python, a full set of Python libraries, and the ability to install Python using existing enterprise support software.
I didn’t know Python going in. I had to learn on the job, and good thing I did. Python was critical in our being able to parse hardware inventories based on applications used by the business process, isolate vulnerabilities associated with the appropriate hardware, and identify unauthorized services running on any device that supported one (or more) applications.
My advice to aspiring Python developers is threefold.
First, familiarize yourself with the different libraries available in Python that might assist you in a potential job. Our team used
csv extensively. If you’re looking at a machine-learning project, pay attention to libraries like TensorFlow, Numpy, and Keras.
Next, be on the lookout for processes that need to be automated, or where existing automation can be improved. There’s likely an opportunity for applying Python.
Lastly, have a good Python reference book to supplement all of the online resources that are available. I recommend T.J. O’Connor’s Violent Python.
First Python Job: Full-stack Developer
How Vinay Got the Job
When I started my career as a Python programmer, I was a complete fresher with a very basic understanding of Python and other programming languages. To prepare for interviews, I studied the basics of Python on the Internet for days on end. I went through almost all the variations of articles like “Top 10 Python questions asked in interviews.”
But as it turned out, the interviewer at my first job — a full stack developer for a cloud-based software — knew about all the common tricks beginners used to ace interviews, and he had gone through the same articles I had.
Thankfully, all he asked me was practical application questions and some basic Python syntax. His focus was on checking if I had the right analytical mindset and good logic. His statement to me was: “Any developer can copy syntax from a basic Google search. Only logic separates a good developer from a bad one.”
Another problem was that, once I landed the job, they expected me to know it all immediately and directly pushed me into a project with strict timelines. It took me more than six months to get into the flow of it and feel comfortable with the tasks and the workload.
One really important thing most people fail to understand is that our education doesn’t prepare us for the challenges in the professional life of a developer. It’s entirely up to us to invest our time and learn and develop our skill set.
Don’t just learn the syntax and read about the language. Instead, implement a few simple applications and try to learn one framework for that language. Only when you start implementing will you have further questions and actually learn the language. The answers to the problems you face is what will make you proficient in that language.
First Python job: Technical Support
How Jordan Got the Job
I don’t have a college degree, and started teaching myself Python about 22 months ago.
In 2015, I was working in a restaurant as an order taker. I was technically inclined, but didn’t do any coding. I was pretty much a loser and drank heavily, and had no real ability to set and pursue goals. I was fired from this job after six months. This was a major blessing.
Afterward, I got my first job working with computers. I was hired as a support person for a tech startup, but this didn’t require much technical skill, just an ability to use computers in an intermediate way. I worked there for 20 months before being fired, which was also a major blessing.
I had quit drinking a few months before I stopped working there, and got another job pretty quickly, working as support for another startup. But I soon learned that the job was going to be moving, which meant I’d have to find another job that I would likely hate. I had a few months until the job ended, so I started teaching myself Python, learning every day after work using Automate The Boring Stuff With Python.
I had two months of unemployment after leaving that job, and I kept teaching myself Python, as well as a little web development. I applied for a support position for a web app that was using Python in the back end, and I mentioned in the interview that I was familiar with Python, and was able to talk to them about their program (it was heavily reliant on web scraping). They hired me.
While working there, I taught myself SQL and spent evenings taking a Udemy course. It wasn’t part of my job description, but I was using Python and writing scripts to make parts of my job more efficient, such as QAing the data the app was collecting. I was still spending time every day after work learning and coding, becoming familiar with Data Science, and building larger, more robust programs.
When I was at this job, I started looking for portfolio ideas. My plan was to build up my portfolio and then start applying for developer positions after a year. I thought a good place for ideas would be a job board called AngelList, where I would find companies using Python in their stack, and then build my own things that were similar to their products.
As I was searching for these positions, I found a job posting that was similar to what I was already doing — support — but with a heavy emphasis on Python and SQL. And it paid a lot more money. I applied on a whim; my intention wasn’t even to find a new job.
I did a pre-interview phone screening with the product manager, took a small technical test, then went in for a three-hour interview with some developers and other product managers. I ended up getting hired, so I left the job I was at for my first job where writing Python was officially in the job description, and required.
I’m still there now, and recently transitioned to being a full-time back-end Python developer. My two-year mark since beginning to learn Python will be February, 2020. I’m still learning outside of work almost every evening, growing my skills and understanding more advanced concepts.
You need to work for it. You need to forego short-term happiness and convenience for a future reward. It seems to me that if you put in the time, eventually it will pay off. I definitely got a few lucky breaks along the way, and I ended up being in the perfect position to be hired where I am now, but it would have still happened for me because I worked very hard for it. I immersed myself in coding culture, subscribed to the subreddits, listened to podcasts, and read books. Coding became an obsession.
Though these programmers all took different paths to arrive at their first Python job, their stories bear a lot of similarities.
- Understanding the underlying logic of programming concepts can get you a foot in the door.
- Tackling real-world problems through resources like Codewars and Kaggle is a great way to prepare yourself for the job.
- Being open to new opportunities, even if they aren’t exactly what you’re after, can lead you to unexpected — and awesome — places.
- Never stop learning, both in and outside of work. Familiarize yourself with different libraries, build your own applications, and treat challenges and questions as chances to gain a deeper understanding of the language.
Find your next remote Python job with SitePoint Remote, where we handpick the best remote jobs for developers, designers and digital professionals.