In my job I get to see a lot of resumes. Being the grumpy dev in the corner, it is usually my task to take a first cut of the resume pile and weed out those who don't have the technical skills required for the job. Only after that happens does someone who can actually make the hiring decision get a look at your resume. So you need to get past me, and I have to say there are a lot of bad resumes out there. In the interests of being a good netizen, I'm going to give you some tips that might mean you don't end up in the slush pile.
Proofread
Don't send me a resume that says you have excellent English communication skills and then spoil it by spelling errors, gramatical mistakes or just plain bad English. It isn't going to fly. Even if the rest of the resume is up to standard, the fact that you don't care enough to proofread means that you likely don't care about your code either. I don't want to have to clean up your typos or syntax errors, so I'm not going to recommend you.
Be Specific
State not only what your position was but give some detail about the work you did, the tools you used and the level of involvement you had. I want to get a sense of how you think and work. I want to understand the challenges you faced and how you overcame them.
Developed websites using PHP, MySQL.
Sorry, that tells me nothing.
Built eCommerce website, including researching various payment gateways and writing interface to meet customer's needs. Other challenges included privacy agreements and data security constraints. Code written in PHP with interfaces using RPC-XML, and backed by a MySQL database.
Better! I can see that you needed to think through problems and overcame them. I can see that you have an understanding of interfacing requirements, and I can see you have thought about topics I am interested in (privacy, data security).
Be Honest
If you have built websites using a CMS and most of your job was in building the theme and configuring modules, say so. Don't hide it behind words like
Site built as CMS in PHP
Yes, it was built as a CMS in PHP, but if you didn't write the CMS, it could have easily been written in Fortran or LISP - it has no bearing on your resume. I'd rather you stated what you were capable of and then if you wanted to get into PHP development say that.
I have been learning PHP over the past x months and would like to extend my skills in this area
Is a better approach.
Be Passionate
Have you done something you are really proud of, even if not as part of your work? Say so! It takes passion to be a good programmer as much as skill, and in fact passion can get you over the hump even if your skill set is on the light side. Tell me why you did things as well.
Fill the Gaps
Don't leave unexplained gaps in your employment history. If you weren't working, tell me what you were doing. Even if it was walking in the Andes, or sunning yourself on the beach. I'd rather know a bit more about you and therefore how well you will fit into the team than have a gaping hole that I have to guess about.
Be Pertinent
If the job is for a web developer, don't highlight your excellent work as a hardware engineer. By all means tell me about that, as it rounds out who you are, but don't make it a highlight. Similarly if the position is a Web Developer, don't put in the intro that you are looking for a Director or Manager level position. That isn't on offer, so don't ask for it. If your skill set or your aspirations don't match the position, ask yourself why would anyone bother to read the resume, and then ask yourself why you would bother submitting it. Are you that desparate, or did you just not read the position description?
Supply a Portfolio
When I look at a resume I want to find someone who will be an asset for the company, and maybe even someone I can learn from. I also want to understand how you approach and solve problems, and what your level of skill is. Think about supplying examples of code, documentation or even links to some websites that you've worked on. But make sure that you aren't breaching copyright.
Make sure the code sample is something you are proud of. I don't want to see a simple function that you could have copied out of a How-To book. And please, comments are not there to tell me what you did, that is what the code is for. Comments are there to explain why you did it that particular way. Less comments and well thought out code is better than inane comments and a complete mess of badly conceived spaghetti.
Please, do yourself a favour and make sure that you have no obvious security flaws in your code. Anyone can write a snippet of code in an arbitrary language, what I want to see is that you truly understand that language, how it fits into the work you do, and what its constraints are. Creating an example without thinking through the consequences or the vulnerabilities is suicide. I will read your code, and I am looking for problems. If you really thought that only the hiring manager was looking at this and nobody was going to double check that you knew what you are doing you are on a hiding to nothing.
If you are providing links to websites, explain exactly what you did on that site.
Think about Open Source
Allied to the above, have you thought about getting involved in an Open Source project? This is a great way to get practice in your chosen field and to give your prospective employer a real insight into your coding style, your skill level and your ability to work in a team. If you are straight out of college this is a great way to strut your stuff and counter the usual complaint of lack of experience.
Remember your Audience
Remember that your resume is likely to hit at least three people's desks. The hiring manager or recruiter, the department manager, and me (or rather a person of technical competence who is looking forward to have someone share the load). Don't just put in headlines for management and forget detail that explains your technical skill level. Similarly make sure there is a summary section that covers the highlights so the recruitment officer can quickly put you in the right pile.
Hit all the Points
If the job spec asks specifics, answer each and every one of them. If you can't then you aren't going to get past the first cut. This is not only for the techincal requirements, but also for the work conditions. If the job states a distributed devlopment team, or that you should be a self-starter, then ask yourself honestly if you can work unmanaged. There is no shame in knowing your strengths and your weaknesses. Quite the reverse.
Don't Panic!
It takes time to get through the pile of resumes. Don't expect to hear back within a few days. Even if you do fail the cut, don't despair. Take a look at your resume and see if you can see why you failed. Better still, pass your resume around to others for comments before you submit it for a position. Try not to take any negative comments to heart - think instead of how you can address them. You may even be able to ask the employer why you were rejected. Not all will be willing to comment, but some will, and getting it from the horse's mouth is far better than dreaming up reasons yourself.