Candidates looking for a job in computer science should be prepared for their interview. Regardless of where you'll study, you'll need to know a few computer languages and you should have no problem coding a basic for loop or any other simple task. To prepare for the field you'll want to get the right training, and regardless of your ultimate objective in computer science, a degree can help you get certified and demonstrate your proficiency. Common degree types include an associate's, bachelor's, master's, Ph.D, and certification in computer science. Encouragingly, jobs in the field are growing. According to the BLS, positions in computer science are projected to increase by 15% through 2022.
Starting a career in computer science isn't as easy as graduating and showing up to a job interview. While new grads can expect a friendly job market, a candidate's competitive edge comes from specific expertise in a particular branch of computer science. With that in mind, consider these three points when you're searching for a position in the field.
- It's impossible to be an expert in every aspect of computer science: The discipline itself casts a wide net and the practical application of computer science takes several forms. The BLS tracks data on the ten broadest subcategories of the field, including programming, systems analysis, database administration, network architecture, software development and research. Each subcategory offers graduates a variety of job opportunities across virtually every industry. New graduates with expertise in a particular subfield are better prepared to target positions requiring specific skills and competencies than competing candidates.
- Successful careers in computer science are built on lifelong learning: By definition, this industry is progressive. The body of knowledge in computer science has increased so rapidly that it's been limited only by human inability to keep pace. Life-changing technologies are developed every day, and our understanding of the field will only grow. Formal degree programs are starting points; professionals in this field are expected to continually absorb evolving knowledge.
- The technical knowledge and skills required of computer scientists aren't common to other industries: Employers understand that they need computer scientists to reach certain goals, but they may not grasp exactly how they'll achieve them. This disparity in understanding leads to situations where companies have only a vague idea of the skills they're seeking in an employee. Consequently, both the employee and manager may have unrealistic expectations regarding the amount of work required for certain projects. Computer scientists may find themselves educating their bosses, and navigating a job market in that context can be tricky.
Before You Apply
Wading into job applications is less daunting if you’re adequately prepared. Ideally, you'll have some idea of the career path that interests you before you sit down with an interviewer. Computer science programs generally offer students exposure to many subspecialties within the field, so new graduates should have developed some areas of interest along the way. When thinking about potential work environments, ask yourself a few questions:
Identifying potential career paths can help you develop an appropriate marketing strategy for your skills. When you know your preferred career trajectory, it becomes easier to organize how you present your abilities.
- Do I want to spend my time coding? Full-time or some of the time?
- Am I interested in the commercial end of a business?
- Do I want to avoid a position that will require a lot of troubleshooting? How much of my day do I want to spend troubleshooting?
- Do I want to work with end users or focus on strategy and development?
- Am I more comfortable with short-term projects or assignments with a lengthy deadline?
- Do I want to work with other computer scientists, or am I comfortable as the sole IT person on staff?
- Am I more interested in building things from scratch, or developing someone else's ideas?
- Do I want to report to a single manager, or am I more suited to answering to multiple clients?
Writing Your Resume
Although computer scientists may find that the dryness of industry jargon makes crafting a compelling resume difficult, the best resumes will still stand out from the crowd. In order to highlight your qualifications, consider using tried and true tactics that impress recruiters in the industry:
- Be specific about your qualifications; detail programming languages, network systems, platforms and other areas that reflect your knowledge.
- Highlight experiences illustrating your original thinking and resourcefulness. Employers seek candidates with strong critical thinking and problem solving skills.
- Highlight any expertise in math that translates to on-the-job applications, such as skill in algorithm development. All computer science grads have strong math skills: take the extra step and present your abilities in a context that will intrigue prospective employers.
- Attention to detail is crucial, as even the most powerful systems can function incorrectly when a single digit is misplaced in the code. Spotlight any relevant history that illustrates your ability to perform within narrow parameters.
- Experience in subjects related to your chosen specialty can also testify to the breadth of your abilities. If you're applying for a programming position, for example, a brief reference to your experience in network administration or hardware troubleshooting demonstrates your versatility.
- Don't neglect soft skills, which carry as much weight as technical ability. Recruiters want to know that you can communicate well with your colleagues, function as part of a team and responsibly manage your workload.
- Contribute to online forums like GitHub and Stackoverflow and participating in professional societies or personal computing projects demonstrate your interest in computer science. Related hobbies and side projects that use your skills are important in the industry. Employers want to see that you're passionate about your work and that you're driven to accomplish new things with your skills.
Acing the Interview
When you've been called to an interview, a little due diligence goes a long way toward impressing a future employer. Do as much research about the company as possible: learn about the position you're applying for, and also about the company's overarching goals and strategy. It's important to grasp the business context of the programming and development you may be asked to do. Learn about the company's product, history, mission, competitors and customers. Understanding how technology helps the company, and on a larger scale, the broader industry, provides a snapshot of what you can expect to encounter on the job.
While you're interviewing, keep these industry-specific points in mind:
- Emphasize your skills. Just as when writing your resume, understand that recruiters are looking for specific computing competencies and transferable soft skills. Highlight projects you've done with tools that the company uses, and provide examples that demonstrate your creativity and ability to work in a professional environment.
- Be forthcoming about your limitations, and don't exaggerate your skills and knowledge. It isn't possible to know every platform or programming language, so don't lie when asked about something you're unfamiliar with. After all, they may test you during the interview! Instead, explain how you plan to learn new skills and programs, and provide examples of how you've learned new material on your own in the past.
- Mention any side jobs and personal projects you're working on. Freelancing experience, participation in a programming club, attending a hackathon, or volunteering at an industry conference all illustrate that you view computer science not only as a job, but also as a passion.
- You may be asked to present a digital portfolio of your work. This is an opportunity for displaying your technical skills, and it should reflect your best work. Your portfolio can take the form of a blog, a website or project pages, preferably with browsable code. Links to open source contributions are a plus.
- At some point during an interview, you'll be asked to demonstrate your skills. This is generally in the form of a coding challenge or a case study presentation that asks you to solve a problem. Don't get flustered or surprised: this is common industry practice.
Freelancing is popular across industries; more than a third of all work in the U.S. is performed by freelancers. Computer science suits the virtual workplace particularly well, as nearly all computing work can be done remotely. Additionally, computing and development projects can easily be structured into a per-contract business model.
Is freelancing right for you?
Pros of Freelancing
- Set your own hours – Freelancing gives you a more flexible schedule than you'll find at a corporate position. Are you a night owl? Take advantage of your natural circadian rhythm and work until the wee hours. Want to have a long lunch with a friend? You’re free to schedule yourself time off whenever you need it.
- Choose your own clients and projects – As a freelancer, you build your own client base. Instead of receiving assignments, you have the freedom to choose your own projects. Do good work and your reputation in the computer science community will grow, attracting more enticing projects and clients.
- Set your own rates – Freelancers don’t need the boss’s approval for a raise: you are the boss, and you choose the rates that you’re paid. As you fatten your portfolio and gain experience, you'll be well-positioned to increase your rates commensurately. Your salary will always be somewhat constrained by industry standards, but freelancers have more flexibility to name their price than employees.
- Lack of benefits – At the beginning of your freelance career, you won't be able to provide yourself with a comprehensive benefits package, so you can forget about medical and dental coverage, a 401(k) plan and paid vacation. For freelancers 26 and older, your freelance career must support your monthly health insurance premiums, which can add up quickly.
- Administrative duties – Running a solo business will give you plenty of administrative responsibilities. You must handle tax obligations, billing, accounts receivable and customer relations. Many freelancers find the marketing aspects of entrepreneurship time-consuming and stressful. Working on a contract basis means that each job has tight deadlines, and you'll always be searching for new sources of income. All of these things take time, and none of them count towards the hours you'll spend actually working.
- Less flexibility than you think – While you may have more control over your schedule than office workers, you're ultimately still answerable to your clients. You may find yourself working during off-hours or on weekends if a project proves more demanding than anticipated.
Additional CS Job Resources
Professional Networking Organizations
IEEE Computer Society
With over 60,000 members, IEEE is the world's leading computer science and technology organization.
IAENG Society of Software Engineering
IAENG offers conferences, workshops and networking opportunities.
Association of Software Professionals (ASP)
Learn from other developers and receive discounts on professional tools.
Computer Science Meetup Groups
This is a central source for meetup groups around the world, and you can use the resource to search for groups in your region.
Google NY City Tech Talks
These cover a range of computer science and software engineering topics. They're hosted at Google’s NYC offices.
Chicago .NET user group
Meetup topics focus on Microsoft. The group also offers a job board forum and a place to network and share information.
LA Machine Learning
Machine learning and data science tracks are discussed here.
The Ethical Hackers Club
Columbia, MD. For all things network, computer security and forensics, the Ethical Hackers Club has you covered.
Online Forums & Collaboration
News for hackers, offering information about start-ups and discussion threads on a variety of computer science topics.
A site for collaboration on open source and private projects.
This site connects you to a community of IT experts and is a great platform for knowledge sharing.
This forum focuses on computer and networking news. A great source for Microsoft issues.
Dream In Code
Discussions, tutorials and job leads among a community of 500,000 developers.
A forum for all things technological.