||If you're still in school or a recent college graduate, you should have an "Education" section to show where you went to school, what your major was and what type of degree you got, usually your GPA or some other metric of your performance there. You might also want to include a section showing what classes you took that might be relevant to the job.
You should also have an "Experience" section showing where you've worked in the past and what your primary responsibilities were. List them in order from most recent to the first. If you've worked many places you should probably consider leaving out the irrelevant ones (for example, if you worked at a fast food restaurant during high school, that probably doesn't matter much!)
Being a software person, it will also be important to have some sort of "Technologies" or "Skills" section showing what languages you know, what technologies or APIs you have used, and so on. Only list things that you can comfortably talk about to prove you are sufficiently familiar with them.
Most resumes include an "Objective" section at the top. The objective is just a brief summary of what you're looking for and why you're applying for a particular job. Some people say you should always have an Objective while others feel it often does no good. The problem is that they're often very generic and "BS" and don't really tell the hiring manager anything worthwhile. So wording of the objective is particularly important if you include one.
Of course, your resume should have your name, address, phone number, email address, etc. You can even include a URL to your webpage if it is professional looking.
The key to a resume is brevity. Do not make it too verbose. When someone looks at your resume, they ARE NOT going to read the entire thing. It probably won't be much more than a quick glance in fact. You need to catch their attention quickly.
Regarding templates, they are usually a bad idea. Especially the built-in resume templates in Microsoft Word, for example. A hiring manager will probably throw your resume right out the window if they recognize it as such. Try to be creative and come up with your own clean and effective layout. Don't put any graphics or silly stuff on it, make it look very professional.
Finally, proofread your resume several times. A single misspelling can be the difference between a job and no job, depending on who is looking at it.
Good luck. :)