I know this one probably isn't the first article you ended up reading about how to write a resume. I understand, you are looking for a job change or your first opportunity and this matters so much that you are looking for many suggestions.
I happen to be on the other side of the table as I screen candidates based on their resumes and I get to conduct interviews. Those interviews, by the way, happens only if the resume appeals me, and that's why it matters: a resume can give you your first shot at a job position or totally kill your opportunity.
Since I get to see some resumes every now and then, I'm already expecting something from them when I grab one, and I'll try to tell you what's that so you can write a good one.
Look, I know this is a long article, but it's your resume we are talking about.
It is worth the time.
Anatomy of a resume
Introduction
Say something before diving into the hard data of your work experience and studies. That's how you prove to be human.
This is not exactly a cover letter but something shorter and more general (not aiming directly at the company you are applying to). Imagine only having 20 seconds to introduce yourself at a date and that's about it.
Paint an overall picture of who you are, what are you looking at and what are you capable of.
For example, I'm a developer and this is my introduction:
Hi there, I'm a Full Stack Developer, more inclined to the Front End part of it, who has been working with eCommerce platforms like Magento since 2013.
I usually work with xHTML, CSS, SASS, Compass, LESS, JavaScript, VUE, jQuery, a little bit of Grunt, PHP, Laravel, another little bit of MySQL, Git as a revision control system, Agile methodology with Scrum as an agile development method, and of course Magento.
I really like English, which is my secondary language, that's why I'm very happy with my IELTS Life Skills B1 (IELTS UKVI) certification.
A good introduction will give the company you are applying to an idea of where you might fit.
Experience
This is the most important bit, where job hunters focus when reading a resume, and it's surprising how many people got it wrong.
Experience is about listing your entire career in a way that becomes easy to read and to understand, so it needs to be perfect.
There are two ways I would recommend this to be done: one is by listing roles and the company where that role happened (that's the classic approach), and another way is to list companies and roles performed while working for each company (which is the recommended option if you had multiple roles in the same place, or to show career progress inside the company).
LinkedIn uses these two approaches combined depending on how many roles you add to the same company.
The main issue I always encounter within this section is that people usually list the title of the role, the company, the dates when that happened, and nothing more, but that's not even close to be enough.
List the actual tasks you take care of while performing on a specific position. When people read your resume they need to know what you have actually done, the real stuff you have actually done.
For example, a common job title is the "Technical Leader" for a web development agency. What that means to you?, because certainly it doesn't mean the same on every company. Did you code review stuff or that wasn't your job? Did you manage deployments or that didn't fall into your job description? Did you coach people? What else?
I'm a Full Stack Developer at my company... and I do code reviews, deployments, I interview people, take care of the onboarding of new employees, etcetera. The tasks I perform are not usually associated with the title of the role I have so that's why it's also important to be specific.
Depending on the job and/or role it might be worthy to also specify the projects you worked on, which could be a good idea if you operated as a freelance for some period of time.
Certifications
This is how you validate your previous listed experience.
Everybody know that a certification on its own is no evidence at all that you dominate the platform/software/field that certification is about, but they are used as a filter during the screening of several resumes.
So, if you have them, add them. It's more for like "Oh, look, she has this certification, so she dedicated personal time to get it, that tells something of her".
If you happen to have a certification on a different language, besides any study that proves you speak it, this is the place to add them.
Language certifications are pretty important, specially if you are looking for a job in a foreign company.
Additional projects
A lot of people do freelance stuff at the same time that works at a company as a full-time employee, collaborates on an Open Source project, or maintains a personal one.
Whatever is your case, or if you have something similar, you should list that too as it's part of your experience. And, the fact that you did that in parallel of having your regular job it's a plus the interviewer will consider.
For technical positions such as web developers this is also the moment when you introduce your personal repositories (such as GitHub), or any other social network account with focus on showing your work as a portfolio (for example, Behance).
As an interviewer, and as a resume screener (assuming that's a thing), I'm mainly focus on the technical aspects of the candidate, so a GitHub account (or similar) is for me a glimpse of the actual coding skills of the person applying for the job.
Education
Your experience (and the additional stuff you did), on top of your certifications, leaves your common education on a secondary position.
What you have done during your career, your career itself, it's your education, so at one point your attendance to college or Uni doesn't really matter. But, that's only true if you actually have a career to show.
There's still something worth highlighting here which are courses taken that are related to your professional career, either directly or complementing it.
Bonus track
Social networks?
Only if they add something to your professional profile, otherwise I wouldn't bother mentioning them.
A good examples of social networks worth mention are Twitter (if your use it professionally), GitHub (or similar version control system), and of course LinkedIn.
If you have a personal site, such as a blog, and specially if it's related to what you do professionally, mention it as well.
Hobbies?
Yes, of course. There are humans reading resumes made by other humans, so prove to be one.
A list of hobbies gives people a glimpse of your personality, and it's always good to know what you appreciate in life besides working.
Of course, this is pretty much optional, and you should share this personal side of you at the capacity you are comfortable at.
Additional personal data?
We are talking contact information here, which is important because, well, you want to be contacted back.
But also your country of residence, which is pretty much key information for time zone reasons, specially if you are applying at a foreign company.
Designs matters?
Depends on what you do for a living. If you work on something related to design, then yes, it does, and pretty much.
But, for example, if you are a developer, I personally don't care much about design and my main focus is on the content of the resume rather than how pretty that is.
Having LinkedIn
This is a double-edged sword.
LinkedIn is great, it's the perfect way to show your entire professional career. It gives you the ability to add everything we just discussed before and more.
From my personal point of view, I think having LinkedIn is enough, and that it could be your final resume. You don't need anything else.
For example, I don't have another resume but my LinkedIn profile, and when I applied to the current job I have I remember saying...
You can check my experience in my LinkedIn profile at https://www.linkedin.com/in/nahuelsanchez, let me know if you want a PDF version of my CV or something else.
...but that PDF version wasn't necessary because my LinkedIn profile had everything, it's complete.
And that's my point. If you are going to have a LinkedIn profile, have it up to date, have everything there. Make it your final and only one resume that's always available for whoever wants to read it.
Otherwise, what happens if I see a profile with content midway is that I assume that's all of your career. I can't tell if you were lazy and didn't update what I consider to be your resume.
If you are a web developer you can find me on LinkedIn and check my profile which I consider to be a good example to follow (not a perfect one, I said "good").
Also, again, if you are a web developer (which is my "area of expertise"), find me again on LinkedIn and tell me if you would like me to review your profile (after you applied to it everything that was presented here, of course).