Qwasar Blog

The Worst Advice For Computer Science Students and Graduates Right Now

Written by Jennifer Robertson | May 2, 2020 4:29:32 PM

Effects of the coronavirus impact on the economy, jobs, and internships have been resounding continually since lockdown measures began across the country and around the world. There are thousands of university and college students and graduates who either cannot find a job or internship, or perhaps worse, suddenly had their internships cancelled or job offers rescinded.

In following the news, various stories, message boards, and statistics, we have come across some of the worst (and perhaps insulting) advice for computer science graduates and students:

  1. Keep working on your resume, it's a good time to polish it up
  2. Keep looking, you'll get an internship eventually

4 Objections to This Awful Advice

Even the smallest amount of common sense can provide some insight into how bad these two pieces of advice are. Here are 4 major objections we have to this advice.

 

Objection #1: There's a Limit to What 'Working on Your Resume' Will Achieve

We fail to see how working on a resume, a single sheet of paper, for the entire summer will help your get a job. You could run your resume through every resume-improving app and tool out there, and they will improve your resume, but there comes a point of diminishing returns where you should begin pursuing other activities in order to add value to your resume. By all means, if you resume is 4 pages you, you have work to do. If you put your mind to it, you could have a good resume within two weeks, perhaps even 1 or less.

If you already have a solid one-page resume, then what? More tweaking is not going to help: it becomes a question of your experience, projects, and technical capabilities, not how well you sell yourself. To use an analogy, if recruiters want a vacuum that has 6 speed settings, no dust bad, and a 20ft chord, you can spend all the time in the world perfecting your 2-speed vacuum with a dust bag and a very nice 3ft chord: the recruiters still won't buy it.

Objection #2: Simple Economics Says "Eventually" May Be a While

Let's think about supply and demand for a moment, a fairly basic economic concept. Even before the coronavirus job/internship market crash, it was very competitive to get a software internship. There were easily 200 applicants for 1 position. Now, in our new coronavirus world, the number of positions available have gone down, meaning there are even more applicants for a single position.

There's certainly an element of "playing the numbers game" where the more you apply, the more opportunities you have to be accepted than if you simply never applied, but to advise someone to keep looking and that 'something will eventually turn up' is like telling someone to continue attending baseball games until they catch a fly ball: it may be a while, a long while. This isn't really helpful or productive advice, especially for people who simply don't have financial means to sustain themselves for "a long while."

Objection #3: The Market Just Flooded with Experienced Employees

With the enormous amount of layoffs that have occurred and will still occur, there is all of a sudden an increase in the number of software engineers who have software experience and previous employment experience. Let's go back to the supply and demand concept. In addition to a greater supply of engineers, there is also less demand or positions open as companies institute hiring freezes and the number of software jobs on offer declines. This means that the market for an entry level job is even more competitive than before and that recent graduates are now up against people who literally have years of experience on their resume. How will polishing your resume and continually applying help in the face of tougher competition?

Objection #4: We're Missing the Real Issue: How to Make Yourself More Attractive Candidate

Not only do the two bad pieces of advice ignore some basic economic principles and general common sense, they also miss the real underlying issue: how to make yourself a more attractive candidate. We have seen hundreds and hundreds of resumes from CS students and recent graduates, and hundreds of them are quite simply lacking what recruiters want. Any technical recruiter will confirm they are looking for 3 major elements in your resume:

  1. Evidence of strong technical skills
  2. A challenging, professional technical portfolio that shows what you're capable of building
  3. Actual experience building software, seeing the entire software development cycle, working in teams, and using industry tools, languages, and frameworks

After that, the next major evaluation point is the technical interview.

What Makes an Attractive Candidate?

Let's stop for a moment and put ourselves in the shoes of a recruiter. They are looking for people who match the job description they've been given, so they want someone who they know is a low-risk candidate who is capable of doing the job. They're looking for the 3 major elements in your resume:

Strong technical skills

Recruiters are most interested in candidates who have experience with the languages, tools, frameworks in a given job description. This leads us to ask about the average skills listed on job descriptions and postings for internships and Jr Software positions.

Here are some examples copied and pasted from "Junior Software Engineer" job descriptions found on Indeed (today, May 1, 2020):

  • working knowledge of cloud computing or distributed computing environments
  • working knowledge of develop in and operation of Unix/Linux -based servers
  • programming skills in Python or similar languages
  • Comfortable coding in C, C++, Python, Java, Kotlin
  • experience in analyzing and writing SQL queries, stored procedures, relational databases and data schemas
  • posses a thorough understanding of object-oriented programming
  • knowledge of Oracle databases and operating systems
  • ability to efficiently write computer programs
  • an understanding of programming languages, component-oriented development software principles, database management, operating systems and computational processes to automate data collection, storage, retrieval and dissemination
  • hands-on database experience, specifically experience using SQL
  • experience programming with javascript, HTML/CSS, Python, NoSQL databases and experience with NLP, Neural Networks, Optimization Theory, Graph Theory, or Computer Vision
  • ........

On and on the requirements go. The point is that employers are demanding a LOT.

When they say "working knowledge of," what they really mean is "posses a thorough understanding of and has clear, significant demonstrated experience using and building with (which I as a recruiter can look at in their technical portfolio or in their Git account)".

When they say "comfortable coding in," what they really mean is you know the language like your mother tongue and you don't spend most of your day looking things upon google related to said coding language and trying to make your code work because you're not familiar with the syntax and the languages strengths and weaknesses.

Here's a section of a resume from a CS student who shall remain nameless:

Based on the job descriptions, would you consider hiring this person? Or even giving them an interview? In all honesty, their skills seem a bit bare compared to the robustness of job descriptions (and the technical portfolio is lacking too) so they're unlikely to get an interview.

The summary: recruiters and employers want you to have really coded, built real software projects, displayed your software-building competency, and used industry tools, frameworks, and languages so that you are a competent, low-risk candidate (and thus good potential employee).

Challenging Technical Portfolio

Recruiters want to see a technical portfolio on your resume. They want to know the most advanced and challenging things you've built. Your portfolio is an opportunity to show what you can do, what languages, tools, and frameworks you know and have used, and the DEPTH of your knowledge.

You should be able to pull up or link to your code for each item in your technical portfolio which means your code needs to be recruiter-ready.

Software Experience

Software engineers at all levels are expected to, in short, build and maintain software. Undoubtedly there are different sizes, shapes, specialties, tools, languages, etc., but at the core, it's about creating and keeping alive software.

The thing about building software is that it's an art, a science, and project management all at once. It's an experience and if you aren't familiar with the ins and outs of the entire software development cycle, then you simply cannot provide the same value to an organization as someone who is familiar with the development cycle. Experience is so highly valued in the industry because it's so easy to fall into traps, make errors, misestimate scope and timings, such that these errors become very costly to the company (and we don't just mean financially costly). If you don't know that you're behind until it's too late, oops! there goes the software project being delivered on time. Experience helps to counter these small but highly impactful obstacles and challenges in building and successfully delivering software.

Recruiters are thus more inclined to consider a candidate who has demonstrated experience in building and delivering software projects, so the more experience you can get, the better off you'll be because you'll become a lower-risk candidate. Building an app in your free time is good, but it's not quite the same as delivering a software project on a deadline while working on a team with different code bases and communication challenges.

To summarize: recruiters are generally looking for someone with real, applied and apply-able skills in building great software and who can contribute to a team; they are not looking for candidates who got an A in database structures or algorithms but who has never actually built and deployed a significantly challenging piece of software using industry-standard tools, languages, and frameworks.

How to Improve Your Chances of Getting a Job or Internship

You now what recruiters and employers are looking for, and you know what coding and software experience you have personally done, so use these two inputs to figure out what you can do to make yourself a better candidate! Not having an internship or work experience on your resume does not mean that you're simply stuck or resigned to endless job and internship applications for the next 3-6 months.

Some recommendations from our end to help you think through how to make yourself a better candidate are:

  • stop thinking about the classes you could or have taken and the subject areas they cover; start thinking about how much real software and coding experience you have
  • join a structured and challenging coding program to get more coding experience; look for programs that are strong with the back-end
  • don't join a coding bootcamp, especially if you're in a competitive urban location
  • focus on gaining strong technical skills and building a technical portfolio - these count more than whether or not you've had an internship
  • find and build a project that is challenging and complex; a simple app or website is so incredibly common that it does little to set you apart or help your portfolio
  • work on open-source projects as these can serve as part of your portfolio and give you experience in a professional setting
  • code, code, code, and code some more!

Part of the reason why we developed the Elite Summer Coding Program was to offer graduates a concrete and actionable way to improve their candidacy for internships and jobs, especially at a point when companies will have had time to adjust their hiring and onboarding procedures to adapt to remote interviewing and onboarding.

Please, do not sit around and work on your resume for weeks on end, applying for hundreds of positions. By all means, polish up the resume, apply for 10 opportunities a week, but please take active steps to improve yourself as a candidate for software-related roles!

 

*** Note to international student graduates with a Master's in CS:

Following data analysis on over 200 resumes, approximately 35% of job applicants were international students pursuing or finishing Master's degrees and who needed a visa in order to remain in the US. Given the situation of the world and the country's current immigration views, our opinion is that trying to get a job in the US with a visa, even as a software engineer, will be very challenging. We wish you the best and encourage you to consider the reality of the situation and use wisdom.