The person building a cat from scratch will undoubtedly understand more than others, and may be able to fix that home brew car. They may, with some difficulty be able to apply that understanding to other cars.
But, you definitely don't need to build a car from scratch to be a race car driver.
That would be an interesting project.
> That would be an interesting project.
Here is the source code of the OpenBSD implementation of cat:
> https://github.com/openbsd/src/blob/master/bin/cat/cat.c
and here of the GNU coreutils implementation:
> https://github.com/coreutils/coreutils/blob/master/src/cat.c
Thus: I don't think building a cat from scratch or creating a tutorial about that topic is particularly hard (even though the HN audience would likely be interested in it). :-)
There is this guide, divided in parts: https://github.com/tokenrove/build-your-own-shell
I think you right, and implementing core utils is a nice exercise in system programming. Maybe, it even can be used to create some automated tasks with tests on codewars.
Once upon a time I implemented expr(1) but it was too simple, without regex part.
;-) ;-) ;-)
I say that it's not a productive way to look at it, because intensity and longevity of singular professional focus only lasts as long as your intellectual and physical infrastructure around it, which means doing things that are somewhere between a short and long distance away from your core subject; sleeping, learning fundamentals, algorithms, design, hiking etc.. (Web Dev, as with anything, can get just as intensely unstimulating as it can stimulating)
Also, learning how your language kind of gets compiled is just fascinating.
http://www.kegel.com/c10k.html
This will give you ability to reason about the web server configuration you want to use.
But both fork(2) and epoll(7) [kqueue(2), iocp] would stay at low level relatively of place where you operate.
Don't know what to say about fronted though, but there are probably some new points of view on JS you can get by implementing it as an interpreter in courses like crafting interpreters.
usefulness for web development is that probably right now there are things you think are 'too hard' or even inconceivable
after those 100 hours nothing will be inconceivable