What’s one thing C-Suite tech executives, recruiters and your plaid-jacket-wearing high school guidance counselor all have in common? They’ll all tell you there’s never been a better time to be a computer science graduate.
The Bureau of Labor Statistics estimates software developer jobs will grow by 24% in the next eight years (compared to 7% for overall job growth) and with only 50,000 new computer science grads entering the job market each year, demand is outpacing supply.
The results, according to Paysa data, are some of the best paying jobs available. Software developer jobs average a $110,000 market salary including a substantial base, bonus and company equity. Comparatively, the overall average starting salary for a bachelor’s degree graduate in 2015 stood at only $50,000.
Average software developer market salary, per Paysa data.
Tech companies going head-to-head in the battle for top-tier talent extend perks far beyond salary and equity. In an effort to remain competitive, companies are pulling out all the stops, including everything from three meals a day and on-site laundry services for employees to baby bonuses and rooftop dog parks.
With software developer job demand so high, many computer science graduates expect to waltz out of the classroom and into a long line of potential employment opportunities. But here’s the thing: while computer science graduates may be more setup for post-graduation success than your average 22-year-old with a bachelor’s degree in-hand, the process of interviewing and securing a job still requires research, preparation and the desire to work hard and prove yourself to a potential employer.
Here’s everything you need to know to crush your software developer job interview as a recent computer science graduate.
Gain experience outside the classroom.
Despite the high price tag attached to many bachelor’s degrees, here’s a harsh truth: your education alone likely won’t land you your dream software developer job. Top-ranked companies are looking for more than just time spent in the classroom; they want to see your passion and skills in action.
That’s why getting involved in projects that demonstrate those skills is a critical first step towards landing an interview with top tech companies.
Dan Kegel, a former software engineer with Google who interviewed hundreds of new graduates during his six years there, highlights the importance of gaining “real-life” programming experience outside the classroom.
“[I]f you want to get a job programming, you have to do some real programming on your own first, and you have to get a public reputation, however minor, as a programmer,” Kegel states. “College courses in programming are fine…but most programming courses don’t provide the kind of experience that real programming gives, and real employers look for real programming experience.”
Kegel recommends getting involved in open source projects as an easy yet impactful way to demonstrate some critical experience. In as little as one work week, a talented computer science graduate could take on a piece of an existing project and make valuable contributions that would have a lasting impression on the project and his or her career.
One of the huge benefits of working within open source projects is the immediate exposure to prospective employers. As Kegel writes, “when prospective employers Google you, they’ll see your code, and they’ll see that it is in use by thousands of people, which is always good for your reputation.”
Next Steps:
So, as a recent grad looking to get involved in open source projects, where can you go to get started?
Check out OpenHatch.org. OpenHatch is “a non-profit dedicated to matching prospective free software contributors with communities, tools, and education.” OpenHatch will introduce you to the fundamentals of open source, provide ongoing education on programming topics and best of all, get you started on contributing to some existing projects through quick “bite-sized bugs”: small tests and fixes that can quickly pad your resume with valuable real-world programming experience.
Know the basics, inside and out.
Most software developer job interviews are going to start with testing your basic understanding of the fundamental skills needed to be successful in the position. Paysa is a great starting point for determining the skills you need to focus on. If you’re interviewing at Microsoft for example, Paysa provides insight into required skills for Microsoft software developer jobs, arming you with critical information to ensure you’re ready.
Skills prerequisites for Microsoft jobs, per Paysa data.
Here are some basic skills every computer science graduate should know and be prepared to discuss in an interview:
- Big-O complexity analysis: What is it and how is it used?
- Sorting alogrithms: Know how to sort, preferably in two or more different ways.
- Hashtables: How do they work? Can you implement one using only arrays?
- Trees: Basic construction, traversal and manipulation algorithms. Know how to implement balanced binary trees.
- Languages: Know at least one coding language really well.
- Recursive Functions: Know how to solve a problem recursively.
Next steps:
Search Paysa, for the company you’re interviewing with to determine the skills required for the role. Talk with friends and fellow alumni about the skills they’ve been asked about in interviews.
It’s all about how you think.
“How many manholes are there in Manhattan?”
“How many jellybeans could fit in a 747?”
Books have been written about the complex brain teasers top-ranking tech companies will throw out in an interview to try and assess your problem-solving skills. And while some tech giants have started to move away from these seemingly impossible puzzles, computer science graduates interviewing for software developer jobs still face questions where unraveling your thought process is the true intention – not finding a “right” answer.
Theoretical questions like Andrew Oliver’s, “[i]f I have a web application that I find is still running…but users are getting ‘connection refused’ when trying to access it, how would I go about diagnosing the problem?”
Or: “[g]ive me an example of a time you had to take a creative and unusual approach to solving a coding problem. How did this idea come to your mind? Why do you think it was unusual?” from Devskiller.
When faced with these types of questions, here are some essential tips for success.
- Slow down. Because the question is inherently designed to be more complex, there’s no pressure to spit out a quick answer like you would if asked the difference between Java and C++. After your interviewer asks the question, repeat it back to him/her in your own words to ensure you understand what was asked (and to buy yourself a few seconds to get the thought process started), pause, digest the question and then get going on formulating a response.
- Think out loud. It may seem obvious, but if the purpose of a question is for an interviewer to learn how you think, it’s important you tell them what you’re thinking. That little voice that’s walking you through the problem-solving process needs to make its way through your brain and out of your mouth to demonstrate exactly the way you’re going about your answer. Added perk: no awkward silence as you formulate an intelligent response.
- It’s okay not to know. Like the manhole or jellybean puzzles, a question posed may be too complex or just something you frankly don’t know. Again, it’s all about the journey here, not the destination. It’s perfectly acceptable to preface an attempted response with, “I honestly don’t know, but here’s what I think … ” In fact, that bit of honesty and humility isn’t a knock against you, but rather a demonstration of your confidence. Furthermore, asking your interviewer for help or their opinion – particularly with a technical question – could be a great way to demonstrate your ability to work collaboratively and openness to new ideas.
Next steps:
Search for common behavioral and technical theory questions asked in interviews for software developer jobs. Ask a friend or family member to practice the process with you; thinking out loud doesn’t come naturally and a little time invested in preparing before the interview will go a long way.
Basic interview etiquette still applies.
As a computer science graduate, your knowledge and experience are valuable, but not so valuable that interviewers are willing to overlook basic qualities that determine whether or not you’re a good cultural fit for a company or if you’d work well with an existing team.
We’ve all heard “you never get a second chance to make a first impression,” but with research indicating that some first impressions are made in the blink of the eye, your presentation and preparedness can go a long way toward helping you succeed in an interview.
Here are some basic interview etiquette tips to follow:
- Dress for success. Looking professional and presentable is a critical first step in making a quality impression on your interviewer. While some tech companies have adopted casual attire policies in the office, it’s the wrong move to show up in jeans and a hoodie (even if that’s how your interviewer is dressed). Dress in a way that shows you’re taking the opportunity seriously and have put time and effort into your presentation.
- Exude confidence (not arrogance). As a recent graduate, it’s natural to feel intimidated you’re when face-to-face with experienced developers in an interview. The key here is confidence: yes, you are more junior, but you’re bringing a lot to the table. Candidates fresh out of school are agiler, can bring fresh ideas and new perspectives to projects and don’t have to unlearn bad habits picked up from other companies. Best of all, you’re ready to learn. Instead of being afraid you don’t know enough, express how excited you are to potentially be joining a team where you know you’ll constantly be learning.Of course, remain humble in the process. There’s a fine line between confidence and arrogance; it’s important your interviewer knows you’re not afraid, but equally as important that they aren’t concerned about your ego or ability to work with a team.
- Research the company and prepare questions. Take the time to dig deep into your prospective future employer, both as a way to show you care about the opportunity and to ensure their mission, values, and culture align with your passion and interests. Research the executive team; spend time reviewing your interviewer’s background and experience; be aware of news and recent events involving the company. Come to the table prepared with your own questions about the company, its culture and the role for which you’re interviewing, such as:
- What are the company’s highest priorities right now?
- As a more junior developer, how much influence can I expect to have on your product/service in my first year?
- What’s the dynamic of the team I would be joining? Are there other junior developers currently on the team and if so, how have they adapted to your organization?
Next steps:
Spend time digging deep into the company’s website and set up Google Alerts based on their company name to get the latest information on events impacting the organization. Use Paysa to research the salaries, skills and hiring trends you need to be prepared for your interview.
Average Microsoft salaries, per Paysa data.
Be ready to code.
More often than not, the final stages of your interview process will be used to put your skills to the test. Nearly all companies are going to want to test your coding ability before extending an offer, so it’s important you’re prepared to dive in and live code at any time in the interview process.
Here’s what to be aware of when coding in an interview for a software developer job:
- Don’t be a perfectionist. Much like the complex, theoretical questions discussed above, a coding interview isn’t necessarily designed to analyze the quality of your code. As Ammon Bartram writes, a good programmer solves large, complex problems over weeks or months; a successful interviewer, on the other hand, usually has less than an hour to solve “small problems quickly, under duress, while explaining [his] thoughts clearly.”So is it important for you to know proper syntax for the language you code in? Of course. But during the interview, what’s most important is offering an ideal, long-term solution and then implementing the small, quick solutions that would help you get there.
- Ask questions and create a dialog. After being presented with the problem you’re tasked with solving, it’s common for newer interviewees to panic. With the spotlight on and the timer counting down, the pressure can be immense and you might feel the best thing to do is dive right into coding on the whiteboard.That’s a mistake. Instead, take a deep breath and get a dialog going with your interviewer. What questions can you ask that would provide more clarity about the problem? What’s their input on your proposed solution?Taking the time to converse with your interviewer demonstrates the complexity of your thought process while also showing how well you collaborate and take on new ideas. An engaged interviewer is more likely to even offer unsolicited advice, so treat the coding interview as a conversation, not a one-man show.
Next steps:
Brush up on your basics using a tool like CodeRust. For $49.00, you gain access to over 80 different interview questions from top-ranked tech companies with accompanying code and illustrations intended to guide you to success in your interview.
Conclusion
As a recent graduate, there are few things more intimidating than diving into the job market. But as a computer science graduate, you’re entering into a field with unlimited possibility and tremendous earning potential if you’re willing to work hard and prepare for your interview.
We’re here to help. By leveraging the tools available to you via the Paysa platform, you can enter the job market with confidence because you will better understand the skills you need for different positions. Visit Paysa.com to get your personalized recommendations today!