4 ms·
While you can get away with only basic algorithmic skills and I also agree with your points about being able to ship/talk to users/etc I think that having decen
by edem 9y ago
While you can get away with only basic algorithmic skills and I also agree with your points about being able to ship/talk to users/etc I think that having decent algorithms & data structures skills is essential for a developer. For example I have worked on projects where people were not able to ship a product for a year with 10 people and our new 3-man team shipped within 6 months just because we figured out that an algorithm solves the problem. You just can't do well in some contexts when you don't have the ability to figure out whether the problem you are struggling with has a well-known solution. I think it all boils down to having at least a decent ability in all areas (like product management, soft skills, math, etc) involved in order to be able to be productive in all environments.
- nsxwolf 9y agoYou can have decent algorithm skills and not be able to demonstrate that in an interview environment. You get more than 20 minutes in the real world and you're allowed to do research. Most algorithms that developers will commonly need to use already exist and the skill is not developing algorithms but recognizing which to use and when. Understanding it enough to adapt it to specific needs. That's not the skills interviews test for.
- edem 9y agoI did not say that you have to implement it. You just have to know which tool to use. And in most cases you only need a `Map` or a `TreeMap` or stuff like that.
- sidlls 9y agoCounter-point: I am the technical lead on a team of 8. We ship a new data science product (or major enhancement to an existing product) about every 9 months, from inception through putting it in maintenance mode. Our products generate double-digit multiples of my team's costs in revenue and have a reputation for being the easiest to implement and most stable for our customers. We have one CS guy, who is a junior engineer, and he doesn't even have a Master's degree. I can't remember the last time an in-depth discussion about which data structures or algorithms to use actually came up in a design, or even mattered too much in the end. The reason, as I see it, is simple: the engineering work the Principal Engineer and myself, with our juniors we mentor, do, is far more important than data structures and algorithms trivia. Once it gets to the point of deciding which of these to use the real problems have been solved already. Now, these choices aren't unimportant: the choice of a bad algorithm or data structure might cause problems, but they're choices that are in the main easy to understand and make when compared to the thought that goes in to the rest of the system.
- edem 9y agoThis is not a counter-point. This is what I have said: > You just can't do well in some contexts This means that your project is either simple enough that you don't need to know advanced CS or someone on your project actually has that knowledge. I've also said: > I think it all boils down to having at least a decent ability in all areas involved in order to be able to be productive in all environments. So it seems that you are barking up the wrong tree. My point is that you need to have decent knowledge of all related areas to your project in order to be able to meaningfully contribute and this statement still stands. If you write an useful CRUD application you don't have to know how a hashtable works.