4 ms·
Yes. Not that you will know every algorithm, but you should know most data structures and at least the common algorithms. One of the biggest weaknesses I cons
by davismwfl 11y ago
Yes. Not that you will know every algorithm, but you should know most data structures and at least the common algorithms.
One of the biggest weaknesses I consistently see is a lack of data structure and algorithm knowledge in developers. Here is why it separates you from the pack IMO. If you have the knowledge, you will not waste time selecting data structures that won't work for the use case long term. This doesn't mean you you will always be perfect, but you'll understand the tradeoffs during design and not have to implement it only to find out it won't really work. Algorithm knowledge goes hand in hand with data structures. If you know you have requirements to produce certain types of results you will change how you store data and which algorithms you use to search, sort and query it.
A lot of things I fix in other people's code is poor choices in data structures and algorithms. I did one a few years back which took a process that ran for about 8 hours to complete and made it run in less than 5 minutes. It was relatively simple, essentially they were trying to use really poor data structures for the type of data and calculations they needed to do and they kept trying to work within those. For my implementation, I modified the data structures and used more appropriate algorithms to accomplish the same thing in what was almost instant to them. Yes, I consumed more memory on application boxes, but it was considerably less strain on the database and network.