Live data from Hacker News

Advanced Data Structures (2017)

courses.csail.mit.edu

71–80 of 89 posts

Re: Advanced Data Structures (2017)

#71

As a busy self-learner, when is it time to learn data structures in depth? I feel like there are always 10 other technologies I need to know more urgently (eg, more bash, Linux, testing frameworks, deep learning, c++ libraries, linear algebra, common security mistakes/attacks, OpenGL, etc)

You can have twenty years experience, but if all you learn is testing frameworks, opengl, c++ libraries, etc you never really master your profession. CS fundamentals like algorithms and data structures are much more important to learn in depth. The knowledge stays with you and is always relevant, the latest testing framework, not so much.

Re: Advanced Data Structures (2017)

#72
The data structures look really cool, but I couldn't image example to make use of them in "everyday" software. Would someone give me some example of problems that would be easier to solve with special data structures?

Re: Advanced Data Structures (2017)

#73
post #21

Earlier quoted context omitted.

> "they're just not a skill you need in day-to-day software life (for most people)." I mostly disagree. You won't need to implement them, but a working knowledge of the basics is the basis of any performance analysis and can make a huge difference in system performance in day to day programming. At some point all the small inefficiencies also add up. I would go so far as to say that data structures and basic algorith…

I think we should remember that the vast majority of computer developers and engineers will not, and probably never, work on stuff that requires deep understanding of things like data structures and algorithms, even those with advanced degrees. Most are just, how to put this, IT janitors. To use your mechanic and mechanical engineer analogy: They're not even mechanics, they simply change the oil and light bulbs from…

I guess it depends what you want to work on and what your career goals are. I think my mechanic vs mechanical engineer example is actually a pretty good analogy of actual conditions. You have (many) people learning how to use tools and fix known problems (like mechanics, or e.g. CRUD developers) versus the others that actually need to solve problems with unknown solutions or optimize existing systems (the engineers). Maybe also with known solutions, but with a far deeper theoretical knowledge as a base for doing that.

Yes, the majority of work is on solved problems and we need far more mechanics than engineers. But it's not such a clear cut and a lot of actual software engineers work on solved problems most of their time and only spend a small amount of time on the engineering part (which is probably similar to other engineering disciplines). But when you spend the small amount of time on engineering work these basics are important and I realized multiple times that I could make better decisions because of it. And I'm kind of certain that's the case for most engineers with an academic background or self-taught basics though they might not even realize it.

Re: Advanced Data Structures (2017)

#74
post #21

Earlier quoted context omitted.

> "they're just not a skill you need in day-to-day software life (for most people)." I mostly disagree. You won't need to implement them, but a working knowledge of the basics is the basis of any performance analysis and can make a huge difference in system performance in day to day programming. At some point all the small inefficiencies also add up. I would go so far as to say that data structures and basic algorith…

I think we should remember that the vast majority of computer developers and engineers will not, and probably never, work on stuff that requires deep understanding of things like data structures and algorithms, even those with advanced degrees. Most are just, how to put this, IT janitors. To use your mechanic and mechanical engineer analogy: They're not even mechanics, they simply change the oil and light bulbs from…

From this perspective, which people/roles would you consider to be the software engineering equivalent of a mechanic? How about the equivalent a mechanical engineer?

Re: Advanced Data Structures (2017)

#75
post #72

The data structures look really cool, but I couldn't image example to make use of them in "everyday" software. Would someone give me some example of problems that would be easier to solve with special data structures?

I haven't looked at the site properly yet, bear that in mind, but to answer your question I probably never have used anything 'interesting' in a couple of decades of working in industry, despite giving a lot of time learning about such things - I do find them interesting.

Nearest I might have got was trying to use a bloom filter in a vehicle tracker, but nope.

What learning about stuff generally has given me is indirect, the ability to dig down and optimise because I understand systems. As I read up on eg. sorting I understand that quicksort is very much not the quickest sort and fixed bad performance bugs from its misuse.

Or understanding Btrees so I can get very good performance out of DBs, even if I've never written a Btree and frankly never want to.

Stuff like that. Maybe one day I'll find the need for dynamic programming and learn it properly, until then it's just a waste of time.

But use them directly, no. Surely sux.

Re: Advanced Data Structures (2017)

#76
post #50

Earlier quoted context omitted.

What links are broken? I only know of a single link to a seemingly unimportant file that is broken.

I thought that the single image was a series of links to the different parts of the courses. It's at the top of the page and has 9 distinct icons representing different things that will be taught. It looks a lot like it's there for navigation. When clicking on each of them didn't work, I assumed I couldn't get to the course content.

Yes, this is what I tried to explain in my top-level comment.

Re: Advanced Data Structures (2017)

#78
post #59

Hey! I’m a coauthor with this guy :^). Incredibly fascinating (and extremely smart) dude. His interest in origami is what drew me to MIT in the first place, since I was interested in it as well from a young age. A few years ago I took his class on the computability/complexity theory of folding, and we ended up solving an open problem in the field and published a paper out of it [0]. If you had told highschool me some…

Hi there. What would you suggest to a person who loves these kind of stuff (data structures and algorithms) but finds it hard to develop the underlying intuitions for coming up with these data-structure and algorithm? I personally just hammer down on deliberate practice to recognise patterns and underlying concepts to solve as many problems as I can on my own. I was wondering apart from general DS and Algo what topic…

I recently had someone ask me about a problem in machine learning. The algorithm for it turned out to be something I had read about 30 years earlier, where it was being used to accelerate the simulation of the motion of stars in galaxies. I had never expected to use that algorithm, but its existence, if not details, was there in my long term memory, waiting to surface.

So, I suggest you just read everything you can, getting the gist of things so if you encounter something similar you know where to look.

I also suggest looking for little tricks you can apply again and again. For example, some of the data structures in that course use a trick where you break the structure into a top part, using one algorithm, and a bunch of leaf parts, each of size maybe O(log n), that are handled using another algorithm. Often this combination does better than either algorithm by itself.

Re: Advanced Data Structures (2017)

#79
post #61

Will this be good to study for a FAANG interview?

Having just spent several months preparing for FAANG interviews myself, I would say not - these go far beyond the data structures I'd expect an interview to cover at most tech companies.

Thanks. What study guides did you use?

Re: Advanced Data Structures (2017)

#80
post #76

Earlier quoted context omitted.

I thought that the single image was a series of links to the different parts of the courses. It's at the top of the page and has 9 distinct icons representing different things that will be taught. It looks a lot like it's there for navigation. When clicking on each of them didn't work, I assumed I couldn't get to the course content.

Yes, this is what I tried to explain in my top-level comment.

Ah, I thought you were saying that each link was actually to the same URL. I see now what you actually meant.
Post reply on HN