News for hackers. Stuff that matters.
Re:Ask HN: How Sound Is the “Teach Yourself CS” Learning Res... by dilippkumar on Monday February 10, 2020 @12:36AM (#22286651)
FWIW, when I was trying to rid myself of similar insecurities, I went through a bunch of courses like this one, but none of them worked out for me.

The challenge was that the textbooks and material that is popular among University CS courses leave a lot of unanswered questions that I couldn't get over. For example, when I came to hash tables while studying data structures, I couldn't figure out how the hashing functions did their magic. Every book or online lecture I came across showed how to use a generic hashing function and moved on to dealing with hash conflicts. I couldn't move on because I kept coming back to questions like "ok, but why this hashing function? If I change my data a little bit, is this still the right hashing function to use? How can I tell?"

Somehow, people who had formal education managed to sail past these questions. I suspect that having someone to answer these questions when they came up played a crucial role in them understanding the material.

My point is, some of these materials are almost deliberately designed to be consumed with an instructor who can answer questions. Especially for the difficult courses.

In the end, when I was teaching myself the basics, I had to go hardcore and pick up TAOCP to keep up. TAOCP has a reputation for being a very dense reference book and being unsuitable for self study - but I found the opposite to be true. Prof. Knuth painstakingly covers every minor detail leaving nothing unaddressed. (His treatment on hash tables has several pages on hashing functions that gave me a clear understanding of how things work). I would recommend following that path if you are trying to study the basics without formal instruction. It's a little harder, but you are more likely to end up successfully digesting the fundamentals and move on to more advanced topics.

Today, I have fully rod myself of insecurities, and I have developed a habit of going to the most comprehensive treatment of a topic if I'm trying to teach myself something difficult. For easy subjects, textbooks popular in Universities is usually good enough. For difficult stuff, I prefer going hardcore.

Be aware of textbooks designed to work with formal instruction.

Re:Ask HN: How Sound Is the “Teach Yourself CS” Learning Res... by eru on Monday February 10, 2020 @12:49AM (#22286700)
Sounds like you would make a good mathematician.

I had a very similar reaction to the much vaunted 'Algorithm Design Manual'. It was all fluff with not much substance.

I found http://jeffe.cs.illinois.edu/teaching/algorithms/ pretty good for an overview over Algorithms.

If you like something in a similar vein to TAOCP, the book 'Combinatorial Optimization' by Alexander Schrijver fits the bill. It teaches you everything you ever wanted to know and then some on the mathematics behind problems in P. Just like TAOCP it is also a detailed overview over known results. See https://homepages.cwi.nl/~lex/files/book.pdf for the list of contents.

Re:Ask HN: How Sound Is the “Teach Yourself CS” Learning Res... by epelesis on Monday February 10, 2020 @02:22PM (#22292270)
I'm taking Jeff's 473 class right now and if you like his writing style, all of his lectures for both algorithms classes he teaches are online as videos - it can be a good companion to the textbook if you want worked examples. [my video] links should be raw MP4's that are not password protected.

374 (Introduction to Algorithms Videos): https://courses.engr.illinois.edu/cs374/fa2019/A/schedule.ht...

473 (Algorithms Videos): https://courses.engr.illinois.edu/cs473/sp2020/lectures.html

Re:Ask HN: How Sound Is the “Teach Yourself CS” Learning Res... by eru on Monday February 10, 2020 @11:50PM (#22296153)
Thanks! I don't really like videos for math-y content, but I have recommended his books to people who will definitely appreciate the videos.

Btw, I tried to reach out to Jeff for a linear time solution to an exercise in the chapter on matroids in section 8.2. It's about 'Scheduling with Deadlines', and his best solution is O(n log n).

But alas, I never got a reply.

Re:Ask HN: How Sound Is the “Teach Yourself CS” Learning Res... by whycombagator on Wednesday February 12, 2020 @01:58PM (#22311614)
For those interested in hash tables I found the Hash Tables section of Crafting Interpreters pretty good[0]. It has a section on hashing, which supplemented with this SE post[1], I've found to be comprehensive enough. Of course, if you aren't familar with binary/basic bit manipulation, you may still find the internals of the hashing functions mentioned slightly confusing.

[0] https://craftinginterpreters.com/hash-tables.html

[1] https://softwareengineering.stackexchange.com/questions/4955...

Re:Ask HN: How Sound Is the “Teach Yourself CS” Learning Res... by xmprt on Monday February 10, 2020 @02:14AM (#22287042)
I haven't ever had to worry about how hashing functions work beyond knowing a few of the basic qualities of a good hashing function. I guess most students were like me in that they don't worry about those details because even though you call them fundamental, I think most programmers get by perfectly fine without knowing how a hash tables works as long as they know how and when to use one.
Re:Ask HN: How Sound Is the “Teach Yourself CS” Learning Res... by commandlinefan on Monday February 10, 2020 @10:52AM (#22290119)
I did have a formal CS education, and I still got a lot out of TAOCP even years later. You’re right that it really covers details that you just can’t find anywhere else, and every single exercise has worked-out solutions in the back, unlike a lot of the pretentious textbooks out there.