3 ms·
> ...I started to learn ... how beautiful [it] was to know exactly how are you allocating resources in your application... Of course, as the author implies the
by gumby 3y ago
> ...I started to learn ... how beautiful [it] was to know exactly how are you allocating resources in your application...
Of course, as the author implies there's an MMU, register renaming, not to mention a whole OS involved, so how "exactly" are we talking about? As Blake wrote, there's "a world in a grain of sand".
(Of course I'm excited for you and share your pleasure in understanding memory layout and its implications. Computing is really fun the less abstract it is. And that sheer depth means we can plumb those depths -- or heights -- as far as we like).
- braza 3y agoThanks for the words. Maybe it's about the whole experience that I got in the beginning of career that several experienced folks told me "See, learn Python/Ruby 'cause it has more jobs available and pay more". It was true on my demographic at that time. Along the time I was not exposed to those "low level" languages and it had the effect that I never had that perception. That's why I felt that my experience was subpar: In a point in time, I was living in a complete different epistemic universe even being on the technology.
- gumby 3y agoEverybody starts in a different place and nobody knows everything.
- Gud 3y agoStill, you can gain a lot of knowledge just by learning the introductory texts. In this case, Programming in C. Will it make you an expert C programmer? No. But it will absolutely increase your knowledge on how a modern computer works.
- shrimp_emoji 3y ago> It was true on my demographic at that time. Haha. It's true of webdev now, but I irrationally rejected that advice as hard as I could. Made job search more difficult. But, ever since I learned C, I felt that, if I can't "low level" program, I'd rather not program at all. >:] Inb4 C is a high level programming language. And it paid off: I now work with like-minded nerds and tech I'm passionate about. (As opposed to anything web-related, which gives me some kind of ineffable dysphoria for a multitude of reasons, some scrutable and some not.)
- theamk 3y agoIt is as close to hardware as your userspace program is allowed to get. There is definitely a whole bunch of lower layers, but you cannot really get to them, so I think it's pretty fair to call C "a lowest layer language for userspace after assembly". And probably for kernel programming, too - C gets into implementation-defined behavior when there are MMUs involved, but that's not a big practical problem. (if you work at Intel and have access to secret microcode definitions than C is not a high level language... but cases like this are super rare)