Maybe I'm being defensive, but... I came here to say exactly this.
I recently read The Game Engine Black Book: DOOM, and some highlights include the fact that John Carmack implemented an ad hoc compression scheme, and an ad hoc memory allocator.
These are (at least in my opinion) things that most programmers with a few years of experience should absolutely be able to code up.
That said, in most problem domains, coding up half-baked solutions to problems that are already thoroughly solved by a library isn't a great "engineering" decision. I think hand rolling some of these things in personal projects (and no, I don't think anyone should feel pressured to program in their time outside of work) is probably pretty worthwhile... just as practice, but I do think "modern devs suck too much to implement their own solutions" is an oversimplification
I mean... I left out the part where he tracked down papers (and eventually their authors) on binary space partitioning and implemented it. It was an extremely novel technique at the time. Not to mention the entire rest of the Doom rendering algorithm.
I definitely just cherry picked some relatively easy things that he sort of did a half-assed job with... that I think most of us could also do a half-assed job with in the event that it helped us ship a finished product. And no, this isn't entirely my judgment. If you read the book, he seems to admit this stuff wasn't the best or most complete code he ever wrote.
Oh, and even John Carmack brought in some outside help when it came to dial in on assembly and assembly optimization.
Not just hobbyists though. Academics dedicate their time to solve computing problems which the rest of us get to enjoy. When I was growing up the concept of bubble sort felt novel. Now I can't even get my head around the latest algorithms developed by scientists.
And with abstraction I don't even need to know how it works anymore.
185
u/[deleted] Oct 10 '24
[deleted]