I've made a couple of scripts. One is a stock screener that can search through every stock. Another creates a heatmap that tells you what's performed well and badly over the past day. They aren't really that useful, just did them to work on my programming skills. I was able to throw some SQL in my scripts too. Would you call that intermediate? Thanks? How do you guys list your programming skills on your resume? Maybe there's a better way of putting it on my resume than "intermediate" or "beginner."


I would not describe the small experience you list as qualifying for an "intermediate" skill in Python. At my current employer, where "really advanced" Python means Guido van Rossum and just "advanced" could be, say, me or Wesley Chun, "intermediate" would be somebody with at least several thousands' lines of solid code and a good grasp of all of the language's constructs and a reasonable fraction of the standard library. Other employers may have somewhat lower thresholds (e.g., I think I would call myself a "really advanced" Pythonista were I working for most any other firm, but being Guido's colleague forces a slight dose of humility in the matter;-).


"Would you call that intermediate?" No.

"How do you guys list your programming skills on your resume?" I actually use a Tag cloud, but that's just me.

I only include languages that I've done paid, billable work in. Which -- as far as answering this question -- might be a circular definition.

In order to advertise to a customer that I can be trusted with work for which they will be happy to pay me, I have to provide them with confidence in my skills. For new languages and platforms, I've had to show

1) I can program in general. I can be trusted to deliver. 80% of the way there.

2) I can program something like their chosen language or platform. The last 20%.

Establishing #1 is -- perhaps -- harder. Showing any solid, paid development experience is 80% of the problem.

What I look for in an interview.

  1. What hard problems have you solved? Tell me the story of the problem. Seriously. Beginning, middle and end. Include technical details without getting to individual lines of code. Who are the users, what are their stories, what did you build, how did it work? This shows how much experience you have. This is what you do.

  2. What your role is in your current assignment. Do you design? Code? Test? Write specifications for others? What do you do? Details matter without become tedious about it. This shows what kind of experience it is. This is who you are.

  3. What you know about the language and platform. Avoiding buzzwords. Explain why it's cool and why it solves the problems you've been faced with. This is particularly difficult to answer, and it shows the difference between experienced and expert. This is what you know.

Note that the divisions are -- at best -- blurry and ill-defined. "expert" and "experienced" and "skilled" and "beginner" are neighborhoods in a multi-dimensional skill space. Not points. Not even a band on a spectrum.


At most put "Python (N years experience)". HR people will just check off the box, people who actually care what that means in experience will ask for detail. True, "N years experience" is a terrible measure of anything, but so it goes.

If you are making a longer, more detailed resume, name the projects that you did. It will give your interviewer something specific to ask you about.


The best way, as far as I'm concerned, is to link to live source code on a repository hosting site or personal resume website (e.g. I often link to my open source projects on github.com). Then it's not really as critical to "categorize" your skill with a language, just be up front with what projects you have done with the code and link to it so that a reader could review your source code themselves.

When you're recruiting a programmer, having them provide an actual personal code sample can filter out 90% of the bad hires out there, so if you provide a code sample from the outset, you'll probably be ahead of the curve.


I wouldn't grade yourself, put a 'key skills' section on your resume and if you feel that Python is a key skill then include it. This is an honest approach - and if you get an interview you can flesh out what it means to your prospective employer.

As recruitment consultants often tend to search on keywords (without context) this honest approach may get your foot in the door, and then its down to your enthusiasm and some nice example code to get you further.

Good luck.


All the answers I read here may be right for some kind of employers, but not for others. This said, I personally think that everyone has a good answer. Here, if I may put my grain of salt.

When a company is outsourcing her human resources, the client wants to know with whom he will get to work, and want to choose the one who best suits his needs. Under that angle, a customer is very cold-approach, as he fears to mistaken, just like a customer to whom you bring a new software to perform his tasks, some refractory behaviour might be percepted, thus making the customer want as much detail as he can have to build himself a good portrait of you even before he meets with you. To fill this requirement, you will need to get as detailed as possible. Here is an example of what I mean:

Experience résumé
Mr. Marcouiller counts more than 8 years of experience in information and process systems. He has taught for 2 years .NET and object-oriented related programming...

Domains of intervention
- Functional analyst, organic analyst
- Programming
- Project management
- ...

Realisations in brief
Exp# | Client Name | Project Name | Function tasked | Year | Efforts (Months)
11 | ABCD, inc. | Transport Manager | Analyst-Programmer | 2009 | 2

Professional realisations
2008-2009 Général Informatique inc.
Customer: Qualitech LM inc.
Contract #: 11
Project: Transport Manager
Scale: 36,000 days-perons
Function: Analyst-Programmer
Period: August to November 2009
Efforts: 2 Months
Reference: Contact Name and phone number or email address

This project was to develop a transport management software (blah blah blah...)

Mr. Marcouiller has performed the following:
- Analysis and design
- Project management and development
- ...


2007-2008 Général Informatique inc.
Customer: Micromédica Business Solutions inc.
Contract #: 10
Project: ...

Technological knowledge
Technology | Months of experience
Microcomputers (IBM, HP...) | 51
Microcomputers (PC...) | 216
Operating Systems
MS WINDOWS 2000/2003 | 48
Programming Languages
C | 20
C# | 50

I hope this gives you another point of view and helps you. It is nothing evident to try to format here. But I hope you get the idea. That's just another point of view under another angle.

This way, one has the kind of project you have worked on, another has your technological skills if this is what interests him most, and another has... Well, you get the point there I guess.

EDIT As for your question, by writing the type and scale of projects you have worked on, plus your months of experience with your technology, the reader might make up his mind himself about an intermediate, advanced or beginner. I think letting the reader suggest himself what skill you are is the best way to go. What if this person consider your skill as advanced for his projects? This could be good for you!

The idea for a résumé is to sell yourself, your skills and your knowledge. But more importantly, sell yourself. You have to make yourself confident in fron of an employer, be confident in yourself, and the rest shall come by itself. In other words, tell your future employer that you're the man he needs, while you know you can become this man, see ?

In short, what the employer wants to know is whether or not you're able to do the job, or will you be able after a few weeks of training with his team. It is a psychology game, in addition to the technical skills you have.

I wish you best success!