4 ms·
Rarely have I seen such garbage getting so many github stars. It seems to be all signaling of how clever the guy who wrote it is, without any actual substance t
by mihaic 2y ago
Rarely have I seen such garbage getting so many github stars. It seems to be all signaling of how clever the guy who wrote it is, without any actual substance to back it up. There is literally no way for anyone to get anything meaningful out of such an information dump. Even if you could memorize all the information, internalizing it takes years.
It's pretty much the reverse of Peter Norvig's best article, Teach yourself programming in 10 years [1]. If you haven't read it, I'd recommend you do to cleanse your palette.
[1] http://norvig.com/21-days.html http://norvig.com/21-days.html
- BaculumMeumEst 2y agoIf it were posted anonymously it would have been ridiculed or ignored.
- hypeatei 2y agoAgreed, I'm really lost on what this even is.
- udev4096 2y agoI think the point of it is to let everyone decide their own learning journey instead of providing a set of books or any resource links
- mihaic 2y agoIf we want to let people decide on their learning journey, I think something like this is even more harmful, since it creates an unrealistic standard. It's the equivalent of an Instagram lifestyle for software/hardware engineering. I've met many world class developers, and I'm sure that even after years of experience almost none could handle such a course even if dedicating themselves full time to it. Building a C compiler in Haskell is just one part of a 3-week section, and if you don't know Haskell you're really dead if you have to pick it up on the fly. It feels like an A/B test, to see how much bullshit can pass, or maybe the guy really is delusional, I don't really know.
- udev4096 2y agoYou're right. Giving a set of topics is in itself doing the opposite of "deciding their own learning journey"
- andruby 2y ago> all signaling of how clever the guy who wrote it is This has unfortunately been my experience with a lot of geohot’s work.
- GuB-42 2y agoI agree with the "no substance" part. However, I think such a course is not for beginners, instead it would be for experienced programmers who already have an idea about how computers work and want to fill up some gaps so that they have the whole picture. These 12 weeks can be part of that "10 years" progression. It addresses the "computer" part, and adds a language that isn't mentioned to the list: Verilog, a hardware definition language. As for the "guy", he is George Hotz, a controversial figure, who likes to think of himself as very clever indeed, but going up and down the abstraction ladder is, I think, one of his strengths. So I won't dismiss his article too quickly.
- alexnewman 2y agoA positive spin is people are so excited to learn this stuff that a syllabus got thousands of github stars. I think a lot of his work is great from a pedagogical form. I often learn more about ML by reading tinygrad, even if i've never used it in production. We should be celebrating this guy's efforts
- atoav 2y agoWhen I, an educator who has a understanding of the topics, read the outline I immediately felt sorry for the people who would be part of that curriculum. This outlines looks smart to people who already dealt with all or most topics involved, but it would be soul-crushing to most students. That being said, this is mostly an issue of how the material is organized and which parts are emphasized in which way. In a way it is weird to pinpoint what is wrong with it. It is at the same time too niche and to broad at the same time in weird way.
- deleted 2y ago[deleted]
- isotypic 2y agoSection 3 Building a ARM7 CPU is in my view the best example of this - building a pipelined processor is exactly the sort of thing that sounds impressive, but in truth teaches you exceedingly little for the effort it requires. * Architecture wise, implementing a core in verilog versus simulating it in a higher level language are nearly the same from a learning perspective, there really aren't any special. insights from hardware when just starting out. And doing this in verilog just makes the entire process more obtuse because its hardware. * Microarchitecture wise, a simple pipelined processor teaches you basically nothing about how a modern processor (i.e. superscalar, out-of-order) functions from the perspective of a person higher on the stack. If you were to be using it to springboard to writing an OoO superscalar processor, it would be far better to be given a well-designed multistage core and the assignment be to add pipelining - this avoids the student implementating the multistage core of the processor, which is really mostly straightforward implementation of simple but large state machines, and instead focuses purely on the pitfalls of pipelining while also giving a model of good verilog/processor writing practices. Another thing which is sortof weird is worrying about the type of RAM - that's getting just way into the weeds of processor design and teaches you nothing except stuff like "how to interface with dual port versus single port RAM blocks". And given the time constraints it makes more sense to just simulate memory anyways.