|>> || >>37926 |
I took studying advice from that guy too, some of it worked, though I find his site way too spammy, for example the entire front page is filled with clickbait, and shameless 'preorder' selling of vapor books. I understand the hustle of self promotion and can forgive the most egregious self-shilling but preorder cancer and clickbait is unforgivable, especially when he should know better since he did actually take those MIT classes and learn statistical analysis. I think what happened is I took too many statistics courses so then my thinking changed, I'm no longer convinced what worked for me will work for everybody else so I try not to promote my specific methods as hard as I used to, and I promote proven results, which is why now my little meme list is filled with Shriram Krishnamurthi, NJ Wildberger material and the guy who wrote 'Infinite Descent , an introduction to pure mathematics' because they all promote evidenced based teaching. This is of course the consequence of taking these courses, you start to question every claim somebody makes without proof.
For example this is a hard pill to swallow for all math students: https://infinitedescent.xyz/20180214-exercises-ibl/ but it's proven to work, and it's how I learned. The courses I took for the most part didn't have any solutions, so what I did after proving something is I asked somebody: is this correct, after trying to prove it was correct myself. Turns out, just formulating the question helps you learn more than looking up an answer, which can be completely different in the world of proofs. Usually what you do in an upper level undergrad math text is you look at the example proofs, and then from their example, try the exercises using the same methods, and usually this will work but sometimes it won't, and you need to ask somebody. So I whole heartedly endorse your discord channel if the goal is to ask 'is this pile of logic I wrote illogical' and then get advice to fix the proof. To me this is the great feature of stack exchange, access to mathematicians because nobody checks email I've found, and I don't blame them because they're active professors who probably get hundreds per day.
As for your specific question, I would not underestimate your upcoming semester and I would use the time to do a lot of supplementary difficult problems out of whatever material they're working from, in other words I would try to prove everything in their course and stay within the confines of the course, not seek extra material, but rely on their expertise to 'level up'. Hell I would TA if you already know it, explaining these concepts to somebody helps you 'level up' as well. You get some nice recommendation letters if you do this, meaning very expensive grad school completely paid for via grant potential. You can also hustle invites to special programs by TA'ing, like the Oregon Programming Language Summer School is all based on professor recommendation, I would absolutely get into that and then hang out with the top people in that field (if you're interested) who will in turn, encourage you to be their PhD students and furnish approval.
The 6.042 class is pretty good, I liked the lectures from 2010 on induction and the hilarious possibly apocraphyl story about the Pythagorean sect throwing some guy over the boat to kill him because he exposed root 2 was irrational after they tried to cover it up and pretend irrationals didn't exist. Personally I think you should combine the CMU 15-251 course with it, because they cover much more material, so 6.042 as the primary course, doing all the exercises they assign but then dipping into 15-251 to learn Godel's incompleteness theorems, some of the crazy Turing theorems on the halting problem, or their complexity theory lectures, since both the guy's doing the 15-251 lectures are active in complexity theory research and are a goldmine of information. The competitive programming classes are interesting but keep in mind they do physical competitions, not the online ones, which are trash. For me competitive programming is going on a freelancer site and grabbing every single contract then banging out an elaborate hack, calling it a MVP and collecting all the money. I'm not interested in capture the flag or anything else, unless of course I was on a physical team, which all the CMU students are. The Topcoder competitive programming environment is filled with bugs and the rest have numerous other problems, like Kaggle. But if your school sponsors or you want to create a physical competitive programming team (you should) to show up to one of the real events, you should definitely do it w/the CMU material they usually win or come in 2nd IIRC.
Algorithms nobody will like my answer, since The Art of Computer Programming, esp 4A, Combinatorial Algorithms (finite, discrete math that's easy to reason about), and the slightly unapproachable, depending on your background, Kozen's Design and Analysis of Algorithms, and the CMU book on parallel algorithms, is how I learned. Both require extensive prereqs except the CMU book, which you could try (the 15-210 book). You don't really have to understand the ridiculous analysis and just be able to pinpoint areas of some program where you can split the work up and learn about span, which are both easy concepts anybody can learn. Unfortunatley TAOCP 4a generally req that you know the first volume as well, so is totally inaccessible but somebody wanting to just jump in the parallel and sequential 15-210 book is possible to figure out and I use the methods from there all the time. The Kozen methods I've only used a few times, when I had to be sure what I made was better than the original, which required a lot of careful analysis and he spells out what to do but it wasn't easy, I have much more respect for the people who do this full time. Although TAOCP gave me what I can call a solid background to understand what was going on, I've only ever used it specifically in practice when we programmed a series of RISC-V chips for a data pipeline, which I've since replaced by watching the OPLSS (Oregon Programming Language Summer School) lectures on network programming where he showed how to build your own DSL to split a network and manipulate it. Where I am we decided it was better to work more securely isolating things than working as fast as possible but if you're someplace where as fast as possible is primary then Knuth plus RISC-V you probably can't go wrong. My understanding of RISC-V is just introductory too from that MIT course/book, and looking at the documentation, I'm not an engineer, and I"m not involved in HPC so take my advice with a grain of salt.