4 ms·
> Myself I don't understand how one could write any code without understanding how the code gets run. I think this perhaps says more about you then it does the
by imdsm 3y ago
> Myself I don't understand how one could write any code without understanding how the code gets run.
I think this perhaps says more about you then it does the people to whom you're referring. If you can't understand how someone can write code to perform tasks and extrapolate from that ways that programming can be used to perform tasks, without any underlying knowledge of the architecture that it runs on, then I would suggest your education is currently incomplete.
How far down does the full stack go? Hardware? Digital electronics? Analogue electronics? Physics? Further?
- mgaunard 3y agoCode is not just to perform tasks, at least not if we're talking about software engineering, rather than mere scripting. Code is typically used to run a service running for a potentially long time leveraging hardware resources which are made accessible and shared with other processes through an operating system. To ensure that the service runs well and doesn't hamper other services sharing those resources, you need at least high-level understanding of how the hardware and operating systems work.
- j33zusjuice 3y agoWe’re not talking about software engineering. The recommendation to read a book about basic computing is obviously not intended for computer scientists. Depending on your definition of “service” here, I’d argue that most code is not written to run services, and certainly not long-running services. Like, core-utils is a shitton of programs, and a shitton of code, and none of that runs as a service. Most of what you mentioned in your first comment aren’t services. Bio researchers don’t write long-running services. They don’t even really understand how computers are allocating resources. They don’t know shit about putting an HPC cluster together and managing it. Are they not writing code? I agree with the other person who said your education seems incomplete. Yours is a very narrow view of computers and computing.
- kiitos 3y agoThe vast majority of software written is private code that serves specific business requirements. That's not always going to be services, but it often is. Coreutils is statistically zero percent of all software.
- mgaunard 3y agoA compiler is certainly a service, as is an interactive shell.
- quickthrower2 3y agoI had a skim of the book posted here, and it looks very interesting, and it goes into a lot of detail, for example there is a page on the ELF format and how the data is packaged. Are you saying you NEED to know all this to write useful code? I sort think you don't really, not at least since high level languages came out. That said this book looks very interesting to read for curiousity.
- mgaunard 3y agoKnowing how ELF works is certainly useful for many reasons, at least if you are building applications that compile down to ELF. You may want to know why they are the size that they are, be able to extract meta-information, configure how the dynamic linker works, extract debug info, etc. Some of things are actually critical for installation or deployment.
- quickthrower2 3y agoThat makes sense, but if I am purely developing for the web, and maybe nodejs on the back end, for say a JIRA clone, and I am on a team, would I need to know? Probably useful. And I am for curiosity. But I don't think it is worth making developers feel bad because they haven't jumped through a particular hoop, which I think some of the sentiment on this thread seemed like it was doing.