DEV Community


Discussion on: Ask the engineering manager: career development paths in tech companies from junior, through senior, to staff

gergelyorosz profile image
Gergely Orosz Ask Me Anything

On computer science, I'm unsure what you meant by the question. Computer science and the tech industry are close: the tech industry is built on top of computer science fundamentals. While it's possible to code without understaning these fundamentals, the more experienced one gets, the more they run into parts of it, and the more they tend to self-learn things.

Data structures and algorithms are an area every engineer needs to understand, in order to work at a tech company, that has these as an entry-level requirement. I am less fan of algorithms, and am seeing some companies (like Uber) place far less emphasis on this. However, data structures are key, both at interviews, and it's a frequent thing you use day-to-day, when deciding e.g. how to represent data in-memory.

Tech companies try to gauge how well someone can code in an hour. Data structures and algorithms questions work well great with this kind of constraint. It also means hiring for people who can go beyond frameworks, and could (and sometimes do) re-implement these from scratch. It's a useful skill to be able to cut though abstractions, all the way to primitve data stuctures that the language supports.

Leetcode is the most popular way to prepare for these interviews. With an industry, where for every position at a decent tech company, there are easily 10-100x qualified applicants, this is the homework people need to do, in order to demonstrate coding on the spot. Nailing the coding / data structures / DS&algo interview is the new minimum bar to make it into many of these places. I'm not a huge fan, but I also put in my time to prepare for them, and this is how I made it into e.g. Skype and Uber and to offer stage at Facebook. It made me a better engineer to some extent, and it's a widely advertised criteria at these companies.

The fact that these interviews are prominent, and spreading, is a sympthom of fewer junior jobs being available with little to no experience. It also shows that companies are able to fill these jobs this way. My advice is to beef up your data structures&(basic)algorithms knowledge. Do it once, and this knowledge will make switching jobs, or getting into better tech companies much easier. It's also knowledge that won't grow stale anytime soon.

(PS: this has been the case for large tech companies, see Get That Job at Google from 12 years ago, which is still just as timely as back then)

robinaspman profile image
Robin Aspman

Thanks for the answer, tons of value!