A fascinating study conducted by the tech recruiting firm Triplebyte was recently published on InfoWorld. Triplebyte gave the same technical interview to both coding school graduates and university trained computer science majors without knowing who was whom. The results found that coding school grads are stronger at web programming and writing clean code, while their university trained counterparts are stronger (a lot stronger) at data structures and algorithms, as well as understanding how computers work.
To me it’s obvious why this is the case. College computer science curriculum is very much about the more theoretical computer concepts, which is consistent with the academic nature of universities. Coding schools, on the other hand, are vocational schools, and focus almost entirely on producing web developers who are ready to join the workforce.
So it’s really not a matter of which school is more effective. Each one is effective in teaching the concepts that it sets out to teach. Of course, the fact that coding schools take a few months while university programs take a few years is impressive.
(I do have an interesting hypothesis, however. I believe that: A) If coding schools wanted to teach data structures and algorithms, they’d do so successfully. B) If universities wanted to focus on teaching vocational skills, they’d flop. I’ll explain this in Part 2.)
What does this mean for the job prospects of each type of graduate?
I strongly agree with Triplebyte’s analysis of the data. For companies that focus on computer-sciencey stuff, like self driving cars, a thorough understanding of computer science fundamentals is important. However, for day-to-day software development, the practical skills taught by coding schools are more relevant.
But here’s what I can’t understand: Why does any of this matter? A company hiring entry-level developers is presumably (or at least they should be) hiring them with the assumption that this is an investment. It’s impossible for anyone entry-level to have every skill from the outset. For some tasks, they can hit the ground running, while for others, they’ll need some time to develop their skills. This is true for both graduates of universities and coding schools.
Over time, a coding school grad can learn and pick up data structures and algorithms, and a university grad can pick up coding best practices. Do we believe that people can’t pick up new skills beyond what they’ve learned in school? I didn’t think so.
Companies that wouldn’t hire a coding school grad because they lack certain knowledge of data structures and algorithms are short sighted, especially if those concepts aren’t being used day-to-day at that organization. And corporations that don’t hire university grads because they may take longer to hit the ground running with modular code and unit tests are equally myopic - these hires will pick up these concepts in short order.
I’m fully aware that short-sighted companies exist. To that end, I’ve written a book on data structures and algorithms for our graduates that make these concepts accessible. While most textbooks and articles on these topics are written in obtuse and intimidating language, the dirty little secret is that there’s nothing difficult about data structures and algorithms. Any coding bootcamp grad can understand my book, and I’d venture to say that university grads may also have an easier time grasping this knowledge if they read it.
I’m revising the book now for publication by The Pragmatic Programmers - it should come out in the first or second quarter of 2017. This way the arcane "dark arts" of data structures and algorithms can be revealed to all.
Make sure to book a tour here to see if coding is a good fit for you!