3 ms·
I've worked as both a hardware & software engineer. I've generally found that people who make statements like the above, don't really have proficiency across al
by whack 8y ago
I've worked as both a hardware & software engineer. I've generally found that people who make statements like the above, don't really have proficiency across all the layers from silicon to code. Heck, there are probably a few layers that they aren't even aware exist. And yet, despite this "gaping" hole in their knowledge, it barely hinders their productivity at all.
Software, and life in general, is an exercise in abstraction. How do you effectively use abstractions that others have used, without knowing how they really work. How do you figure out which sub-abstractions and intricacies you can safely overlook, because they aren't relevant to your current priorities. And how do you shortlist the ones that you do have to care about, because they have a big impact on your project's success. These are the key skills that effective engineers possess. Trying to avoid the above problems by brute-force learning everything, is going to get you stuck in a quagmire.
- acpetrov 8y agoTricky part is when one of your underlying systems doesn't quite behave as you thought. Once you figure out the problem (which could take a while since you won't expect it to be there) you get a sense of how much complexity you're building on top of