3 ms·
Is it? If you don't abstract away the fundamentals, doesn't that mean you have to understand the internals of everything? That would be quite a lot! (physics,
by alexpetralia 4y ago
Is it?
If you don't abstract away the fundamentals, doesn't that mean you have to understand the internals of everything?
That would be quite a lot! (physics, chemistry, mathematics, etc.)
I would contend that 99.99% of everything we deal with (if you visually look around your surroundings) is "abstracted away". Perhaps, for software engineers, this is only 99% when it comes to software.
- jeroenhd 4y agoIf your day job involves a particular field of maths or physics then I'd argue you're definitely supposed to have an understanding of the fundamentals. You can't build a bridge if you don't know how torque works or how environmental factors interact with the forces at play. You don't need to know all of the frontend stuff if you're doing backend work, you don't need to know all the backend stuff if you're doing frontend work, and you don't need to know either if you're doing kernel development In turn, you can leave details like memory management, execution modes, endianness and concurrent locking out if you're writing code for the browser. Browsers can do a lot, but the most challenging parts of programming have already been taken care of the moment your HTML gets loaded. There are fields within programming (often overlapping) and if you work in your field, you should probably understand the fundamentals of that field. It's fine for a web dev to know "between 1ms and 2s the response of a DNS query appears" without having to know how DNS works. You don't have to know _everything_. But, unless you're developing HTML files on people's desktops, as a web dev you do need to know how HTTP works. It's not magic, the base protocol is actually quite simple as it was once text based for human readability. If you can fight your way through Javascript or Typescript with its absurd quirks and problems, you can understand HTTP if you try. Most of web dev is memorising the billion different options that browsers allow you to tweak these days, from CSS to HTML components, to get the design you want. Learning 50 or so other options and a few very basic protocols is hardly difficult in comparison.
- myth2018 4y agoYes, it is. You're not supposed to understand the internals of everything. But of the things underlying your field of work/study? You should. We shouldn't think about the fundamentals the whole time. The cognitive load would be unbearable. But we should be aware of them and be able to think about them more deeply if/when needed. And like I said, this phenomenon is not restricted to software development. An example that comes to mind now: in the crash of Air France Flight 447, the lack of skills on fundamentals of flight of the pilot flying -- young and used to the Airbuses' extremely high level of automation -- has been pointed out as a contributing factor.