How often do you meet people who are looking to get into the software development space?
Do they ask you for advice? Maybe they want to know your story of how you got started and
landed that first big job. Maybe they want to know what they should be doing right now.
This episode of Talk Python to Me is the first in a two-part series that attempts to bring a
wide spectrum of thoughts on this discussion. It's Getting Your First Dev Job as a Python
Developer Part 1. It's episode number 39, recorded December 10th, 2015.
Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the
ecosystem, and the personalities. This is your host, Michael Kennedy. Follow me on Twitter
where I'm @mkennedy. Keep up with the show and listen to past episodes at talkpython.fm
and follow the show on Twitter via at Talk Python. This episode is brought to you by Hired and
Codeship. Thank them for supporting the show on Twitter via at Hired underscore HQ and at
Codeship. Hello and welcome to a special Talk Python to Me. In this Talk Python, we're not going to
interview one person that's maybe done something great in the industry. This is in fact going to be
a two-part series made up of panelists. And the idea is we're going to talk about how do you get
started in the software industry in general and in Python as a Python developer in particular.
So the overall goal of the series is going to be to help newcomers, whether they're entirely new to
the development world or maybe transitioning from a related industry like going from networking into
programming. Help those newcomers get their first job. We're going to interview some people who have
just landed their first job and we're going to interview some people who have key roles hiring and
selecting candidates at their companies. So this is going to be a two-part series. Part one, we're going to
talk to the newcomers. Everyone you hear on the show today has just got a new job and we're going
to talk about their experience getting there. And then the following show, we're going to talk to the
experts. Now, I think one of the challenges out in the software industry is there's a large disconnect
between people who have experience and people who are just getting started. If you have experience and
you've done good work previously in the software industry, getting a job is pretty easy, to be honest.
Just from my experience, I receive job offers unsolicited, by the way, job offers all the time.
I just have one in my inbox right now. Hey, here's a great job. $115,000 plus bonuses, cool technology,
lifestyle balance. You don't have to work all the time. You know, it sounds great, but I'm not interested.
I actually already have a job. I like it. So in some sense, there's this feeling that there are many,
many tech jobs out there. There are not enough programmers to actually fill the jobs. And there's,
there's just tons of competition for good developers. But on the other side of that story is I think it's
fairly hard for people getting into the industry to get started. How do they differentiate themselves?
How do they prove that they're a good bet? Things like that. I feel kind of once you get started in the
software industry, it's, and as long as you put in the effort, you keep learning, you keep growing,
it's super easy to have a good job and just run with it. But getting that first step, that first
foothold can be a super big challenge. So I'm hoping to put together this series to help more people
climb that first step and get off the ground and running maybe quicker, maybe easier than they would
have otherwise. So let me introduce the panelists real quick. This week, we're going to have Jess
Unrein, Justin Beal, Eric Chow, Jonathan Sundquist, Elio Carrera, and Matt Yancey. Next week, we'll hear
from experts at companies such as Netflix and PayPal, among others. Now, before we get to this panelist
discussion, I want to recommend a few books. Now, I'm sure you're all aware of many ways to learn what
you need to get a programming job, right? We could take online classes, you could go to a university
program, you could buy a book on Flask, you buy a book on SQLAlchemy. But what I think people sometimes
overlook are books that are a little more focused on taking a step back and looking at their career as a
technical person. So I want to recommend two books that changed my thinking on this to some degree. The
first one is a book called Soft Skills, the Software Developer's Life Manual. And this is a super good book by
John Sonmez. I'll put the links in the show notes to both of these books that I recommend. And this book
by John Sonmez really talks about how do you build up your career so that you distinguish yourself? How do
you specialize in something? And how do you make that known? And he really covers what you need to sort of
grow into being very successful software developers outside the technical parts, which are, I think,
sometimes difficult, but more straightforward to learn. The second book I want to recommend is a book called
The End of Jobs, Money, Meaning and Freedom Without the Nine to Five by a guy named Taylor Pearson.
So this is one of my favorite books I've read this year. It's not exactly how do you get better at your
job, but a little bit more at how do you look at employment and work for yourself in general. So
to give you a sense, I'll give you a little quote from the book. There's a part where he talks about, you know,
people are having a hard time finding a job doing the certain thing they want, or maybe at the right pay level
or the right flexibility or something like that, and says something to the effect of
the problem both for us as a society and as individuals is that we're asking the wrong question. How do I get that job?
What if a better question is, how do I create a job doing that?
Taylor goes through sort of analyzing the tech space and talks about entrepreneurship.
I think you'll get a fresh perspective on careers and employment and jobs and all those sorts of things.
I'm not sure it's super helpful when you're first getting started, but it's definitely an interesting big picture book
that I think fits into this conversation.
So with that introduction, let's get on to our first question with our panelists of newly hired developers.
In this first segment, I wanted to lay the groundwork to build all the rest of the conversation on.
So I ask everybody who's participating, what job did they just land?
Pretty much everyone you're going to talk to has a new job. Many of them, it's their first or one of their first programming job.
So I ask, what job did you land? What kind of experience were they looking for?
And what type of people and software will you be working with?
Hi, my name is Jess Unruin and I work as a software engineer with ShiftGig.
I got my job as a junior software engineer a little bit more than a year ago.
Right now I work primarily on API development and backend infrastructure.
We're using a Flask app to serve out a backend that supports multiple web and mobile applications.
So they were looking to specifically hire a junior and I didn't have any Python experience.
Right before I started my job search, I attended a web application development bootcamp called Dev Bootcamp located in Chicago.
Dev Bootcamp's curriculum is based on Ruby and Rails.
So when I interviewed, I interviewed in Ruby.
So even though I didn't have any Python specific experience, I still did have some web application background.
And I walked in with a final project and a few side projects that I could use as code samples for my interview.
When I first started my job, my first project was to write unit tests for modules in our code base that had little to no coverage.
That was a really great way to get started at the company because it not only helped me get up to speed on Python as a language, but got me involved in the code base and figuring out how things worked a lot sooner than I would have just reading through the code alone.
Here's Eric Chow, who's working on the Microsoft Azure cloud computing team.
I was recently hired as a software engineer at Microsoft Azure Networking.
They were mostly looking for a solid network engineer who passes the minimum software developer bar with a strong bias for diving deeper into the software developer world.
On a daily basis, I do a combination of network engineering, you know, configure, troubleshoot switches, routers, networks.
And I also deal with the code that manage the network devices, whether it's written by somebody else or written by myself.
Now let's hear from Jonathan Sundquist, who just landed his first job at Server Density.
So a year ago, I landed a job at a company called Server Density.
At the time, they were looking for a support engineer, which was the role I was applying for.
And Server Density is a company that does server monitoring.
So they needed a quite tech savvy person who could be at the same level as the customers.
But as I began working there, I actually transitioned to an inter-role as a back-end engineer who worked on marketing projects.
And to me, it felt like a step up as I was doing more coding than the support engineer role would have required.
Next up is Justin Beal.
And Justin's situation is a little bit different than the other guys.
Justin has been working as a software developer in the Java space, but he's decided to make the transition over to Python.
So in some sense, he's brand new.
And in some sense, he has a lot of experience.
Let's hear what he has to say.
Hello, my name is Justin Beal.
I was a Java web developer for almost 10 years before being introduced to Python.
In June, I acquired a software developer position at a company called Onshift in Cleveland.
In Cleveland, Ohio, it's not real easy to find someone with a lot of Python experience.
So they mainly were looking for a competent, experienced developer who is willing to learn.
The ability to learn has got to be one of the most important things any candidate can showcase.
When I was mentored as an intern, I had a boss who I thought was a complete jerk.
But he gave me one of the best pieces of advice I've ever had in my career and have been running with it since.
He said, Justin, it's a sink or swim world and you will always be sinking.
There will never be a time when you know enough.
If you're not constantly trying to learn, you will become outdated and you'll be stuck.
So that, I think, is the most important thing when you go into an interview,
regardless of whether or not you know the language,
is to be able to demonstrate a time that you were overwhelmed.
You were able to read a book.
You did some Google searching about a technology, an open source project, something,
and demonstrate that I may not have the skills you need right now,
but I will learn them.
And it will be quick and I will be efficient.
In a matter of days, I will be up and contributing to your project.
Next up is Ilo Correra.
Ilo was a little concerned that his English was maybe not quite up to interview format in English,
but I really wanted to include a story because I think it's an interesting one
and it's somewhat different and it'll probably resonate with some of you out there.
Ilo is from Portugal.
And as you may know,
Portugal has had some really tough times with their economy.
Right now, I think the unemployment is 11.9% and that's much better than it has been.
Over the last few years, it was somewhere close to 20%.
When you're in that kind of market, finding a job takes on a different set of challenges.
Add to that, Ilo lives out in the country in a small town and he's looking for a job as a software developer
and doesn't really want to move to major cities where you probably can find jobs pretty easily,
but then you're living in the middle of a city and that's not the lifestyle he wants.
So his story is about how do you take this sort of tough situation as well as geographically located in places that maybe are a little harder to find Python jobs and make it work.
Here's Ilo.
Hello, Michael.
Thanks for having me on the show.
My name is Ilo Correa.
I'm Portuguese.
Iloved to code, build stuff, etc.
Now, I'm currently working as a backend developer and a sysadmin for a company that do websites, web apps, digital marketing, etc.
For this position, they are looking for someone with good understanding of Unix command line, Python, Django, good understanding on configuration, administration, the server.
To get this job, it was a bit tricky.
I live in South and in Portugal, IT jobs focus almost in the capital.
With that, I had two options.
Find a remote job or go to the capital.
Because I like the good weather and I like to live in a peaceful place, I did want to go to the capital.
And for a guy like me with almost no experience, a remote job, it is really hard.
Our final guest is Matt Yancey.
And Matt will bring us the data science side of the Python story.
My name is Matt Yancey and I work as a data scientist at First Analytics, which is a consulting firm that specializes in using data and analytical techniques to provide services or solutions to other companies.
Since joining, some of the work I've done has included predictive modeling, forecasting, text analytics, as well as data visualization.
And we work in industries ranging from retail to railroad.
From the perspective of the hiring process, I think First Analytics was looking for someone who had a good base knowledge of the standard analytical tools.
So this includes basic statistics, linear regression, decision trees, things like that.
But they also wanted someone who had kind of more niche or specific knowledge.
So in my case, you know, I had some experience, you know, with text analytics and with web scraping, both of which I was able to really mainly do just through Python, using both the NLTK package and, you know, the beautiful suit package.
The next thing I want to explore with our group is what did they do to prepare for this position?
So everybody you're hearing from has recently landed a job that's at least some major transition, if not an entirely new career for them.
And so what did they do?
Did they go to the university, study for four years and get some very nice, well-rounded education, but four years of hard work before you can see whether that's going to work out?
Or did they do some online video courses?
Did they read books?
Did they work on side projects?
Where I work, we interview a lot of people, but we hire very few junior developers.
Generally, everyone I work with is a software trainer.
So we teach people who are already experienced software developers something new that they don't know.
And so that doesn't really fit the mold of helping someone get their first job, right?
You have to come with experience.
In my world, we don't look at degrees.
We don't really care so much about what you've studied and a lot of plaques and certifications.
We just want to know what have you done and how can you present that?
But I wanted to ask everybody here what they tried and what worked because they are in a very different position than the experience I have.
Here's Jess again.
How have you prepared for this position?
To prepare for my job as a junior developer, I went through Dev Bootcamp.
I'd done some self-guided learning before I got to that point, but I eventually found that I wasn't learning as quickly or effectively by myself as I would going through some sort of program.
I started researching different boot camps around the country.
I looked at Hackbright Academy, which is an all-women boot camp in San Francisco that does focus on Python.
I also looked at App Academy and the different locations for Dev Bootcamp, but ultimately decided on going to the Chicago location of Dev Bootcamp after doing some research and price comparison.
When I first started out, I wasn't looking specifically for a job in Python.
I didn't know enough about the tech market to be looking at any languages in particular.
I really wanted to focus my education on the fundamentals of web development and what it means to be a programmer since I was coming from a complete career change.
I wasn't at all interested in going back for a two- or four-year degree because I already have my bachelor's in political science and music, and I wasn't interested in investing another two to four years of education where I was taking myself off of the job market and accumulating more debt.
So boot camps looked like a really attractive option because they promised to get you through quickly and get you up to speed on being able to be a junior.
Here's Eric Chow.
How have you prepared for this position?
I don't think I set out to be a software developer, per se.
I discovered Python several years ago while trying to solve my own problem, which is something that was interesting.
And again, it was solving the day-to-day problems I was facing at work.
And I got really into it.
And I started taking several university extension classes.
I started a Python for Network Engineer blog, a Facebook page.
And in general, when I finished writing some of the scripts and code, I cleaned them up and put them and published them on my blog to help others.
So I think that kind of prepared me well for the job.
But again, I think I never set out to be a software developer.
It was just something that I was using on a daily basis to solve the problem I have.
And it was something that was interesting to me.
Next up is Jonathan Sundquist.
So my background isn't at all in engineering, and it's not even in programming.
So it all started with me discovering Udacity.
They had this course called CS101.
Essentially was the foundation which I built everything upon.
After I did that course, I continued to learn on my own, reading online articles and trying to take other online courses.
So that was something that I continued to do for like one and a half years or something like that.
And eventually I heard something.
I heard about boot camps.
And I heard that that was a good thing to really kickstart your career into getting into the industry.
And eventually I found one, which was a boot camp called Hackership.
So during three months, I was able to focus quite intensively on doing programming among peers who did the same thing.
And like we collaborated and did things like that.
And the peer support was incredibly helpful.
And having coaches around you and having a structure really helped me into getting into the habit of programming and like solving the problems that was required for this kind of thing.
And having this helped me to like build a project of my own that I could talk about to like a prospective employer later on.
Here's Justin Beal.
When you are a competent, experienced developer, you don't stay on the market very long.
The most important thing is to be able to demonstrate that competency when you actually find a position that you like.
When I'm getting ready to interview, I read about big O notation for a little bit.
Everybody should know that looping inside of a loop is an N-squared algorithm.
But you should also know how efficient sorts are and access from a map, things of that nature.
What is the big O notation of those?
In addition, I like to refresh up on my data structures and algorithms.
Knowing the difference between a list and a map, an array, how trees work, things of that nature, go a long way to demonstrate your understanding of computer science in general.
The fundamentals are basically the most important thing.
No good OO principles.
If you don't know what the term solid means, look it up.
Finally, as an advice to future candidates, know how to solve FizzBuzz in less than five minutes, please.
Also, how to reverse a string in your language of choice.
If you can't do those things, you're not ready for any interview at any level.
Next up is Elio.
I was really in PHP level and my focus was to get a job with that technologies.
But here where I live, PHP companies work almost only with WordPress, Chumas and Drupal.
It was a technology that I didn't like to work.
Seeing that, I started looking for other companies without the technology in my area.
For example, with C#, Python, Ruby.
So I started looking.
Then I found the one that I was working with Python and Django.
And I tried to...
And I was sending an email for...
To get an interview.
When I go to the interview, I didn't have much experience with Python.
But I tried to prove my value showing the work I do, I did in other languages.
And showing the good structure, good habits, so they can have me on the team.
They say to me that I have to study a little and make something so they can see in Python.
So I buy two books of Django and starting doing a simple project.
After a few...
After two weeks, contact them again and show my website.
And they like it.
They gave me a project and I start working for them as a freelancer.
I start making projects.
Simple websites.
Then going for more like legacy code.
And start improving.
After a few months, the boss talked to me saying that he will need a CZ admin, DevOps, to help the current one.
And if I'm history interested, he'll like me to have me on the team for good.
So that's how I get my job.
It's not easy.
Now let's hear from Matt Yancey.
When it comes to what helped prepare me for my current position, I've been very fortunate to have some really good formal education.
So I recently graduated from Northwestern's Masters of Science and Analytics program.
And in that program, we had courses that covered Python, Java, as well as modeling and data mining.
But then we also had a practicum where we were placed in groups of four.
So it was me and three other students.
And then we were then assigned to work with a company that had a specific analytical problem.
And they would give us the corresponding data.
And then we'd apply the different techniques that we've been learning to that data set.
And try to come up with a good solution.
Now I know grad school doesn't work for everyone.
But fortunately, there's a lot of really good alternative resources out there for getting some of those same aspects of an analytics program.
When it comes to learning a programming language like Python or Java, I think anyone who's listening to this podcast knows there's a million resources out there on the web for doing that.
But there's also a lot of really good resources like MOOCs and online tutorials for data science courses.
They cover a lot of different topics.
Kind of the more difficult thing is getting industry experience.
But fortunately, we have Kaggle, which is a great resource for doing that.
For those who are unfamiliar with what Kaggle is, it's simply a site where companies can post their problems along with their data that they want other people to solve.
And these problems are posted actually in the form of a competition.
So you can also see how you rank against other people in the data science community.
And the people that can also post some of their solutions.
So it's a great place for learning how to do some data science as well.
But this provides a great opportunity for people to get to play with real-world company data.
This episode is brought to you by Hired.
Hired is a two-sided, curated marketplace that connects the world's knowledge workers to the best opportunities.
Each offer you receive has salary and equity presented right up front,
and you can view the offers to accept or reject them before you even talk to the company.
Typically, candidates receive five or more offers in just the first week, and there are no obligations.
Ever.
Sounds pretty awesome, doesn't it?
Well, did I mention there's a signing bonus?
Everyone who accepts a job from Hired gets a $2,000 signing bonus.
And as Talk Python listeners, it gets way sweeter.
Use the link Hired.com slash Talk Python to me, and Hired will double the signing bonus to $4,000.
Opportunity's knocking.
Visit Hired.com slash Talk Python to me and answer the call.
So you've heard the different approaches that our new hires have taken.
Some of them did boot camps.
Some of them did online courses.
Some of them just built it up slowly over time.
And we haven't had a master's degree in the mix there.
So I asked them, what do you think of your particular path to getting ready to get this job and get started in this industry was the most important?
What part of your experience from question two made the biggest difference?
So at the end of Dev Boot Camp, you spend a pretty intense eight days at the end of the program working with a small group to create a full MVP web application that you present to potential employers.
Working quickly to create that MVP that you have to coherently present was an incredibly valuable experience.
One of the most important things that I learned over the course of our final project was how to talk about the decisions you make as a programmer.
Why does your infrastructure look the way it does?
Why did you choose to use the packages that you did?
Why don't you have coverage for this particular module?
That was a really helpful experience because when I was interviewing, my team was looking much more for critical thinking skills, communication skills, and being able to defend your positions than they were for specific Python knowledge.
So I think that boot camps do a good job of getting you to the point where you can critically analyze what you're writing and learn quickly and adapt quickly to new situations.
Another thing that the instructors encouraged us to do while we were at Dev Boot Camp was to consider things we might have done differently if we had the chance to start our project over or if we had more time to refactor.
Being able to think about editing and critical analysis was a really great skill that I think they did a good job of instilling in my nine weeks at Dev Boot Camp.
What part of your experience made the biggest difference?
I think the blog really showed my dedication toward learning how to code and shows kind of this practical side of what I can do.
I mean, it takes time and effort to write the code, clean it up, add comment, and format it correctly for the web.
Also, you know, I know this wasn't going to make me any money.
And I just wanted to do this for, you know, one, to track my own effort, and two, to possibly help others in the same situation.
So I think that really helped me in a way to differentiate myself from other candidates.
So what made the biggest difference was really being able to have this kind of immersive experience as I had in hackership.
And it gave me the kind of confidence boost that made me feel that programming was something that I could actually do.
As I said earlier, at the end of the three months, I had something that I could actually talk about with an employer and show him that this is what I've learned during these three months.
And this is what I actually can do.
I think the thing that makes the biggest difference in an interview is demonstrating that this is a lifestyle choice for you.
It's not just a nine-to-five job.
When I go home, I read about programming.
When I work, I program.
When I dream, I program.
It's one of those things where this is my niche, and I want to be an expert in it.
Prove to people that that is true for you also.
If you feel like you're weak on something, read about it.
Most recently, I was told that I don't know what I'm doing as far as being a manager, so I've been listening to audio books at work.
Most recently, Leading Snowflakes.
But I've also listened to The Leadership Secrets of Attila Hunt, The Lean Startup, The Toyota Way.
If there is something you feel like you are weak in, master it, and don't let anybody tell you that they are better than you.
To help others.
This job as a developer, I think it's our job.
It's something that you have to love it to be successful.
It's not something you can pick.
To be a good professional, you have to be an internal student.
You have to have passion for what are you doing, or you were not.
Saying that if you have this, you don't have any excuse.
No matter where you live, the crisis, you have how to be a good programmer and person.
You just need to be patient.
With regard to what part of my experience made the biggest difference in the interview process, if I had to take a guess, I would probably say it was those experiences that were either creative or kind of outside the norm or involved new technology.
Basically anything that really kind of distinguished me from the different candidates that were also interviewing.
So one project I would kind of always point to was the text analytics project that I did.
Text analytics, while it's kind of popular, it's still very much outside that essential skill set for data scientists.
So that was something that I felt like definitely differentiated me.
And for my project, it wasn't necessarily super complex, but it was something that was kind of creative and fun, I thought.
What I did was I wrote some script that could take the transcripts from a television show.
And then, you know, break it up by the different characters and then analyze what those characters said and produce a metric for either how positive or negative that character was, you know, during a certain episode.
And so what you can then do is, you know, you can plot these over time and see, you know, what characters, you know, become more positive or more negative as, you know, the show progresses.
So it was, you know, just something, you know, kind of fun and creative, but, you know, also showed that, you know, I had this skill that, you know, not every data scientist has.
If I were looking for a job now, maybe I'd want to focus on Google's TensorFlow, which is their new package for Python for doing all of their deep learning computation.
So you have a couple benefits there.
You know, one, it's, it's, you know, very new.
So not that many people know or have experience with it.
But then also, you know, it would demonstrate that, hey, this is someone that, you know, is kind of up to date on like what is coming out.
You know, their hand is kind of on the pulse for those new tools and packages that are being released to the data science community.
Keeping with the theme that I'd like to help everyone out there looking for a job or trying to get into a career, trying to help them be successful.
I asked our panelists what it was about their experience or them or the interview process that they felt was key to them actually landing this job they're in.
So let's hear what they have to say.
Why do you think they chose you over the other applicants?
Most junior developers are going to walk into their first job with largely the same skill set, especially if you come from a boot camp education, you're going to miss out on a lot of the theoretical knowledge that somebody with a four year CS degree is going to walk in with.
Although you might have a little bit more practical application with the web development side, especially in terms of JavaScript or some micro frameworks that aren't necessarily adopted in college curriculum yet.
So there are tradeoffs that you'll experience in a boot camp versus a computer science education.
But generally, juniors are going to walk in looking pretty much the same.
So the thing that I found that really helped differentiate me as a candidate was walking in with a strong code sample that I felt proud of and was able to defend very clearly.
So in my final project, we used an API to gather tweets from geofence locations and another API to run a sentiment analysis on that social media output.
And it was very important for me to be able to talk in my interview about why I chose the APIs that I did, why we use the Ruby gems that we did, and talk about some of the alternatives to the APIs or the packages that we used and be able to talk clearly and concisely about the decisions we made during our project, pivots that we made when things weren't working.
And then in a couple cases, talk about decisions that we regretted, but were unable to course correct for due to the abbreviated nature of the program.
And again, because most juniors are going to walk into a job interview knowing a lot of the same things, a hugely important factor in finding my first Python job was the culture fit at my company.
We all got along right away, and that's something that's incredibly important when you find a junior, because juniors are getting paid to learn and might not offer much direct business value right off the bat.
And employers understand this when they're hiring juniors, but it means that finding a company where you're a good culture fit is maybe more important than it will be in subsequent jobs.
You're going to spend a lot of time in direct contact with your team lead as you learn about the company and the code base.
So hiring a junior developer is a big investment, especially for small development teams.
So they want to make sure that you're somebody that they really want to work with every day.
Why do you think they chose me over the other applicants?
I think the diverse background really helped.
I guess they could say, hey, you know, if this software engineering thing doesn't work out, we'll go as you seem as a network engineer.
I think the other experience I had had had before definitely mattered in getting me chosen as an applicant.
I had done some writing professionally, so I could give a hand with that in marketing when it was needed.
And as I also knew Python, it would also help contributing with developing things in marketing and related projects in programming.
I believe the reason I was picked for the position is that I was able to easily demonstrate my competency.
I have a GitHub repository with almost a dozen or so different projects, ranging from JavaScript and Angular to web services to encryption, things that interest me.
Most recently, I started one trying to do an OAuth 2.0 implementation.
In addition to GitHub, I also like to blog.
So I have many blog posts on my brother's site where I just basically talk about the technology that I picked up, what I did to master it, and how to apply it.
Finally, I believe they picked me because their bar was not as high as it should have been.
If you go into an interview and they give you a fizz buzz, as I mentioned, you should be able to do that with your eyes closed.
Mod 3, Mod 5, get the results.
It's that simple.
I mean, it really should take you about the time to talk to it to solve it.
Same goes reversing a string.
This episode is brought to you by Codeship.
Codeship has launched organizations, create teams, set permissions for specific team members, and improve collaboration in your continuous delivery workflow.
Maintain centralized control over your organization's projects and teams with Codeship's new organizations plan.
And as Talk Python listeners, you can save 20% off any premium plan for the next three months.
Just use the code TALKPYTHON, all caps, no spaces.
Check them out at Codeship.com and tell them thanks for supporting the show on Twitter where they're at Codeship.
In this last question, I basically asked the panelists to speak directly to you, the developers and potential developers or soon-to-be developers, about what advice they had for you to help you get started.
Here they are.
So I actually wish I had done more research and experimentation prior to starting my first Python job since I wrote my first line of Python on my first day of the job.
It ended up working out really well for me.
And like I said, I think it helped that I had strong fundamentals in web development and I had a good grasp of Ruby at the time.
So it was a pretty easy transition from Ruby to Python.
But I wish I had done more self-guided learning specifically on Python before starting the job.
I think side projects are a really great way to get some experience with a language.
And something that I like to tell a lot of people when I hear that they're looking for their first job in Python is to pick out some popular libraries and dive into the source code for those libraries.
I like to point to requests as a particularly good library that's well-structured and well-maintained that's easy to dive into as a beginner.
I think it's important to look at the tools that you're using and think critically about the ways that those libraries are structured.
Try to find a few specific things that you really like in that library or find a few things that you might do differently or that you question the implementation and you want to learn more about.
One of the best things that you can do to prepare yourself for a development job is to be opinionated about the tools you work with.
Be able to identify one or two of your favorite packages and talk about why in the interview.
Being opinionated shows that you're passionate and considerate about your craft.
Even if your interviewers don't agree with your assessment of a particular tool, they're going to appreciate that you're investing time and resources toward critically evaluating your own work and the tools that you use.
Another thing that I would recommend is joining local user groups and getting a feel for the job market.
User groups can be a little bit difficult to break into, but group organizers usually have their contact info publicly available somewhere.
And group organizers are a great resource for people looking to break into a development community.
They're usually group organizers because they like providing that connection for people and seeing people get started.
User groups are also a great way to find about free classes or professional development opportunities that are going on your area for either low or no cost.
I really regret that I didn't do as much networking as I should have prior to my job search.
And I wish I'd taken advantage of more of the publicly available resources in the Chicago Python community.
Most major metropolitan areas are going to have some great public resources and people who really want to help you get out there.
Especially women's user groups are a really friendly way for women who want to transition careers.
Especially if you're not ready to dive right into a boot camp education or you don't want to go back to college yet.
Checking out the Python community where you live is a really great way to get started and to find out what other people are looking for in juniors.
Often a lot of people who are looking to recruit new developers will recruit through user groups.
So that's also a great way to get your foot in the door and get some name recognition before you walk into your interview, which is a great experience to have.
What advice do you have for other new developers looking for their first job?
I think trying to solve your own problem, whether it's the problem you face at school, at work, is really important.
Because I think by solving your own problem, you will have the highest satisfaction when you're finally able to solve the problem, get a solution going.
And also that you will find out that other people who may have the similar experience as you and have the same problem.
And that will kind of expand your network and expand your vision into those different fields that will make connections, lend your jobs.
And I also think that it's important to keep in mind that, you know, software engineering skill is a, just like anything else, it's a learned skill set.
You will get better with time and practice and effort.
And so it's important to just, you know, kind of keep your chin up and don't get discouraged and go from there.
So for new developers who are looking for the first job, I would really recommend to get out there and socialize with other developers.
Go to meetups and see what it's like talking with other developers and learn at these meetups.
And I also think that it's really helpful to have, to actually have a concrete project that you've made yourself and that you can talk about.
That way you can mention it in a cover letter later on, or you can talk about it during an interview.
And having built something from the ground up really helps to understand all the different parts, which will also help you land a job.
The most important advice that I can give someone who is finally landing their job or looking for their job is to make sure you negotiate your market value correctly.
One of my favorite positions starting off, I was underpaid.
And as a result, I felt like I wasn't being valued as much as I should have been.
Don't take the first job because you're desperate.
Each hop in your career, you're going to learn.
You're going to pick up new tricks.
And if you're stuck in a place without good mentors, without competent business people, you'll be wasting your time.
I know, especially when you have your first job, anything seems acceptable.
But make sure you land the right one.
You don't want to be known as a job hopper.
So plan on staying for at least two years.
For people who are looking for their first job, I would recommend two things.
First, be familiar with the technology that is out there.
So if you're planning on going into data science, then by technology, I mean the software.
So Python, R, SAS, Tableau.
But I also mean the different methodologies for analyzing data.
So regression analysis, decision trees, and clustering.
Now, you don't need to be a master of all these things.
But it helps to have at least some experience in most of them.
And then to have kind of a more advanced level knowledge in a few areas.
So maybe you want to aim for being kind of a jack-of-all-traits master of a few, I guess.
And if you are going to specialize in Python, then I definitely recommend being familiar with some of the really core and fundamental packages for data analysis.
So that would include scikit-learn, numpy, pandas for manipulating your data.
The NLTK package is great for if you're doing text analytics.
I also use a lot of – I do a lot of web scraping.
So I use requests and beautiful soup.
But then also Google recently announced their TensorFlow package for doing deep learning.
So having a good foundational knowledge of those things is definitely key.
And the second part of advice is that I would say to have like an online portfolio.
For me, when I was interviewing, a lot of these job interviews were either phone interviews or Skype interviews.
And so when this is the case, having a well-designed website is kind of the same as going to an interview dressed in a nice suit.
It's your visual presence.
And in data science, it can also show them that you have an eye for displaying data or displaying analysis in a way that's catching and insightful.
And to have an online portfolio, it's hardly costing anything nowadays.
I mean, I think I paid $30 or something to get my site hosted for a full year.
But these – it's extremely helpful because when you're in an interview, you and the interviewer can both be looking at the same thing.
You might be looking at a table or a graph that you designed.
And it works really well for generating discussion as well as presenting some project that you worked on.
This has been another episode of Talk Python to Me.
Thank you to all the panelists who participated in today's show.
It has been sponsored by Hired and CodeChip.
It's great to have their help bringing this show to you every week.
Are you looking for a new job or considering a change?
Well, as always, Hired wants to help you find your next big thing.
Visit Hired.com slash Talk Python to Me to get five or more offers with salary and equity presented right up front
and a special listener signing bonus of $4,000.
CodeChip wants you to always keep shipping.
Check them out at CodeChip.com and thank them on Twitter via at CodeChip.
Don't forget the discount code for listeners.
It's easy.
Talk Python.
All caps.
No spaces.
Did you know you can personally support the show too?
Just visit Patreon.com slash mkennedy and join over 60 listeners who contribute on average about $2 per episode.
You can find the links from today's show at talkpython.fm/episodes slash show slash 39.
And be sure to subscribe to the show.
Open your favorite podcatcher and search for Python.
We should be right at the top.
You can find the iTunes and direct RSS feeds in the footer of the website.
Our theme music is Developers, Developers, Developers by Corey Smith who goes by Smix.
You can hear the entire song on talkpython.fm.
This is your host, Michael Kennedy.
Thanks so much for listening to everyone.
Smix, take us out of here.
I'm stating with my voice.
There's no norm that I can fill within.
Haven't been sleeping.
I've been using lots of rest.
I'll pass the mic back to who rocked it best.
Thank you.