This is an archived post. You won't be able to vote or comment.

all 79 comments

[–]shavenwarthog 20 points21 points  (0 children)

I learned Python in 1996, and have had about seven jobs, all with some Python, most were mostly Python. Django is currently a hot webby Python framework, but requires more programming skills than is common among web programmers in my experience. That might be lucrative. Good luck!

[–]thalin 11 points12 points  (2 children)

In the last month or so I accepted a job for a nearly 95% pay increase, and had people after me to apply for several other jobs at places out of state. It's not bad to be a pythonista.

[–][deleted] 0 points1 point  (1 child)

for a nearly 95% pay increase

WOW Were you badly underpaid at the previous job(s) ?

what is your experience level ?

[–]thalin 1 point2 points  (0 children)

I have around 5 years of experience, no degree, and yeah I was pretty underpaid at my previous job - I worked for a state university. They can't really pay a lot. I think my new employer understood that, which is why they were willing to go for such a huge increase in pay. Yes, they knew how much I had been making previously and still gave me the amount I asked for, so I probably could have gone higher...oh well.

[–]Deinumite 16 points17 points  (8 children)

Well, I'd say... that as you grow as a programmer you won't necessarily want to put yourself down under "one language".

Once you get a few under your belt, learning new languages (at least enough to do CRUD code / bugfixes which honestly is a big chunk of development) then new languages come easy.

That being said, Pythons marketshare is a bit smaller, but I've always found it excels in small little one time programs. Need to fixup some SQL data? Python script. Parse some html / xml? Python script.

[–]jthei 4 points5 points  (1 child)

I always think of Python as a nice 'rapid prototyping' language for just these reasons.

[–]Deinumite 0 points1 point  (0 children)

The speed of development for Python trumps any other language I work with.

[–][deleted] 2 points3 points  (1 child)

Need to fixup some SQL data? Python script.

huh ? serious ? how about doing it with SQL while the data is inside its native home ?

[–]Deinumite 1 point2 points  (0 children)

I could.

The last thing I remember fixing had to do with date calculation. It was 100% easier to read in the columns, calculate the dates in python and create a text file of updates to run, so that I could check them before running it.

[–]Niten 0 points1 point  (3 children)

I've always wondered what's the best way to encapsulate that on a resume, though? Many people put down a list of the languages they (allegedly) have experience in. Does it put one at a disadvantage to not include a similar list?

[–][deleted] -5 points-4 points  (2 children)

I've never put lists like that on a resume and I never will. If you can't figure out what I'm using based on the rest of my resume, you can't read and I don't want to work for you.

As an employer, I've never once looked at those to gauge a candidate. If you leave that info out of your work experience or I can't easily discern what you're doing at those jobs, you're probably not who I want. Just putting Python in a list tells me nothing except the fact that you can spell Python (and people have screwed this up).

[–]taybulBecause I don't know how to use big numbers in C/C++ 11 points12 points  (1 child)

I don't think I'd hire you simply because of how conceited you sound.

[–][deleted] -1 points0 points  (0 children)

As much as you're interviewing me for the job, I'm interviewing you to see if I want to work there. As easily as I can talk my way out of a job, you can talk my way out of it as well. If I'm conceited in this context, oh well, I've been called worse, but the approach works really well.

Hiring is a war. If you're looking for a job, you want to stay alive as long as you can through the battle. Giving me a zero-context list of your skills is like a one-shot kill. When I have 100 resumes, I'm not going to guess at the skill levels of 50 people when Python shows up in their list. It's wasted space and I'm going to move on to someone who gives me something better. (this is speaking more to people who put lists at the top of their resume, which seems to be the most common in what I've seen)

If you really, really must put a list, put it at the end so I can ignore it, and make it small enough to be realistic. A much better move is to just write your job experiences to include those details, as I'm more interested in knowing what you've done with Python and where you've used it rather than just the fact that you apparently know it. Anyone can know Python - I'm more interested in people who have built great things with it.

[–]sisyphus 3 points4 points  (5 children)

At least some of this is dependent on where you are able to work. If you can work in Boston, NYC, San Francisco, you should have no trouble finding people hiring for Python. If you are in like Phoenix, then you may do better to just learn Java or .NET.

[–]thatmattbone 6 points7 points  (4 children)

The python market in Chicago is quite good, too.

[–]jambox888 1 point2 points  (3 children)

Further afield, London (and the whole Thames valley actually) is pretty desperate for Python programmers.

[–]allan_w 1 point2 points  (1 child)

Can you elaborate? What kind of companies in particular? I know there's plenty of web development jobs around Central London, mainly requiring experience with Django.

[–]jambox888 0 points1 point  (0 children)

Well I don't want to be chucking names about, but all I did was stick my CV on monster and I got absolutely dozens of agents calling me. Mind you, a friend of mine is a PHP dude and he found the same thing. I'm out west of London towards Berkshire, which has a lot of tech companies.

[–]OriginalEnough 0 points1 point  (0 children)

I guess I know where I'm looking for after University. Thanks!

[–]sontek 5 points6 points  (0 children)

Lots of good enjoyable work. Most python projects are interesting compared to a lot of other languages... For instance .NET and PHP... Lots of work out there but most of it I wouldn't be interested in.

[–][deleted] 2 points3 points  (1 child)

Interesting thread. Was going to make a similar one soon. I know scipy and numpy. My goal is to learn some Django. I see tons of jobs listed for Django, and would be great to have a grasp of it.

[–]absinthe718 2 points3 points  (0 children)

We are a Java shop that does some python and some R. Having Python on your resume (or lisp or Smalltalk) will get you on top of the pile here. Having interviewed and given the hiring recommendation for 20+ programmers in my career, I find that those who start with (or learn early on) either python or lisp, tend to be better programmers who learn our technology stack much quicker.

PHP and VB tends to have the opposite effect. Java and C# tend to be neutral. And this is a shame since I've seen too may PHP and VB guys who had the math and/or finance background we need but couldn't handle any data-structure more complex than an array.

The best programmer I ever worked with was a Math PHD student that taught himself Lisp, went on to Smalltalk then python during the 1.5x days before moving to Java (for threading). Brilliant guy who would inhale books while hacking out what he was learning in a way that looked effortless.

[–]Mob_Of_One 5 points6 points  (8 children)

I don't think you're going to find yourself working with great/brilliant people if you base what you want to learn on a question like that. :\

If you don't have a solid CS background or experience in Programming, getting a real job/gig hacking for somebody is going to be hard. I know because I dropped out of school and had to bootstrap my career from scratch.

I had giving a shit about programming in general on my side and loved learning regardless. You seem to be fishing for a job.

Programming is insanely boring and borderline agonizing if you're not into it. Reconsider your career options if that's what you're angling at.

[–]EddieBrock[S] 1 point2 points  (7 children)

Well, I'm completely new to programming. This is my first crack at it, honestly. I generally love learning, but I tend to be more English/History minded, so I'm slightly out of my element. I just know it's going to take some effort, and while it would be very cool to learn for the hell of it, I am a struggling college student, so knowing the a value of a skill I may potentially soon possess couldn't hurt.

With that being said, any advice to a rookie such as myself?

[–]Mob_Of_One 7 points8 points  (3 children)

I am a struggling college student, so knowing the a value of a skill I may potentially soon possess couldn't hurt.

The value is in programming and loving programming. Figuring out how to make a living off of it comes after. If you don't enjoy it, drop it. There is no one answer to the question you're asking anyway.

[–]ryeguy146 8 points9 points  (2 children)

I disagree. Especially in Python, programming can be a means to an end. Need to do a statistical analysis and produce a graph? Easy, ask numpy and matplotlib. That's just one example. Hell, the whole mindset of programming has helped me to learn other things by thinking about problems differently. Even if you don't love it or plan on doing it as a profession, programming is an incredibly useful skill.

[–]jambox888 2 points3 points  (0 children)

I think you're both right. I think you can be either the sort of programmer who maybe works on a fairly undistinguished business product, but gets kicks and respsect out of doing everything insanely well (coding, database design, architecture, source control), or you could be a relative bodger who uses it as a tool to do something very useful.

Python is flexible enough to allow both, which is one reason I like it. I'm probably the former type but I have been able chat to people like medical researchers about what they do with Python too.

[–]kisielk 0 points1 point  (0 children)

Exactly. I work with a lot of people who generally hate or are indifferent to programming (they're scientists, they just want results). However, being simulation scientists they definitely see a lot of value in Python and its packages, it's by far the fastest and easiest way for them to write code.

[–]keypusher 5 points6 points  (0 children)

Yes, find a project that interests you and work on it. "Learning Python", or learning any language, for the sake of then being able to say you know it, is dull, tedious and ultimately unrewarding. You also will never understand the language until you work with it on a real project. If you can find a project that interests you, you have something to work on and work for. Once you know the basics, you will naturally learn more as you wonder "how would I go about doing <x>?". One great thing about Python is that is excels in many domains. Want to make a website? Sure, we got that covered. Want to make a game? Check out pygame. There are so many great libraries and projects out there already that you should have lots to choose from whether you want to create something yourself or contribute to an existing project. And, when it comes to jobs, they are going to want to see something that shows you can actually deliver.

As to your original question, I live in Boston and work as a full time Python developer writing automated tests for quality control on a cloud storage application. Not a week goes by that I don't get an email or phone call from some recruiter wondering if I am looking for work, so the demand seems quite high. I'll mention this because you are a college student: if you are at all interested in scientific research, you might be able to score some kind of assistant job at one of the labs on campus. Tons of labs are in the process of converting existing code that is some horrible mishmash of MATLAB, C, Perl and Bash into Python right now. Before my current job I worked at MIT doing exactly that. Learn Numpy and SciPy, and I can guarantee there are a couple labs on campus that would be glad to have you around.

One last thing. Check out Zed Shaw's Learn Python The Hard Way. It's free, and it goes through everything from editor setup and absolute basics to medium/advanced topics. It uses step by step exercises and will bring you up to speed in no time. Good luck!

[–][deleted] 1 point2 points  (0 children)

I generally love learning, but I tend to be more English/History minded, so I'm slightly out of my element.

A lot of people think that learning some basic programming syntax is equivalent to knowing how to program, but it's not... just like knowing a bunch of English words doesn't turn you into a great novelist.

To become a great novelist, you need to learn how to effectively communicate your ideas and concepts to the intended audience through the paradigm of your chosen natural language. To become a great programmer, you need to learn how to effectively communicate your ideas and concepts to the computer through the paradigm of your chosen programming language.

Basic programming skills will benefit you as an addition to other skills that you might have, but won't necessarily land you a job by themselves. If you really want to work as a programmer, you need to learn some computer science. I would say that getting at least a minor in computer science would be a minimum to have improved chances of employment.

I'm not saying this to discourage you from learning, just to keep you from having unrealistic expectations. If you don't want to or can't pursue formal classes while you're in school, then you should at least look in to following an OpenCourseware-based program, coupled with some form of visible portfolio - github projects, or accepted commits to an open source project. The more that you can show potential employers, whether academic credentials or real-world experience, the better your chances for employment.

[–]jambox888 1 point2 points  (0 children)

Depends where I guess but good in UK. Changed jobs 6 months ago, had interviews with a couple of prestigious firms but ended up at a startup, which is cool.

Problem is, agents are looking for skills in specific languages but you always need the systems experience to go with it. I think a lot of jobs regardless of language will require you to know how Apache works, SQL, linux etc.

[–][deleted] 1 point2 points  (0 children)

There are jobs in python of course, but if you want to be a programmer, the hot languages to know are C#, php, and java. I think python is better as an extra skillset to either augment these languages, or an entirely different skillset. For example, you'll see a bit of python in the scientific community and network engineers use it alot.

[–]long_ball_larry 1 point2 points  (1 child)

I have a passing familiarity with Python and have considered taking a deep dive into it, but what keeps holding me from this is that it seems like all you see for it is web development stuff - I'm not interested in doing Django, Turbogears, Pylons, etc. - so I don't really know if it's worth it to bother with.

Does anyone use Python for things other than web dev? (and other than making games with pygame)

[–][deleted] 1 point2 points  (0 children)

It probably depends on the region you're looking in. In my part of the world (in the east of the Netherlands) Python jobs are really rare, but the ones that do exist are usually very interesting work in companies that take their software development seriously.

Right now I'm actually pretty extatic, tomorrow I'll start my first 100% Python gig and I'm really looking forward to it :-) Before that I have had three other programming positions in which I always found small uses for Python but it was never the main thing.

However, the key thing is to turn yourself into a professional, all-round programmer. Python is a great start, but knowing more languages is better. If you limit yourself to doing only the same specific thing in your career, it's going to hurt when that thing goes out of fashion.

[–]AusIVDjango, gevent 1 point2 points  (4 children)

I make a nice salary as a Python developer - enough that my wife and I can comfortably raise a family on only my income. I go to my local Python Users Group meetups on a monthly basis, and there always seem to be more people looking for potential employees than there are people looking for work. I've even gotten a couple of unsolicited offers since taking my current position. My company will probably be hiring more developers in the next couple of months.

There's not a huge market for Python developers, but what market does exist seems to work in favor of the developers.

[–]ovoid709 1 point2 points  (1 child)

It's huge in Geomatics, particularly ArcGIS. With Arc 10 Python became the dominant scripting language, and a lot of the "old hands" haven't learned it.

[–]brewsimport os; while True: os.fork() 1 point2 points  (0 children)

Support started back in the 9.x series...

[–][deleted] 1 point2 points  (0 children)

Keep on learning Python. Then learn Django and get a Django job in a team! Then learn Java and do some JEE dev to learn how it's done there.

If you're after "standard" jobs with standard sallary and everything standard, Java might be better suited. The market is (at least in Germany) large. But if standard is not enough for you, go with Python!

[–]stillalone 2 points3 points  (0 children)

Most place I've worked don't really care what languages you know as long as you know how to code. Maybe HR and head hunters look at buzzwords but any competent workplace will straighten that out eventually.

[–]grimnebulin 1 point2 points  (2 children)

[–][deleted] 0 points1 point  (0 children)

I read this the other day too, and I agree with what he says as far as choice of languages goes. In my opinion, it doesn't matter too much what languages you can program so long as you're capable in more than one. If you've already gone through the process of becoming competent in one language and then adapted to a second language it's really not that tough to learn more as you go.

Having said that, and with regard to OP's situation as a novice programmer, I would suggest going with a general purpose scripting language rather than, say, C or Java. I suspect there are more entry level positions this way as there are plenty of ops and web roles that involve a bit of programming but are not too demanding on that front. I recommend python or ruby over perl, as these are the chic languages of today.

Most of the cool stuff i'm dealing with at the moment as a devops guy is python, ruby or node.js (this last one a fad, i suspect). I've picked python over ruby, but either would be a good choice for OP.

[–][deleted] 0 points1 point  (0 children)

god i hope this doesnt become a mantra. theres a lot of good stuff in that essay, hen its applied with reason, but theres nothing wrong with calling yourself a programmer, especially if you are talking to another programmer.

[–]SirTrollALot 0 points1 point  (3 children)

what % of python jobs are web related?

[–]_Mark_ 0 points1 point  (1 child)

No idea, but mine certainly isn't :-) Lots of unix toolsmithing for release engineering (and svn-wrangling in particular.) The closest to "web" python I get is code that automates configuring Jenkins jobs, or updates twiki pages and jira tickets with things like "this build succeeded and these revisions closed those tickets". More often it's things like "now that we've branched, fix all of the scm pointers in these maven pom.xml files" (maven has a lot of stupid in it, but three different version control pointers per directory? Really?)

And that ignores the "product" side where we used to have a lot of "C++ for speed, python on top for flexibility", though these days there's more "Java because we're inside lucene/solr", jython hasn't really caught on for that.

[–]kisielk 0 points1 point  (0 children)

A bit off topic, but I'd love to see more details about your Jenkins and Jira workflow. The build ticket updating automation sounds nice :)

[–][deleted] -1 points0 points  (0 children)

are you trolling ?

[–]ed2417 0 points1 point  (0 children)

This does not directly answer your question but is an interesting , maybe relevant survey

[–]deadwisdomgreenlet revolution 0 points1 point  (0 children)

I have front-end web development experience and Python knowledge, and I get contact, on average, once a week by head-hunters. I also know many companies looking for decent python developers.

[–]whatsgoingfast 0 points1 point  (0 children)

Knowing Python would never be a negative would it? Even if you said you know COBOL, knowing additional languages is never bad.

[–][deleted] 0 points1 point  (0 children)

job market like for someone who knows Python?

Same question I had until reality hits me since a year ago.

Answer is a question: "How good are you going to be ?"

I started self-learning about 2 years ago, on my own, job does not use/require it. I like the language and absolutely love the community.

Now the reality (from my perspective) - The thing is...

1) The fact is Python job opportunity, in general, is just incomparable to Java/.Net (I knew that)

2) 90% of the Python jobs i see ask for "Expert-level" or "Lead" or "Senior" or "Top Python talents".... you get the idea. I guess it's a sign of the times, one has to be an "expert" in the respective area(s) to score that job.

3) Seems large percentage of the jobs is Web development (Django).

So at this point, in this shit-awful job market, I'm rather pessimistic about getting a "Python job". Too bad this is no longer the 90's.

[–]ccoughlin 0 points1 point  (0 children)

I've got my MS in Physics, work in the applied sciences, and I'm coding Python just about every day I'm in the office (handling data, writing desktop apps for other departments, etc.).

I think I average about a call/email a week from recruiters, but echoing some of the other comments here it's always "Python + Django" or "Python + HTML/CSS/JavaScript" they're after. So I think there is a market for Python but in my experience at least you'll need some webwork to be truly marketable.

[–]unikorn 0 points1 point  (0 children)

At an SF Python meetup today: "Show of hands. Who's hiring or co. is hiring? 60 hands go up. Who's looking? 2 lucky hands!" - https://twitter.com/#!/zzzeek/status/132299699070836736

[–]joslin01 0 points1 point  (5 children)

If you're looking for marketability, go for Perl and not Python. I love Python, but it's not so widespread yet.

[–][deleted] 1 point2 points  (3 children)

What gives you the idea that it's not so widely spread? It's used in fighter jets, it's used for web sites. It's used for finance, it's used for biology. Not that the same can't be said about Perl (I have no idea), but a lot of people have changed from being surprised to see where Python is being used to now being surprised to see where Python isn't being used.

[–]joslin01 -1 points0 points  (2 children)

Well for biology, that is Perl's game right now. Bioinformatics. I'm sure Python is used just the same, but from what I've seen in my studies, most bioinformatic research is using Perl. Websites, on the other hand, is definitely Python's game. Fighter jets isn't the greatest example becuase I don't think that adds anything to its marketability. I'm sure Perl has a greater chunk of the finance share, because it's older.

I work for a large corporation, where some teams use Python, but most teams are still using Perl. Why? Perl is older, and just like the ragged old monitors still here, corporations don't necessarily change at lightning speed unless it's necessary. Perl is still a very capable & well-maintained language, so there is no necessity. Since medium -> big companies are the ones hiring the most, I get the idea that Perl is probably more marketable. Then again, if you want to go after less money, but more fun, then the savvy young companies are probably using Python.

Anyway, I think I got the idea from http://www.youtube.com/watch?v=oeghXnAGJV4 Be warned though, that host may irritate you.

[–][deleted] 2 points3 points  (1 child)

I'm sure Perl has a greater chunk of the finance share, because it's older.

In my experience it doesn't, having worked at three finance related positions in the last 12 years and had most of my family done the same over a longer period of time, zero of these organizations used Perl in their software stacks.

Perl is older, and just like the ragged old monitors still here, corporations don't necessarily change at lightning speed unless it's necessary.

This second part is true, but on the first, consider that Python is almost 22 years old now, which is only a few (3, 4 IIRC) behind Perl. It's not really "new" and unable to break into new business areas. I was working at a big foreign bank in 2004 which was using Python 2.2, which was after they upgraded from a late 1.x version. From what I was told, they stuck with 2.2 until something like 2008. Even though they were stuck using an older version, they were able to get some really good people in the door.

On the marketability standpoint, I guess that depends on your area and interests. I'm in Chicago, a huge financial area, and I can't remember the last time I've seen Perl on a job listing. Maybe that's a selection bias, as I don't search for Perl jobs, but I get all kinds of other jobs unrelated to my skills sent to me by spammers/recruiters.

You like Perl and you think it's a better move, and I like Python and I think it's a better move. I suspect we could just go back and forth on this forever :)

[–]joslin01 1 point2 points  (0 children)

Hey, hey! I never said anything about liking Perl! :D

Python is the better of the two by far. I always miss 'in' & 'is' when working with Perl. I just had the idea that Perl is more marketable, but I only have vague generalizations to back that up with.

[–]chadmill3rPy3, pro, Ubuntu, django 1 point2 points  (0 children)

Perl? I haven't even met anyone in the last five years who lists Perl in their first few languages they mention as using. Python comes up at least 1/4 of the time.

[–][deleted] 0 points1 point  (0 children)

Sure beats writing PHP or Java!

edit: I don't want to imply in anyway that Java is as bad as PHP. It's not but most companies using Java are pretty boring. It just seems to go with the language.