4 ms·
Most "senior developers" I know don't know much about data structures. Standards are pretty low in the industry. One reason might be that optimizing for memory
by virtualized 9y ago
Most "senior developers" I know don't know much about data structures. Standards are pretty low in the industry. One reason might be that optimizing for memory consumption or handling "large scale data" almost never happens in practice.
- baruch 9y agoI never had a software development job where optimizing memory consumption and handling large scale data (for whatever definition of large was for that particular system) wasn't a necessity. It was also useful to know when these measures were and weren't needed depending on the context in the system. I do mostly what's called "systems programming" and did embedded previously but also did some work on "normal" software but in all cases it was useful to care memory, data structures and performance at some levels of the system.
- ubernostrum 9y agoI do mostly what's called "systems programming" and did embedded Sure. And what's most crucial to do in those fields is not necessarily what's most crucial to do in other fields. 99% of interview horror stories are basically someone saying "I decided this is an important thing based on my narrow perspective, and anyone who doesn't know it as well as I do will be dismissed as completely incapable".
- seanwilson 9y agoIf you're already good at programming and didn't learn computer science foundations along the way it should literally take you a few hours to understand the majority of the core data structures. I don't understand why people complain about common interview questions when you can readily learn the answers in advance.
- watwut 9y agoI agree with what you wrote in theory. But when the narrow perspective is clearly shared by majority of employers and simultaneously it takes like a weekend max to refresh linked list, bubble sort and other few shared datastructures, then the test basically boils down to "are you able to learn this". Which is imo fair test.
- virtualized 9y agoI work on embedded devices and no one really cares whether changing a setting takes 30 seconds or 30 milliseconds. It does not matter that most of the RAM is wasted by unnecessary copies of unnecessary data. People still buy these devices as long as they solve a problem at the end of the day. I personally don't agree with this reasoning, but that's how businesses operate.
- seanwilson 9y ago> Most "senior developers" I know don't know much about data structures. Standards are pretty low in the industry. Even if standards were low, the point of an interview is to gauge the standard of the developer. Algorithms and data structures knowledge is important.
- Bahamut 9y agoHow important though? Rarely does it come into play from my experience, at least for those who work in predominantly the UI layer on the web. Even at my job at Big Co. as a senior engineer (algorithms/data structures knowledge is necessary to pass the interview process here), it hasn’t manifested in a significant way, at least not compared to other skills such as architecting systems for maintainability, identifying the cause of bugs & fixing them, and collaborating with other engineers to implement something the best way possible.
- seanwilson 9y agoI'm not saying it's impossible to code without knowing this stuff, just that it gives you an edge as it helps a lot when you have to deal with memory and speed constraints. If you're coding UIs for web apps, you're probably not going to run into issues unless you're dealing with large collection or collections where the record sizes are big. If you're writing backend processes, mobile apps, games, embedded apps, graphics processing apps etc. knowing algorithms and data structures is important. Would you really want to work with an architect who had no understanding of algorithmic complexity, linked lists or hash tables? An architect needs to know how to design something that will scale to the data involved; I don't see how you can do that if you're ignorant about basic data structures and algorithms.
- virtualized 9y agoIf a backend process is slow, you buy another server, install Hadoop or something and call the whole mess "big data". Mobile apps are known for taking ages to load and for taking too much space. They usually block on network requests and are eager to throw information away before blocking on a request to fetch the same information again. Embedded applications know what hardware they are running on, so they can waste all of the available resources. Extending them later is often very difficult due to that. In realtime graphics the required knowledge is very specific to realtime graphics. 101 algorithms won't help you at all. In non-realtime graphics, who cares? Let's spend this quarter's budget on a redesign of the progress bar so that we can have meetings and beautiful powerpoints.