4 ms·
I agree with the gist of the quote ("you're not a real x unless you do y" is silly). But it lacks nuance. From what I got to see, a lot of programmers never bot
by emsy 7y ago
I agree with the gist of the quote ("you're not a real x unless you do y" is silly). But it lacks nuance. From what I got to see, a lot of programmers never bother what's happening underneath their code. For them, Spring, node.js etc. will always be magical black boxes. Here's another analogy for you: Would you go to a doctor that knows how to remove an appendix, but doesn't know how the circulatory system works?
- nonsince 7y agoSo what? You don’t understand what’s going on inside your CPU because at this point they’re too complex for anyone to fully know, and probably your understanding of the OS is on an as-needed basis. Why hold others to a different standard.
- huffmsa 7y agoCorrect. A surgeon or gastrointerologist might only have an understanding of the circulatory system insofar as it helps their surgeries and gastrointestinal work. So yeah, I'd probably go to a doctor who's really good at removing appendixes over the guy with comprehensive medical knowledge.
- TheOtherHobbes 7y agoDoctors all acquire broad medical knowledge as part of their training. They're not allowed to specialise until they've shown adequate competence in basic general medicine. An eye specialist who is absolutely clueless about heart or kidney function would be unusual, and not particularly useful. Not only do most drugs have multi-system side-effects, but many conditions affect multiple systems. So Dr Appendix Removal will almost certainly do all kinds of surgery. Consultants tend to have a more limited focus, but you don't get to be a consultant without doing a lot of other medicine first. Usually they either work as supervisors/managers, or they're called on to consult/advise and maybe operate on more challenging cases.
- huffmsa 7y agoYes I know the reality of the situation. So let's rephrase. Do you trust an AI controlled robot specialized in appendix removal (with a very good track record) but zero knowledge of other systems or procedures?
- ayende 7y agoWhy would it have zero knowledge of other systems? Unlike people, you can just upload the information to it over high speed interface.
- huffmsa 7y agoWhy does a robot trained to remove appendicitis need to know about the bones of the foot?
- z3t4 7y agoSurgeons spend a lot of time studying. Its not like some employers in tech that expect the dev to operate on different kind of patients all day long with 100% productivity and no prior training except what they already knew from school. So information is constantly being uploaded. But developers need to rely on abstractions because the field is constantly changing. After 10 years a framework would be obsolete or undergone major changes. Meanwhile the human evolution won't change much in 10 years although there will be a lot of new research the anatomy stays the same.
- emsy 7y agoDid you understand what I wrote? Nuance is exactly what I advocate for. The problem is not people not knowing things, but people thinking they don’t ever need to know more and just rely on the underlying magic.
- nathias 7y agoa cashier at McDonald's doesn't need to know the mathematical subtleties of monoids to do his job...
- huffmsa 7y agoMy mechanic likely doesn't understand the full complexity of the fluid dynamics involved in braking systems, but he's perfectly capable of changing pads, rotors and tires when they go bad.
- TheOtherHobbes 7y agoThe analogy is with mechanics who aren't perfectly capable of changing pads etc, because they keep trying to redesign the car to make the latest pads etc fit, even though this is a bad idea and doesn't work.
- huffmsa 7y agoNo, that's the surgeon who doesn't understand appendixes and tries to redo the gastrointestinal system instead. The parent's question was if you'd trust an appendix doctor who didn't understand the associated systems. Which is a brake mechanic who doesn't fully get fluid dynamics, but does get brakes.
- boomlinde 7y ago> Would you go to a doctor that knows how to remove an appendix, but doesn't know how the circulatory system works? The ability of a surgeon to successfully remove an appendix necessarily involves a fair amount of knowledge of the circulatory system, so the analogy is flawed. In my experience some people get by just fine only knowing how to address a problem through some particular framework. The point of abstraction in the end is to release people from the burden of considering the details. I think that this is a better analogy: would you go to a massage therapist who knows how to release tension in your back by manipulating your tissue, but doesn't know how neurons and axons work? Perhaps greatness can be achieved by a a therapist who knows the ins and outs of every aspect of your body, but as a patient/customer I am really only interested in the skills of the therapist insofar that they manifest in the ability to relax my back and shoulders. And really, a lot of development problems are like that. People perform well at their development jobs without a firm understanding of the mechanisms and inventions that enable them to perform it in the first place. It's by design. The real problems arise when there is something you really ought to know. For example, if I don't know how memory is allocated by the black box framework I use and memory use suddenly blows up through my interactions with it, the only thing I can fall back on is a lower level understanding. But usually this is fine, and it is someone else's lower level understanding that you fall back on. If you're working high up in a web front-end perhaps you have to consult someone who contributed to a web framework you're using. Maybe you have the wrong approach in a way that leads to instantiating too many objects. On the very low end of software development you may end up having to consult someone who laid the board out and can reason about the operation of the application in terms of the electronics involved. Maybe these two buses shouldn't be used at the same time because of a reflection problem.
- username90 7y ago> would you go to a massage therapist who knows how to release tension in your back by manipulating your tissue, but doesn't know how neurons and axons work? You should know one abstraction layer deeper. In this case one abstraction layer would be that the therapist knows what muscles there are in a back and where they are. You can administer massages without knowing it just by memorizing patterns, but you would get a lot better and can handle more cases if you know about the muscles. Similarly you can become productive using a framework without knowing anything about how the framework works underneath just by memorizing patterns which works, but you would get a lot more productive and can handle more cases if you had a decent understanding how the framework is implemented.
- msla 7y ago> Would you go to a doctor that knows how to remove an appendix, but doesn't know how the circulatory system works? Would you go to a doctor who understands how to do a heart transplant, but doesn't understand the Navier-Stokes equations underlying how viscous fluids like blood behave? Would you trust your car to a person who doesn't understand friction at the level of interatomic forces? Would you seriously trust your life to an airline pilot who couldn't single-handedly design and build a plane at least as capable as the Ford Trimotor? People have always been specialized. Always always always. Even back before "specialization of labor" was officially invented, the people who lived in the Kalahari didn't know about hunting seals and people who lived in Polynesia couldn't hunt a buffalo or a bison to save their lives. There just isn't enough time, interest, or opportunity in one life to learn everything top-to-bottom. We're slowly improving the amount of opportunity, and you can fake an interest for a while, but increasing the amount of time is still a miserably slow process.
- ezzzzz 7y agoOne problem with this analogy is that a surgeon does not go into the operating room solo to remove your appendix. You would first be seen by an anesthesiologist, someone with a nuanced understanding of biology and pharmacology, just to get you prepped for the operation (the surgeon likely has only a surface level understanding of this, and doesn't need it to perform her job). Once in the OR, you would also be attended to by Nurses to monitor your vitals and administer any medications and perform any life-saving interventions should something go awry. There also may be a Surgical Technician involved in preparing tools needed to perform the procedure. Perhaps an ultrasound technician is present to make sure the surgeon's incision hits the mark, etc, etc. The point is, there is still a ton of abstraction happening so that all the surgeon has to focus on is performing the procedure. This is very similar to how Software Development works on large projects, except we often have multiple surgeons operating on different parts of the same body at the same time! I think a better analogy for software would be construction. Multiple people of different specializations and skill-levels working together to produce a single artifact. As a framer, you don't need to know how to lay the foundation, you just need to know how to build on top of it. Furthermore, you don't need to know the chemical process of concrete to pour the foundation, you just follow the recipe that's been proven. You don't need to know the math required to determine the integrity of a structural load in order to frame a roof, you just follow a plan. Some projects may require engineers and specialists who do have a deep understanding of such things, but only to create the blueprints.