Create a Computer Science Resume in Five Easy Steps
You understand better than anyone that computer science is the backbone of the world’s industries and economies. It is the Web Developers, Computer Systems Analysts, Computer Hardware Engineers, Software Engineers, Computer Programmers, Database Administrators and others like yourself that are responsible for keeping the world’s information infrastructure running, solving company problems, saving face for management, and building the future of the information economy.
Despite how integral you are to making the world go round, seeking computer science jobs can be difficult because lets face it, computer science graduates and professional often struggle with how to communicate their specific technical skillets and accomplishments in concise and clear English. A great computer science resume clearly explains your accomplishments and career arc to the non-technical reader (like the HR staff that read resumes first), while demonstrating deep technical knowledge and a specific skills that a specialist is looking for.
Here at Resume To Interviews, we’ve written countless computer science resumes for all manner of jobs and positions in the computer science field. We’ve created this guide based on what has secured top computer science salaries for our clients. Now we want to share it with you.
Any computer science job, be it a software engineer or database administrator position, is about using technology to solve problems. Your computer science resume needs to do two basic things: show the technologies you know and can use, and how you’ve used them to solve problems and create value for your employer. The first step to doing that is summarizing your experience at the beginning of your resume.
Your resume should begin with an overarching description of your abilities and experience.
One bit of antiquated resume advice that people keep following is including an “Objective Statement” at the top of the resume. Don’t do this. If somebody is reading your resume, they know your objective already.
Instead, you should use a “Summary of Qualifications” or “Profile”, which explains your abilities relative to the job you are seeking. This means that your opening sentence is only going to contain the experience and skills that you have which are the most relevant to the position. Read the difference between an objective statement and a summary of qualifications statement.
Objective Statement: Bad Example
A Software Engineer with four years of C# and ASP.Net programming work experience, specializing in the design, management, testing, and support of applications, platforms, systems, and features for the financial industry.
The idea is to make the reader think that you are exactly what they are looking for. To do this, the summary or profile should mirror the desired experience, skills, and requirements in the job posting. Use your favorite job search engine to find those jobs searching strategically. Search for the types of jobs you want, but also search by the types of technical skills you possess that you know will be one of your primary selling points to employers. Search by a type of programming language, or any types of advanced coding strategies that make you a unique candidate. This will lead you to the jobs that you would be the best fit for.
Inside the summary section, but below the summary sentence itself, you should add any sort of programming portfolio. This is the place to link to your Github page. Now a future employer can see your career arc, your skills, and examples of your work, all in the first few lines.
With the context set effectively, the reader will read the rest of your resume content for skills and accomplishments, instead of trying to piece together your story as they read down the page. This will ensure they process the information and focus on finding a match, instead of trying to understand your overall career arc and experience.
Employers looking to hire applicants for all manner of computer science jobs are seeking people who can demonstrate more than just a familiarity with certain types of technology. They are looking for people who can quickly and elegantly communicate how they used technology to create new value and solve problems. This means you have to convey big picture information while mentioning the proper technical specifics and details. This is a careful balancing act. We are going to show you exactly how to maintain that balance.
If you already have experience in any area of computer science, be it web or app development, systems programming, or database administration, it’s going to be very easy come up with the content that becomes the basis for your professional-grade resume.
Start by listing what you do every day at your job, in a basic format. Use bullet points and don’t try to make a paragraph or a story out of your experience. Then any major projects as well. Finding job listings that are similar to the job you do now can be very helpful in creating this info. Often job listings will have a list of duties. Use their list to create a list of your duties.
Remember, the things you do every day are only mundane to you because you’re the one who does them every day. For someone else, these tasks are the key to knowing what qualifies you for the available position. Write down everything and be thorough.
Once you write down these basic duties, the next step is to explain and expound. The best way to do that is to use numbers as much as you can while naming specific technologies as much as possible.
How often did you make code changes?
What languages did you use?
How large was the database you administered?
How many software updates did you work on?
Each point should contain at least three of the four following pieces of information:
- A: What you actually did. (ex: “Created code updates…”, “Developed web apps…”, “Analyzed requirements,” “Tested…” “Administered databases”)
- B: The technology/language/methodology used. (ex: “with C#”, “using Agile development methodology.”)
- C: Why you did it/who you did it for, if applicable. (ex: “..in support of the Finance Director,” “..for the new release of the flagship software.”)
- D: The results/improvements, if there are any and they are impressive. (EX: “which reduced development time 45%,” “which added geo-referencing functionality”, “which reduced bug reports by 25%”)
Note: Often you use many pieces of technology to accomplish a fairly complex task. You want to do your best to keep the bullet points to two lines, or three at the very most. If your information spills over to another line, either cut the information that extends the bullet point to three lines or add the additional information as a bullet point unto itself.
You also want to start each job’s content with a general, overarching bullet point that introduces the reader to the job and your responsibilities at that particular position. This establishes the context for everything that comes after. People only absorb information if they understand the context. If someone is reading a resume and can’t figure out the scope of your responsibilities or what kind of company you worked for, then you have a problem.
That’s only if they keep reading at all; often a bunch of data without context is enough to get a resume tossed. Establish scope and context in the first bullet point.
Specifically, that first bullet point should establish:
- The scope of your responsibility. This should what software/systems you worked on and how large the user base was.
- What kind of company you worked for and how large it was.
- How many people under you or how large the team you were on was.
Have you ever played mad libs?
That’s basically what we are going to do right now, except the end result will be resume content that clearly communicates your skills and experience to potential employers instead of a ridiculous story. Paste the content below under each job on your resume. Then insert the correct numbers and details where appropriate. Delete any bullet points that don’t apply to your experience.
The base of a good job description is all here. You only need to edit the details to personalize your resume. Your most recent job will typically have the most content. If you end up repeating content across multiple jobs, delete the duplicate content from the older jobs and leave it in the newest one. You want to show that you are adding responsibilities as you progress in your career, and you want to show that your knowledge is fresh and up to date. That’s why duplicate content goes in the newest job.
Computer Science Job Description Mad Libs Guide:
Starter Sentence: Examples of sentences you can use as the first sentence of your Computer Science job description. Choose one that is the closest to your experience and change the details to match the job. Each job on your resume should start with an overarching sentence like this.
- Maintained twenty Microsoft SQL 2005 databases serving twelve applications that supported the client management system, HR, and finance functions for a non-profit community and residential mental health provider.
- Designed, developed, analyzed, and troubleshot software, systems, and solutions for a business services provider with 33 total staff, and clients that include GM and Anthem Blue Cross Blue Shield.
- Developed and deployed six faculty and alumni websites and web-based tools using WordPress, HTML, PHP, and CSS while providing technical support to a three-member content team.
- Designed and implemented dozens of versions, patches, and bug fixes for the C#-based EALink simulation client and server software as the sole company programmer for a mining industry analysis service provider.
- Developed, architected, and maintained twelve web-based product offerings supporting 100 client websites while managing two Junior Developers for a B2B provider of marketing solutions to automotive dealers.
Descriptions of duties: Examples of bullet points that you can use to create your job description content.
- Improved DR site backup reliability from ~95% to 99% by transitioning the backup copy process from rsync under Cygwin to robocopy.
- Developed software that analysed, collated, and formatted mining site simulation data into graphics, Gantt charts and MS Excel files.
- Designed, developed, and implemented software features biweekly based on management and analyst requests, which included XML parsing, Simio API, Gantt chart library, and Arena file support features.
- Conducted beta testing on all updates and versions using data from three production sites.
- Reviewed daily bug reports and created and executed bug fixes for crashes, corrupt data, interface problems, and connection issues.
- Built installers and compiled new versions in Microsoft Installer Format (.msi) using Advanced Installer, improving dependency analysis and automating the import of required libraries.
- Wrote a custom server installer in C# that set up Microsoft Web Platform (IIS), generated security certificates, and implemented permissions and background services.
- Reviewed changes and updated the changelog with patches, bug fixes and latest edition notes.
- Upgraded IBM Filenet from 4.0 to 5.1, which included Filenet DB upgrades from MS SQL 2005 to MS SQL 2008, as part of a five-member Project Team.
- Improved the performance of a core synchronization process 500% for legacy, replacement, and upgrade databases by optimizing queries and adding appropriate indexes.
- Re-indexed the finance reporting database by analyzing database queries with SQL Profiler, improving query performance by up to 300%.
- Achieved a database uptime of 99.5% excluding planned outages, by ensuring that only properly-approved changes were pushed live and by managing security and access control for 100 staff.
- Conducted performance verification and benchmark analysis of a DSP microprocessor architecture and design.
- Created a next generation C++ model by porting instructions from the internal microprocessor description language to an OSM language.
- Customized ticketing systems, implemented call center application and OAuth authentication, and delivered API design recommendations for up to three simultaneous support contracts.
- Planned and managed the ongoing conversion of the website and all sixteen offered business services into a single bundled website with modular APIs and an overarching UI.
- Oversaw the design and automation of business services, including payroll, PTO, corporate secured IM services, phone systems, and office support scheduling.
- Provided technical and capability recommendations to the CEO and Senior Director of Information Technology (SDIT) during the planning, design, and implementation of products and services.
- Updated and improved a Call Center Application and increased the number of possible concurrent clients from six to 600 by resolving memory issues, creating helltesters, implementing detailed logging, and identifying threading issues.
- Streamlined authentication into a single sign-on that enabled the management of identities for all company services.
- Standardized company databases and tables using ORM tools, including nHibernate.
- Refractored legacy PHP and C# code into modules while implementing metric, validation, and resource requirements that enabled monitoring of customer performance and authorizations.
Remember in each bullet point you want to do the best you can to communicate 1) what was accomplished, 2) what tools or techniques were used to accomplish it and 3) what the impact of this accomplishment was on the business.
Another essential aspect of computer science jobs is the ability to prioritize information. So once you have all the details, it’s time to organize the content. You do this by ordering the bullet points relevant to the jobs you want to apply to. So the most relevant bullet points will be on top and the least relevant on bottom, while still making sure the introductory bullet point remains first to set the context for everything that follows.
If you are having trouble determining which points are the most relevant, consult the job descriptions you found earlier. Remember that the people reading your resume will likely be the same people who wrote those descriptions, so this gives you a good sense of what they value. If the description prominently mentions specific languages or technologies then put the bullet points which show your experience with those towards the top.
If you have lots of bullet points, like more than half a page, and it’s all good and relevant content, you need to organize that information so it’s not a “wall of text” that ends up making the reader’s eyes glaze over.
To avoid the wall of text appearance, first make sure that all your content is useful and applicable to the jobs you are seeking. Often you will find that a great deal of your content can be consolidated or cut. But if it is all great stuff, then you don’t want to cut it, you just want to organize it effectively. Do this by creating between two and four categories and using them to organize the bullet points. This will both reinforce the idea that you have a few primary areas of knowledge and expertise, while simultaneously showing a wide range of skills and accomplishments that can be easily scanned by the reader.
Think about your work experience and look at your bullet points. Come up with three categories that you can distribute the bullet points among while keeping each category roughly equal in size. Some good examples of categories (depending on your specific job, of course) might be “Application Development,” “Systems Programming,” “Project Management” or “Testing and Analysis,” Ideally, the categories will also reflect the skills most highly valued by the employers you want to work with (look at the jobs listings to see what these are).
The categories don’t have to be perfect, but they should be relevant. They also shouldn’t overlap. For example, having a “Management” category and a “Project Management” category isn’t that helpful, even though they are technically different things. The individual bullet points might be relevant to multiple categories, but the titles of the categories should be clearly delineated.
Distribute the bullet points among the categories you have created. Then rearrange the bullet points so that the most important and impressive descriptions are at the top. After that, order the categories in terms of importance as well. The most important category on top, least important on bottom. Remember the general bullet point we talked about, the one that sets the context for everything? We are still going to use that first. We are going to put it above the categories. This will serve as an introduction to the categories and bullet points that follow. You might even use two bullet points to set the context and describe the overall responsibilities above the categories.
The end result should look something like this:
Computer science majors and computer science professionals often create projects on their own time to hone their skills, learn new technologies, or just have fun. These projects can demonstrate expertise and familiarity with technologies that your job experience doesn’t. This is especially true if you are a computer science student or a recent computer science graduate or someone looking to translate into a different part of the computer science field.
To incorporate independent or academic projects into your resume, create a projects section. Treat this section as you would your work experience section, which means treating each project like a job. Instead of the name of your position and the company, just give the project a name which says exactly what it is. “Android Music Search App” or something similar, and then list the date you worked on it. After that, all of the same bullet point principles outlined above apply. Write an introductory bullet point, followed by a few bullet points describing the work you did and the technology you used. If you don’t have any work experience, this might be the most important part of your resume.
Remember, if you take these projects seriously, employers will too.
Now the only thing left to do is create a section called “Technical Skills.” This will be a comprehensive word bank with all the software, languages, technology, analysis tools, industry concepts, and skills you are familiar with. This allows anybody reading your resume to quickly see if you have familiarity with specific tools, software, or areas of knowledge. Most importantly, it helps your resume get detected by resume scanning software (iCIMS Talent Platform, Capterra, etc.), increasing the chances that your resume will end up in the hands of a real live human being. In this day and age, you need to be writing your resume with this kind of software in mind.
Although you do want to be thorough about your skills and technical proficiencies, you do not want to spam hiring managers with technologies and concepts you barely know. So what terms should you use? How should you organize these terms? We have you covered. A starter list of skills you need is just below.
Copy and paste these into your resume if you are struggling to think of your own.
- Software: Microsoft Access, Microsoft Excel, Microsoft Project, Microsoft Visio, Adobe Photoshop, Adobe Premiere Pro, Adobe Audition, Adobe Illustrator, Adobe Lightroom, Windows Server 2003, Windows Server 2008 R2, SQL Server, Exchange Server, Faronics Deepfreeze, M0n0wall, pfSense, VNC, Ubuntu Linux, SketchUp, Wirecast, Crystal Reports, Sage CRM, Business Objects Web Intelligence, VMWare vSphere, AutoCAD, Jira, Sybase ASE, Sybase Replication Server, Sybase IQ, MySQL, VMWare Service Manager, Bash Shell Scripting, Cygwin
- Programming Concepts: Object Oriented Programming, Mixed Language Interfaces, Procedural, Functional
- Web Concepts: Responsive Web Design, Accessibility, Usability, Standards-Compliance, Cross-Browser Compatibility, Grid Layout Systems, SEO, SEM, Digital Advertising, eCommerce, Database Integration, Application Integration, Web Graphics Optimization
- Web Security: Abuse of Functionality, Brute Force, Credential/Session Prediction, Denial of Service (DoS), Insufficient Anti-Automation, Insufficient Authentication, Insufficient Process Validation, Insufficient Session Expiration, Session Fixation, Buffer Overflow, Content Spoofing, Cross-Site Scripting (XSS), Directory Indexing, Directory/Path Traversal, Format String Attack, OS Command Injection, Predictable Resource Location, SQL Injection, Server Side Include (SSI) Injection, Disaster Recovery
- Content Management: ColdFusion Studio, ColdFusion Builder, SQL Enterprise Manager, FTP, Dreamweaver, WordPress, CFHTTP, Web Services, Duplicate Content
- Online Marketing: Google AdWords, Google Analytics, Remarketing, Link Building, Mobile Marketing, Google PageRank, Pay-Per-Click Search Engine Marketing (SEM), Landing Pages, Retargeting, Reputation Management, White Hat SEO, XML, Sitemaps, Google Webmaster Tools, Email Marketing, Snail Mail to Web Marketing, Crazy Egg, Hootsuite, Webtrends, Online Contest Development
- SEO: Google Analytics, Google AdWords, Webtrends, WC3, Hootsuite, Crazy Egg, WordPress, Blog, B2B, Site Depth, Indexing, Duplicate Content, Conversion, Impressions, White Hat VS Black Hat, Sitemap
- Social Media: Facebook, Twitter, Pinterest, LinkedIn, YouTube, Yelp, Digg, Instagram, WordPress, Google Analytics, Klout, Reputation Management, Contest Development, DealerRater, Blogger, Foursquare, Google Plus
- Microprocessor Architecture: Caches, Pipelining, Instruction Fetch, Data Fetch, Performance Modeling, Benchmarking, Performance Analysis
- Design Standards: AMBA AHB Bu
- Database: Auditing, Change Management, Linked Databases, Data Definition, Data Manipulation, OLAP, Performance Tuning, Replication, Disaster Recovery, Access Management/Database Security
Once you have all the info that applies to you, try and cut it down to no more than half a page of the most relevant content. Then organize the categories the same as the bullet points: most impressive/important on top, least important on bottom. We’ve provided you with info to start, but the best method for identifying a list of skills is to search for terms online.
Do this by searching for a combination of the following terms on Google. Google words such as “glossary” and “list” combined by specifics like “software engineering” and “computers science”, or specific terms like “object oriented programming.”
This section should either go at the beginning or the end of your resume. If you are creating a very general computer science resume that you are using to apply to a wide range of computer science jobs, you might want to make this list pretty exhaustive and put it at the end of the resume. If you are looking for more specific jobs, you should keep the list of skills short and sweet and put it at the top of the resume underneath the summary. This will immediately confirm to the hiring manager that you have the skills they are looking for. Then they will continue to read the content to see exactly how you used those skills.
A well-written, detailed, and focused computer science or software developer resume can secure you a well-paying position in nearly any industry, since just about every industry needs someone who can develop technology solutions. A resume that clearly demonstrates your skills and accomplishments already puts in a better job hunting position than most computer science professionals and graduates who struggle to communicate what they actually do. Remember, computer science is about solving problems. Show you’re a problem solver and the interviews will come rolling in.
What do you think?
We want to hear what you think is missing from this article.
What advice would you give someone applying to computer science jobs and related fields?
Don’t want to write it alone? We can help you land the interview.