7 ms·
If I'm into web development, how practically useful is learning low level stuff like this, factoring in opportunity cost?
by jackphilson 3y ago
If I'm into web development, how practically useful is learning low level stuff like this, factoring in opportunity cost?
- frakt0x90 3y agoIn my opinion, learning anything in your field is useful because it helps you form a better mental representation of what you're doing. Will building electronics directly help with mundane web dev? Maybe not. But if you think it's cool, do it! Have fun! Broaden your horizons!
- gorjusborg 3y agoI see this question as analogous to 'how useful is building a car from scratch?' 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.
- kjs3 3y agobuilding a cat from scratch That would be an interesting project.
- aleph_minus_one 3y ago> building a cat from scratch > 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 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 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). :-)
- bigstrat2003 3y agoI'm 99% sure that kjs3 was joking about building the kind of cat that goes "meow", not a program. ;)
- kjs3 3y ago100%. And considering the OP mistyped "car" as "cat", I'm really, really hoping aleph_minus_one was making a different kind of attempt at humor, but around here you never know.
- aleph_minus_one 3y agoYou should then alias "cat" to print "meow" instead of concatenating files. ;-) ;-) ;-)
- artsi0m 3y agoBuilding a shell from scratch (or some pre-made starting point) seems to be an exercise in a lot of operating systems courses and also in Tanenbaum's book on Operating Systems. There is this guide, divided in parts: https://github.com/tokenrove/build-your-own-shell 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.
- kjs3 3y agoIf opportunity cost is how you decide such things, I'm guessing this is not for you. There's undoubtedly some new JS framework that's about to be The Next Big Thing.
- jobs_throwaway 3y agoUnderstanding intuitively how compilers work, and how the various translators to/from VMs and machine code, is, I think, pretty useful. Maybe not in day-to-day web dev work, but it will help you around the edges.
- brailsafe 3y agoIt depends whether you have any opportunities at the moment that are directly attributable to a singular focus on "web development". That's not a productive or healthy way to look at things imo—though it might seem like it if you're relatively knew—but if your prospects are good right now, then this won't help you necessarily keep your current job or get another one. It will help you reason about code, logic, and computers in a way you wouldn't otherwise, but you'll have a hard time if you're not enthusiastic about learning for the novelty of it, because it will eventually be quite challenging and you'll need to allocate significant amounts of time. 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.
- brailsafe 3y agoTo elaborate on this slightly, when I eventually burnt out from just grinding frontend and working a stressful frontend job, I spoke to someone much more experienced than me in medicine who suggested that basically anything can be interesting if you keep going deeper. That's stuck with me in the 6 years since, and I don't worry much about drilling web stuff as much
- deleted 3y ago[deleted]
- artsi0m 3y agoAs a backend web developer you can learn about the difference in pre-fork and polling model in web servers, which interconnected with c10k http://www.kegel.com/c10k.html 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.
- kragen 3y agoopportunity cost is like 100 hours, which is pretty small 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