When would I hire a graduate

2 min min read - October 1, 2018

Let's face it: there are not enough opportunities for people with little commercial experience when at the same time there is massive undersupply of experienced developers. There is no way around it. Companies need to hire graduates and juniors and keep them as long as possible. Only that can keep the situation healthy and fair. But at the same time business is not a charity and we need people to be productive. There are many boot camps that promise you to get a job. Some of them work. I can believe someone after intensive React course can be productive for example for agencies. But that doesn't work for everyone. In most of our projects (in current and previous companies) we needed more flexibility and ability to learn than just given set of tools. There is a massive difference between being able to build a countless number of nice and performing UI using a predefined set of good tools and being able to build scalable and complex software systems. That's why React is good to find the first job that pays, but NodeJS is a way to get a well-paid job in the long run (even despite crazy React rates). Below I list things (virtues and knowledge) that if I find in graduate I vote for taking person immediately:

  • git - what is a repo, what is a commit, how to do a diff and a pull request; what is a merge and what is a rebase; where changes are physically
  • javascript - what is scope, clousure, block, context; what is an event loop and what does it mean there is only one process
  • async - what are events, callbacks and promises; in which order code (written without async/await) is being executed when we use them
  • native types - how casting and coercion works; what and how we can use map, forEach, filter and reduce on arrays
  • CSS - what does it mean styles cascade?
  • networking - what happens when you enter an URL in your browser? What is a DNS? What is CORS? When a browser performs OPTIONS request?
  • stack - discuss in case of React/NodeJS application what happens in the browser, what on the server side? What reads/writes from/to the database?
  • HTML - how it renders? What is a HEAD tag? How to find what files have been loaded in the browser and, if they are cached.
  • Debugging - given error in the developer tools console I want a candidate to find where is line causing the error.

Last but not least important:

  • humility, ability to take criticism and will to learn
  • team focus and will to resolve conflicts ASAP
  • understanding that development is not only new cool stuff but maintaining and paying legacy debt

That is quite a list and quite detached from "I know how to build React app from A to Z", but it's minimum that allows me to work with a graduate/junior/student. It makes me able to explain more complex problems, patterns, frameworks. It makes possible to send the person to learn something from MDN, Stack Overflow, etc.. It's like an alphabet for learning JavaScript. Unfortunately, a lot of people start with memorising Shakespare, before learning how to read fluently.