Python Programming: How to go from Amateur to Pro?
July 31, 2010 11:19 AM Subscribe
I love programming in Python. I'm smart and savvy, and I pick things up very quickly. I live in New York. I want a job, but I have no work experience as a programmer. How do I transition from grad school in the humanities to an awesome tech job? How should I market myself? How do I get past the hurdle of having a typical humanities PhD student resume?
I've written a couple of useful and neat things in Python recently which I can assemble into something resembling a portfolio. I also have worked for years doing techy things around campus to support myself during my course of studies. But I've never been employed as a programmer. It seems like there are quite a bit of Python jobs in the city, but all require experience. How do I get my foot in the door?
I've written a couple of useful and neat things in Python recently which I can assemble into something resembling a portfolio. I also have worked for years doing techy things around campus to support myself during my course of studies. But I've never been employed as a programmer. It seems like there are quite a bit of Python jobs in the city, but all require experience. How do I get my foot in the door?
The typical thing to do in this sort of situation is to put in a good bit of time contributing on a high-profile or technically interesting open source project, show them you've got chops, and parlay the connections you make through the project into interviews.
posted by little light-giver at 11:24 AM on July 31, 2010
posted by little light-giver at 11:24 AM on July 31, 2010
Best answer: Learn Django.
Okay, so the answer's quite biased — I'm one of the lead developers of Django. That said, hiring is one of the biggest problems facing our community right now; I know of at least a dozen companies that're having a hell of a time finding even entry-level Django developers. It's very much a job-seeker's market at the moment.
If you spent the time to learn Django, put together a small site or two, and maybe put a bit of your code up on Github that'd get your foot in the door at a bunch of places. If you can demonstrate a bit of competence and a willingness to learn you'll probably get half a dozen job offers.
(And feel free to MeMail me if/when you learn Django; I'd be happy to give you some leads.)
posted by jacobian at 11:42 AM on July 31, 2010 [15 favorites]
Okay, so the answer's quite biased — I'm one of the lead developers of Django. That said, hiring is one of the biggest problems facing our community right now; I know of at least a dozen companies that're having a hell of a time finding even entry-level Django developers. It's very much a job-seeker's market at the moment.
If you spent the time to learn Django, put together a small site or two, and maybe put a bit of your code up on Github that'd get your foot in the door at a bunch of places. If you can demonstrate a bit of competence and a willingness to learn you'll probably get half a dozen job offers.
(And feel free to MeMail me if/when you learn Django; I'd be happy to give you some leads.)
posted by jacobian at 11:42 AM on July 31, 2010 [15 favorites]
To echo some of earlier comments...
At least at the shop I work at, demonstrated ability matters more than background. Some of us have 'weird' degrees as well.
1. Work on some projects, start publishing code on github or bitbucket, contribute bugfixes, etc.
2. hang out in the irc rooms of projects, StackOverflow, Reddit /r/python. If you have a local Python group (NYC must one), start going to meetings. Consider going to your local Ruby or Haskell group as well! Whoever is doing interesting code, meet them.
3. Put a python sticker on your laptop, and hang around at coffee shops. Someone will talk to you!
I'm not sure where all these jobs are that jacobian mentions, but we're certainly looking for a web dev at the moment (but we don't use django!).
posted by gregglind at 1:04 PM on July 31, 2010
At least at the shop I work at, demonstrated ability matters more than background. Some of us have 'weird' degrees as well.
1. Work on some projects, start publishing code on github or bitbucket, contribute bugfixes, etc.
2. hang out in the irc rooms of projects, StackOverflow, Reddit /r/python. If you have a local Python group (NYC must one), start going to meetings. Consider going to your local Ruby or Haskell group as well! Whoever is doing interesting code, meet them.
3. Put a python sticker on your laptop, and hang around at coffee shops. Someone will talk to you!
I'm not sure where all these jobs are that jacobian mentions, but we're certainly looking for a web dev at the moment (but we don't use django!).
posted by gregglind at 1:04 PM on July 31, 2010
Best answer: This is an aside, but I'm in the opposite situation - I worked for years as a web/software developer, then as a manager, and now finishing my PhD in the humanities. I'm dreading going on the job market (to teach) but have successfully freelanced (PHP/MySQL/HTML/CSS) to supplement my meager grad school stipend. When I got started, I was self-taught (although I took a few night C++ classes at NYU to give myself some training) and I know the market has changed substantially (when I got started anybody with any amount of web skills could find a dozen jobs to choose from)
Anyway, can you use any of your grad school or academic connections to get small programming jobs (thinking, could you build a database-driven website for somebody)? I would network those connections, too, to get some stuff to put on your resume.
I would look at Craiglist, too - where I live, there seems to be a steady stream of people who want to pay next-to-nothing for small web projects - WordPress customization, for example, or cutting up a PSD into HTML, or small DB driven website - these aren't related to Python, or necessarily even programming jobs, but you might be able to find something to put on your resume, even if it won't pay much (if at all.)
Another thing, too - as a hiring manager, I was never attached to finding people based on the technologies they'd learned, as long as they could demonstrate that they were intelligent, had wide skill-sets, were good problem solvers, and interested in learning new things. I'd be hesitant to hire somebody with just Python on their resume (at least based on the resume alone). I love Python, but I think it would help to learn a few other things, too (for example, web dev skills - HTML/CSS, MySQL, PHP, Javascript, etc, if that's the direction you want to go in) - again, this just shows that you've done a few different things and can learn other technologies as they come up.
Personally, as a hiring manager I'd be excited to see somebody with a Ph.D. in the humanities who could also program (partially because I'm in the same boat) but also because it shows that you're smart and hardworking, so at least for me the Ph.D. would catch my eye. I'm also used to working with small teams, and the Ph.D. would signal to me that you're good around people - I've worked with amazing programmers who couldn't follow a spec to save their life and were nightmares to be around, and less-skilled, but eager programmers who were great to be around - good communicators, able to see things from the client's POV, able to handle curve-balls, and not that you're all of these things, but I think the fact that you're coming to this from a not-common background may help you.
posted by drobot at 1:35 PM on July 31, 2010
Anyway, can you use any of your grad school or academic connections to get small programming jobs (thinking, could you build a database-driven website for somebody)? I would network those connections, too, to get some stuff to put on your resume.
I would look at Craiglist, too - where I live, there seems to be a steady stream of people who want to pay next-to-nothing for small web projects - WordPress customization, for example, or cutting up a PSD into HTML, or small DB driven website - these aren't related to Python, or necessarily even programming jobs, but you might be able to find something to put on your resume, even if it won't pay much (if at all.)
Another thing, too - as a hiring manager, I was never attached to finding people based on the technologies they'd learned, as long as they could demonstrate that they were intelligent, had wide skill-sets, were good problem solvers, and interested in learning new things. I'd be hesitant to hire somebody with just Python on their resume (at least based on the resume alone). I love Python, but I think it would help to learn a few other things, too (for example, web dev skills - HTML/CSS, MySQL, PHP, Javascript, etc, if that's the direction you want to go in) - again, this just shows that you've done a few different things and can learn other technologies as they come up.
Personally, as a hiring manager I'd be excited to see somebody with a Ph.D. in the humanities who could also program (partially because I'm in the same boat) but also because it shows that you're smart and hardworking, so at least for me the Ph.D. would catch my eye. I'm also used to working with small teams, and the Ph.D. would signal to me that you're good around people - I've worked with amazing programmers who couldn't follow a spec to save their life and were nightmares to be around, and less-skilled, but eager programmers who were great to be around - good communicators, able to see things from the client's POV, able to handle curve-balls, and not that you're all of these things, but I think the fact that you're coming to this from a not-common background may help you.
posted by drobot at 1:35 PM on July 31, 2010
Best answer: Here are some recommendations:
* Learn Django. This is the in-demand Python framework.
* Post your projects online and be sure to be able to talk about them. In terms of showing off your skill, a completed project of your own is better than minor contributions to an open source project. When hiring, there's always the question of what the candidate actually did themselves. Having something you can show that's unequivocally your own work overcomes thie problem.
* Network. In NY, there are tech networking events nearly every night. You can find these events on nextny.org, garysguide.com, meetup.com, and the This Week in NYC Innovation list (http://www.thisisgoingtobebig.com/nycevents/), to name a few places.
* Develop a compelling story about yourself explaining why you are transitioning from a humanities PhD to programming, and use it to your advantage. Being able to communicate well is a big asset to any programmer.
* Consider both large companies, small companies, and startups. The smaller the organization the more flexible they tend to be about nontraditional backgrounds, focusing more on what you can do rather than specific degrees and credentials.
I'd be happy to talk over mefi mail, and recommend specific meetups and other resources in NYC.
posted by lsemel at 9:05 PM on July 31, 2010
* Learn Django. This is the in-demand Python framework.
* Post your projects online and be sure to be able to talk about them. In terms of showing off your skill, a completed project of your own is better than minor contributions to an open source project. When hiring, there's always the question of what the candidate actually did themselves. Having something you can show that's unequivocally your own work overcomes thie problem.
* Network. In NY, there are tech networking events nearly every night. You can find these events on nextny.org, garysguide.com, meetup.com, and the This Week in NYC Innovation list (http://www.thisisgoingtobebig.com/nycevents/), to name a few places.
* Develop a compelling story about yourself explaining why you are transitioning from a humanities PhD to programming, and use it to your advantage. Being able to communicate well is a big asset to any programmer.
* Consider both large companies, small companies, and startups. The smaller the organization the more flexible they tend to be about nontraditional backgrounds, focusing more on what you can do rather than specific degrees and credentials.
I'd be happy to talk over mefi mail, and recommend specific meetups and other resources in NYC.
posted by lsemel at 9:05 PM on July 31, 2010
To expand on the "network!" comments, definitely drop by NYCPython, which is the definitive local Python developer's group. Many of the talks are suitable for newbies or intermediate programmers, and at least half the benefit of attending is the before/after/post-meetup-drinks discussions with other members.
Specifically regarding the employment angle, you'll be able to get advice about the local market, and there are often people at meetings looking to hire various sorts of positions (full time, part time, internships, open source, tutoring, etc etc).
There's also a local Django meetup, DjangoNYC which offers many of the same benefits but with a Web-oriented slant (duh). Has some membership overlap as well so you'd soon be able to pick out friendly faces at either one.
posted by cyrusdogstar at 7:11 AM on August 1, 2010
Specifically regarding the employment angle, you'll be able to get advice about the local market, and there are often people at meetings looking to hire various sorts of positions (full time, part time, internships, open source, tutoring, etc etc).
There's also a local Django meetup, DjangoNYC which offers many of the same benefits but with a Web-oriented slant (duh). Has some membership overlap as well so you'd soon be able to pick out friendly faces at either one.
posted by cyrusdogstar at 7:11 AM on August 1, 2010
This thread is closed to new comments.
Go out and meet people who work in tech jobs. Tell them something to the effect of what you said here: "I love programming with Python, I have a portfolio of projects that I've done for myself, and I have a humanities PhD. Help?"
Some will tell you to screw off, but some will give you good insights.
One thing you should be prepared for is questions about why a humanities PhD wants to go into programming; you need to have a good answer for this. Something along the lines of, "Well, I originally thought that I wanted to become a history professor, but as I continued my education I picked up programming and realized that I have both an interested in it and a talent for it, and so have decided that I want to make this my career." But what you don't want to do is focus on the negatives of having a humanities PhD: "The job market for humanities PhD's sucks, and you guys are hiring, so why not?" First, that's not their problem, and second, they're not interested in hearing about how you can't find a job in what you studied for.
posted by dfriedman at 11:24 AM on July 31, 2010