![]() ![]() ![]() ![]() ![]() But it is almost always sufficient to detect developers who are unlikely to be successful at Microsoft. Is the knowledge in this subject really a sufficient basis to differentiate a good and a bad programmer? There are lots of kinds of computer programming that don't require knowledge of data structures. But like I said before, programming is a huge field. Well it certainly will prevent you from getting a job on my team. It would be foolish to not ask interview questions about it, since that's what we do.ĭoes not having knowledge in Data Structures really affect one's career in programming? There is probably no skill on my team more important than ability to understand data structures at a deep level. Yesterday we had four hours of meetings in which a half-dozen developers argued the pros and cons of adding single Boolean field to a particular tree node. I ask interview questions about data structures because on my team the developers design, implement and manipulate complex data structures all day every day. Why all this emphasis on Data Structures? Those people can still be "good programmers" in their domains. Some of them work on tasks that require a deep knowledge of user interface design, for example. Lots of programmers work on tasks that do not require deep knowledge of data structures. It's tautological that a good programmer is a programmer who is good at building the sorts of programs that need to be built. There is this general perspective that a good programmer is necessarily a one with good knowledge about data structures. If you're unable or unwilling to change that about yourself then my recommendation is that you don't apply for a job that requires facility with data structures. It's good that you know that about yourself. I must confess that I was not so strong in data structures Recent graduates, most of whom do not have a lot of real-world experience, are not expected to be good at the same sorts of things that someone with fifteen years of industry experience would be good at. It is particularly the case that interviews are biased towards testing knowledge of data structures for recent CS graduates. But ability to understand data structures certainly is a very big one. Ability to deal with ambiguous specifications, for example, or ability to recognize coding patterns that produce insecure code, or a dozen other things. Someone who takes a long time to learn a new framework, API or language will not be a successful developer on most teams at Microsoft.Īnd of course there are many more aspects that we focus on in interviews other than just raw knowledge of data structures. For example, we also expect that you be a quick learner who can learn new frameworks, APIs or even programming languages within a short amount of time. It appears as if data structures is the only thing that they expect from a graduate. Most of the biggie tech companies like Microsoft focus mainly on data structures. So really why all this emphasis on Data Structures? I did not want people to look down upon me for this knowledge deficit of mine in Data Structures. Probably because of my Java background, back then, I understood code efficiency and logic only when talked in terms of Object Oriented Programming like objects, instances, etc but I never drilled down into the level of bits and bytes. But the companies usually focused on the intricate aspects of Data Structures like pointer based memory manipulation and time complexities. I follow standard design patterns of coding, I do use data structures but at the superficial level as in Java exposed APIs like ArrayList, LinkedList etc. Throughout the campus placements during my graduation, I've witnessed that most of the biggie tech companies like Amazon, Microsoft etc focused mainly on data structures. I must confess that I was not so strong in data structures when I graduated out of college. It is not currently accepting new answers or interactions. This question and its answers are locked because the question is off-topic but has historical significance. ![]()
0 Comments
Leave a Reply. |