Monitor performance issues & errors in your code

#39: Getting your first dev job as a Python developer (part 1) Transcript

Recorded on Thursday, Dec 10, 2015.

00:00 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.

00:00 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.

00:00 [music]

00:55 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 @talkpython.

00:55 This episode is brought to you by Hired and Codeship. Thank them for supporting the show on Twitter via @hired_hq and @Codeship.

01:20 Hello and welcome to a special Talk Python To Me. In this Talk Python, we are 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 are 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 are 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 are going to interview some people who have just landed their first job, and we are 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 are going to talk to the newcomers, everyone here on the show today has just got a new job and we are going to talk about their experience getting in there and then in the following show we are going to talk to the experts.

02:29 Now, I think one of the challenges out in the software industry is there is a large disconnect between people who have experience and people who are just getting started. If you have experience and you have done good work previously in the software industry, getting the job is pretty easy to be honest, just from my experience, I have received job offers unsolicited by the way, job offers all the time, I just have one in my inbox right now, "hey, here is a great job $150000 plus bonuses, cool technology, lifestyle balance, you don't have to work all the time." You know, it sounds great but I am not interested, I actually already have a job and I like it! So in some sense there is this feeling that there are many tech jobs out there, there are not enough programmers to actually fill the jobs and there is just tons of competition for good developers.

03:19 But on the other side of that story is, I think it fairly hard for people getting into the industry to get started- how do they differentiate themselves, how do they prove that they are good bets, 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 foot hold can be a super big challenge, so I am hoping to put together the 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.

04:00 So, let me introduce the panelists real quick: this week we are going to have Jess Unrein, Justin Beall, Eric Chou, Jonathan Sundqvist, Hellio Correia and Matt Yancey. Next week, we will hear from experts at companies such as Netflix and PayPal, among others.

04:19 Now, before we get to this panelist discussion, I want to recommend a few books. Now, I am sure you are all aware of many ways to learn what you need to get a programming job, right, we can take online classes, you can go to a university program, you could buy a book on Flask, you can buy a book on SQLAlchemy, but what I think people sometimes overlook are books that are a little more focused on taking the 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 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 a very successful software developers outside the technical parts which are I think sometimes difficult, but more straight forward to learn.

05:26 The second book I want to recommend is a book called, "The End Of Jobs: Money, Meaning and Freedom Without the 9-to-5" 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 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, and there is a part where he talks about people are having a hard time finding the 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 the society and as individuals is that we are 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 are first getting started, but it's definitely interesting big picture book that I think fits into this conversation.

05:26 So, with that introduction, let's get on to our first question with our panelists of newly hired developers.

06:42 In this first segment, I wanted to lay the groundwork to build all the rest of the conversation on, so I asked everybody who is participating- what job did they just land. Pretty much everyone you are going to talk to has a new job, many of them- it's their first or one of their first programming jobs. 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 on?

07:09 Jess Unrein

07:09 Hi, my name is Jess, I work as a software engineer with Shift Gig. 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 back end infrastructure; we are using a Flask app to serve out of back end that supports multiple web and mobile applications. So they were looking to specifically hire 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 on 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 and our code base that had little to no coverage. That was a really great way to get started in the company because it not only helped me get up to speed on Python as a language, but it 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.

08:22 Here is Eric Chou who is working on the Microsoft Azure Cloud computing team.

08:27 Eric Chou

08:27 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, configure, troubleshoot, switches, networks, and I also deal with the code that manage the network devices, whether it's written by somebody else or written by myself.

08:59 Now let's hear from Jonathan Sundqvist, who just landed his first job at "Server Density".

09:04 Jonathan Sundqvist

09:04 So, a year ago I landed a job at the company called "Server Density". At the time they were looking for a support engineer which was all I 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 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.

09:45 Next up is Justin Beall, 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 decided to make a transition over to Python so in some sense he is brand new and in some sense- he has a lot of experience. Let's hear what he has to say.

10:01 Justin Beall

10:01 Hello, my name is Justin Beall. I was a Java web developer for almost ten years before being introduced to Python. In June, I acquired a software developer position at a company called "OnShift" In Cleveland Ohio it's not really easy to find someone with Python experience. So they mainly were looking for a competent experienced developer who is willing to learn. The willingness to learn is one of the more important things for the candidate. When I was mentored as a intern, I had a boss who I thought was a complete jerk, but he gave me one of the best pieces of advice I have 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 ever be a time when you know enough, if you are not constantly trying to learn, you will become outdated and you will be stuck." So, that I think is the most important thing when you into an interview, regardless of whether or not you know the language, is to be able to demonstrate a time that you are more overwhelmed you were able to read a book, you did some Google searching about a technology in 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, and in a matter of days I will be up and contributing to your project.

11:31 Next up is Hellio Coreia. Hellio is 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 will probably resonate with some of you out there. Hellio is from Portugal, and as you may know, Portugal has had some really tough times with their economy; right now the unemployment is 11.9% and that's much better than it has been over the last few years, there was somewhere close to 20%. When you are in that kind of market finding a job takes on a different set of challenges. And to that, Hellio lives out in the country, in a small town and he is looking for a job as a software developer and doesn't really want to move to the major cities where you probably can find jobs pretty easily but then you would live in the middle of the 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 may be a little harder to find Python jobs and make it work. Here is Hellio.

12:35 Hellio Coreia

12:35 Hello, Michael, thanks for having me on this show. My name is Hellio I'm Potugese. I love to code. Now, I'm currently working as a back end developer and sys admin for a company that do websites, web apps, etc. For this position, they were looking for someone with good understanding of Unix command line, Python, Django, good understanding of configuration, administration on server. To get this hob it was tricky. I live in south, and in Portugal IT jobs are focused in the capital. With that, I had two options- to find a remote job or go to the capital. Because I like to live in peaceful place, I didn't want to go to the capital, and for a guy like me with almost no experience remote job is really hard.

14:03 Our final guest is Matt Yancey. And Matt will bring us the data science side of the Python story.

14:10 Matt Yancey

14:10 My name is Matt Yancey and I work as data scientist at "First Analytics", which is a consulting firm that specializes in using data and analytical techniques to provide services and solutions to other companies. Since joining, some of the work I have done has included predictive modeling, forecasting, text analytics as well as data virtualization. And we work in industries ranging from retail to railroad. From the perspective of the hiring process, I think First Analytics were looking for someone with a good base knowledge of the standard analytical tools and so this includes basic statistics, decision trees, things, like that. But they also wanted someone who had kind of more niche or specific knowledge. So in my case, I had some experience with text analytics, with web scraping, both of which I was able to mainly do just through Python using both the NLTK package and the beautiful suite package.

15:22 The next thing I want to explore with our group is what did they do to prepare for this position? So, everybody you are hearing from has recently landed a job that is 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 4 years and get some well nice well rounded education, but 4 years of hard work before you can see whether that is going to work out? Or did they do some online video courses, did they read book, 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 so that doesn't really fit the mold of helping someone get their first job. 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 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 to the experience I have. Here is Jess again.

16:40 Jess Unrein

16:40 How have you prepared for this position? To prepare for my job as a junior developer I went though Dev Bootcamp I had done some self guided learning before, I got to that point, but I eventually found that I wasn't learning as quickly of effectively by myself as I would going through some sort of program. I started researching different bootcamps around my country, I looked at Hackbright Academy which is an algorithm bootcamp 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 completely career change. I wasn't at all interested in going back for a 2 or 4 year degree because I already have my bachelors in political science and music and I wasn't interested in investing another 2 to 4 years of education where I was taking myself off of the job market and accumulated more debt. So bootcamp 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.

18:05 Here is Eric Chou.

18:07 Eric Chou

18:07 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 and it was just 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 so I started taking several university extension classes I started a Python for Network Engineers blog, a Facebook page, and in general when I finished writing some of the scripts and code I cleaned them up and published them on my blog to help others. So, I 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.

19:08 Next up is Jonathan Sundkvist.

19:11 Jonathan Sundkvist.

19:11 So my background isn't at all in engineering and it's not in even in programming. So it all like started with me discovering Udacity. They had this course called CS101 essentially was the foundation which I built everything upon. Also I did that course I continue 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 one and a half year or something like that. And, eventually, I heard something about bootcamps and I heard that was a good thing to really kickstart your career to getting into the industry. And eventually, I found one which was bootcamp called Hackership so during three months I was able focus quite intensively on doing programming among peers who did the same thing and like we collaborated and did things like that. And the pear support was incredibly helpful and having coaches around you and having a structure really helped me 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 build up project of my own, that I could talk about to like a prospective employer later on.

20:44 Here is Justin Beall.

20:46 Justin Beall

20:46 When you are a competent, experienced developer, you don't stay at 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 am getting ready to interview, I read about big o notation for a little bit, everybody should know about that looping inside of a loop is an n scored algorithm, but you should also know how efficient sorts are and axes 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 and 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 5 minutes, please. Also how to reverse a string in your language of choice. If you can't do those things, you are not ready for any interview at any level.

21:53 Next up is Hellio.

21:56 Hellio Correia

21:56 I was really in PHP and my focus was to get a job with that technologies. But, here where I live PHP companies work almost only with wordpress 2 months, it was a technology that I didn't like to work. Seeing that I started looking for other companies without that technology in my area, for example with CSharp, Python, Ruby. So I started looking, and then I found one that was working with Python in general and I tried to send them an email to get to the interview. When I went to the interview, I didn't have much experience with the Python but I tried to prove my knowledge showing the work I had done in other languages. And showing it was good structured, good habits, so they could have me on the team. They said to me that I had to study a little, and make something so they could see in Python. So, I bought two books on Django and started doing simple project. After two weeks, I contacted them again and showed my website and they liked it. They gave me a project and I started working for them as a freelancer. I started making projects, simple websites, then going for the more like legacy 23:59 and started improving. After a few month they talked to me saying they needed a sys admin dev ops to current one and if I'm interested, they would like to have me on the team for good. So, that is how I got a Python job, it was not easy.

24:28 Now let's hear from Matt Yancey.

24:31 Matt Yancey

24:31 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 North Western' Masters in Science and analytics program. And in that program we had courses in Python, Java, as well as modeling and data mining. But then, we also had practical work, we were placed in groups of four, so it was me and three other students and we were assigned to work with a company that had a specific analytical problem; they gave us the corresponding data and then we applied our techniques that we had been learning to that data set. And tried to come up with a good solution. I know the grad school doesn't work for everyone, but fortunately there is a lot of really good alternative resources out there for getting some of those same aspects of analytics program. You know, when it comes to learning a programming language, like Python or Java, I think all of the listeners of this podcast know there is a million resources out there on the web for doing that. But there is also a lot of really good resources like all my tutorials for data science courses, you know, 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 aren't familiar 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 it's posted in the form of competition, so you can also see how you rank against other people in the data science community and the people 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 you a great opportunity for people who get to play with real world company data.

24:31 [music]

24:31 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.

24:31 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 5 or more offers in just the first week and there are no obligations, ever.

24:31 Sounds pretty awesome, doesn't it? Well did I mention the signing bonus? Everyone who accepts a job from Hired gets a $2,000 signing bonus. And, as Talk Python listeners, it get's way sweeter! Use the link hired.com/talkpythontome and Hired will double the signing bonus to $4,000!

24:31 Opportunity is knocking, visit hired.com/talkpythontome and answer the call.

24:31 [music]

27:45 So you have heard the different approaches that our new hires have taken. Some of them did bootcamps, some of them did online courses, some of them just built it up solely over time and we have a master's degree in the mix there. So I asked 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?

28:09 Jess Unrein

28:09 What part of your experience from question 2 made the biggest difference? So at the end of Dev Bootcamp you spend pretty intense 8 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 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, what 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 and they were for specific Python knowledge. So I think that bootcamps do a good job of getting you to the point where you can critically analyze what you are writing and run quickly and adapt quickly to new situations. Another thing that the instructors encouraged us to do while we were at Dev Bootcamp was to consider things who might have done differently if we had the chance to start the project over, if we had more time to refactor. Being able to think about editing and critical analyses was a really great skill that I think they did a good job of instilling in my 9 weeks at Dev Bootcamp.

29:42 Eric Chou

29:42 What part of your experience made the biggest difference. I think the lark 29:48 really showed my dedication to learning how to code and shows this practical side of what I can do. It takes time and effort to write the code, clean it up, and format it correctly for the web. Also, I know this wasn't going to make me any money, I just wanted to do this for 1) to track my own effort and 2) to passively help others in the same situation. So I think that really helped me in a way to differentiate myself from other candidates.

30:25 Jonathan Sundkvist

30:25 So what made the biggest difference- I 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 have learned during these three months and this is what I actually can do.

31:02 Justin Beall

31:02 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 9 to 5 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 are weak on something, read about it. Most recently I was told that I don't know what I am doing as far as 31:33 so I've been listening to audio books at work. Most recently I've listened to "The Leadership Secrets of Attila the Hun", "The Lean Startup", 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.

31:53 Hellio Correia

31:53 This job as a developer I think it's hard job. It's something that you have to love to be successful. It's not something you can pick to be a good professional, you have to be an eternal student. You have to have passion for what you are doing. Saying that, if you have this you don't have any excuse no matter where do you live, the crisis, you have to be a good programmer and person. You just need to be patient.

32:38 Matt Yancey

32:38 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 in new technology. Basically anything that really kind of distinguished me from the different candidates they were also interviewing. So, one project that I always kind of 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 from 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 break it up by different characters and analyse what those characters said, and produce a metric for either how positive or negative that character was during a certain episode. And so what you can then do is you can compare these over time and see what characters become more positive and more negative as the show progresses. So it was just something kind of fun and creative but also showed that I had this skill that not every data scientist has. If I were looking for a job now, maybe I would want to focus on Google's Tensor Flow, which is their new package for Python for doing all 34:22 their pip learning computation. So you have a couple of benefits there, 1) it's very new so not that many people know or have experience with it, but then also it demonstrates that hey this is someone that is kind of up to date with what is coming out, the hand is on the pulse for those new tools and packages that are being released to the data science community.

34:46 Keeping with the theme that I would like to help everyone out there looking for a job or trying to get into 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 are in. So let's hear what they have to say.

35:07 Jess Unrein

35:07 Why do you think they chose you over the other applicants? Most junior developers are going to walk into their job with largely the same skill set especially if you come from a bootcamp education, you are going to miss out on a lot of the theoretical knowledge that somebody with a 4 year CS degree is going to walk in with. Although you might have a little bit more practical experience with the web development side, especially in terms of Javascript or some microframeworks that aren't necessarily adopted in college curriculum yet. So there are tradeoffs that your experience in bootcamp versus a computer science education but generally, juniors are going to walk in looking pretty much the same. So the thing that I have found that really helps differentiate me as a candidate was walking in with a strong code sample that I felt proud of and I was able to defend for it clearly. So in final project we used an API to gather tweets from Geo fans locations and another API to run a sentiment analyses 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 used 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 that we made during our project, things that we made when things weren't working, and then in a couple of cases talk about decisions that we regretted, but were unable to correct due to the abbreviated nature of the program. And again, because most juniors are going to walk in to a job interview knowing a lot of the same things hugely important factor in finding my first Python job was to culture fit in my company. We all got along right away and that's something that's incredibly important when you fins a junior, because junior is getting paid to learn and might not offer much direct business value after that, and employers understand this when they are hiring juniors but it means that finding a company where you are good culture fit is maybe more important than it will be in subsequent jobs. You are going to spend a lot of time in direct contact with your team leaders, you want to learn about the company and the code base, so hiring a junior developer is a big investment especially for a small development team so they want to make sure that you are somebody that they really want to work with every day.

37:31 Eric Chou

37:31 Why do you think they chose you over the other applicants- I think a diverse background really helped, I guess they could say, "Hey you know, if this software engineering thing doesn't work out, we can always use him as a network engineer."

37:48 Jonathan Sundkvist

37:48 I think the other experience I 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 related projects in programming.

38:19 Justin Beall

38:19 I believe the reason I was picked for the position was 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 incription, things that interest me, most recently I started one try to do it 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 technologies 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 FizzBuzz as I mentioned, you should be able to do that with your eyes closed, mode 3, mode 5, GitHub results, it's that simple. I mean it really should take you about the time to talk they talk to you to solve it. Same goes with reversing the string.

38:19 [music]

38:19 This episode is brought to you by Codeship. Codeship has launched organizations, create teams, set permissions for specific team members and improved collaboration in your continuous delivery workflow. Maintains centralized control over your organization's projects and teams with Codeship's new organization's plan.

38:19 And as Talk Python listeners, you can save 20% off any premium plan for the next 3 months. Just use the code TALKPYTHON.

38:19 Check them out at codeship.com and tell them "thanks" for supporting the show on Twitter where they are at @codeship.

38:19 [music]

40:06 In this last question, I basically asked the panelists to speak directly to you, developers and potential developers or soon to be developers, about what advice they have for you to help you get started. Here they are:

40:24 Jess Unrein

40:24 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 at 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 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 are looking for their first job in Python is to pick up some popular libraries and dive into the source code for those libraries. I like to point to Request as a particularly good library that is well structured and well maintained that is easy to dive into as beginner. I think it's important to look at the tools that you are 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 you might do differently or question the implementation and you want to learn more about. One of the best things that you can do to prepare yourself for 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 are passionate and considered about your craft. Even if your interviewers do not agree with your assessment of a particular tool, they are going to appreciate that you are 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 field 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. There are 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 they are going on in 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 had 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 really friendly for women who want to transition careers, especially if you are not ready to dive right into a bootcamp 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 is 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.

44:38 Eric Chou

44:38 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 like talking with other developers and learn at these meetups. And I also think that it's really helpful to actually have a concrete project that you have 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.

45:26 Justin Beall

45:26 The most important advice that I can give someone who is finally landing their job or looking for the 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 are desperate. Each hop in your career you are going to learn, you are going to pick up new tricks, and if you are stuck in a place without good mentors, without competent business people, you will 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. If you don't imagine yourself being actively engaged for over two years, do not even consider it.

46:20 Matt Yancey

46:20 For people who are looking for the first job, I would recommend two things: first, be familiar with the technology that is out there. So if you are planning on going into data science then by technology I mean software, so Python Rss table, but I also mean the different methodologies for analyzing data, so regression analyses, decision trees, clustering. Now you don't have to be master of all these things, but it helps to have at least some experience in most of them, and then to have kind of more advanced level knowledge in a few areas. So maybe you want to aim for being kind of jack of all trades, 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 fundamental packages for data analyses. So that would include SciKit Learn, Numpy, Pandas for manipulating your data, the NLTK package is great for doing text analytics. I also use a lot of- I do a lot of web scraping so I use Requests and Beautiful Soup, and then also Google recently announced their Tensor Flow package for doing deep learning. So having a good fondational 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 the well designed website is kind of the same going to the interview in a nice suit. It's your visual presence. And then, data science, you can also show them that you have an eye for displaying data or displaying analyses in a way that is catching and insightful. And to have an online portfolio, it probably doesn't cost anything nowadays, I think I paid $30 or something to get my site hosted for a full year. It's extremely helpful, because when you are in the interview, you and the interviewer looking at the same thing, a table or a graph you designed, and it worked really well for generating discussion as well as presenting some project that you worked on.

49:00 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 Codeship. It's great to have their help bringing the show to you every week.

49:00 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/talkpythontome to get 5 or more offers with salary inequity presented right up front. And a special listener's signing bonus of $4000.

49:00 Codeship wants you to always keep shipping. Check them out at codeship.com and thank them on Twitter via @codeship. Don't forget the discount code for listeners, it easy- TALKPYTHON.

49:00 Did you know you can personally support the show too? Just visit Patreon.com/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/show/39.

49:00 And be sure to subscribe to the show, open your favorite podcatcher and search for Python it should be right at the top. You can find the iTunes and direct RSS feeds in the footer of the website.

49:00 Out theme music is Developers, developers, developers by Kory Smith who goes by Smixx, you can hear the entire song on talkpython.fm.

49:00 This is your host, Michael Kennedy. Thanks so much for listening everyone. Smixx, take us out of here.

49:00 [music]

Back to show page
Talk Python's Mastodon Michael Kennedy's Mastodon