7 ms·
In Zen and the Art of Motorcycle Maintenance, the author talks about the importance of being able to carve up ideas in different ways to understand it more thor
by brd 12y ago
In Zen and the Art of Motorcycle Maintenance, the author talks about the importance of being able to carve up ideas in different ways to understand it more thoroughly. I'd say knowing how to code, as in going through the process of understand how to think through a logical sequence of steps, is a highly effective means of handing someone a proverbial scalpel.
In my experience, most people cannot break things down logically nor do they appreciate what it takes to provide clear instructions. There is an emphasis in the world on communication which is a fine start, but being able to convey an idea clearly really only becomes helpful once you understand the idea clearly.
Besides programmers and mathematicians, the only people I've met with the faculties to properly break things down are lawyers*. Law school trains you in the ability to approach an idea from different angles in order to identify attack vectors. As such, lawyers tend to be highly capable of feats of logic but are equipped in such a way that they are almost entirely adversarial and deconstructive.
So while I completely agree with Chris's point and understanding that this is a banner he raises constantly, I'm a little disappointed to see him attack this initiative to get more people into coding. I'm all for better modeling tools and better teaching practices but I think teaching people to code is a wonderful solution in the interim. Framing an argument like this will only stir controversy in an otherwise worthy cause.
edit: I've met plenty of people who aren't programmers, mathematicians, or lawyers that are logically capable. But as a general rule of thumb, those are the only three professions I've interacted with personally that have consistently shown that aptitude. Either way, please don't let this personal anecdote distract from the overall message, I only left that comment in there because I wanted to emphasize how rare the ability is across most disciplines.
- ibdknox 12y ago> I'm a little disappointed to see him attack this initiative to get more people into coding. That's because I'd rather people have the freedom to be mathematicians, nurses, lawyers, physicists, writers, and accountants while still being able to leverage computers. Instead of forcing people to become professional programmers to get the computer to model things for you, we should focus on teaching people how to model in general and build more tools like Excel that let people do that. Hell, I'd stand behind a movement to just teach people Excel. With Excel, we don't have to spend the next several years worrying about what flavor of MVC we have to use. Instead, we can focus on doing actually important things like curing cancer. > Besides programmers and mathematicians, the only people I've met with the faculties to properly break things down are lawyers. My point is we should fix that, instead of focusing on teaching people Python.
- brd 12y ago> we should focus on teaching people how to model in general Classes on logic and/or learning theory can accomplish that goal without any tools whatsoever. In fact, I'd argue we should teach people visio instead of excel if the only thing we're shooting for is mental modeling. I've always thought the world would be a much better place if people leveraged concept maps more frequently. > My point is we should fix that, instead of focusing on teaching people Python. Again, I really get your point about not wanting a generation full of programmers but having gone through programming classes in HS I think it's a non issue. I think I'm the only person from my HS programming class that went into programming as a trade. If anything, I think the thing worth attacking is the typical emphasis on the programming language as opposed to the process of programming. My HS 101 programming class was done with an overhead projector, mapping out what a loop was actually doing and visualizing the memory allocations being modified step by step. That's the sort of thing we need more of. Just shoving syntax down a kid's throat will do no good, on that we are absolutely on the same page. P.S. I think you're doing amazing work. Thank you for all you're trying to contribute to the field and the world.
- Alupis 12y ago> That's because I'd rather people have the freedom to be mathematicians, nurses, lawyers, physicists, writers, and accountants while still being able to leverage computers All of the mentioned professions make heavy use of computers. I do agree teaching basic skills with tools like spreadsheet programs, etc, are fantastic. But at some point in time, it will become a roadblock to not know how to write a basic script to automate some repetitive/remedial task. That's not to say everyone should learn how to write massive enterprise software, or have deep understanding of how a kernel works. Rather, it's to say people need to learn how to make the computer work for them in the way that suits them best, not just how some Vendor thinks they should work. Being able to write some quick script simply requires problem solving skills. There is a significant advantage to the journalist who can write their own SQL and query data out of a massive database by themselves without having to depend on someone else. There's a massive advantage to the lobbyist who can better understand statistical trends visually because they learned how to represent, consume and model the data with R. There are fields where non-programmers are the only ones who fundamentally understand their domain well enough to write software for it. Take the various sciences. How can a non-chemist accurately write a chemical modelling and simulation software without first having to learn how things work? Not very well... even if they designed the software based on some spec, it's unlikely all of the professional chemists domain knowledge from 30+ years of in-field research will accurately translate into a hired-gun's handy-work. The main issue I see in practice is people are either afraid to begin, or get some glossy-eyed look when the word "programming" is brought up. To me, that is incredibly frustrating, since programming is nothing more than writing down some words in a grammatically correct structure... "you can form complete sentences, right? Good, so you can now write a complete sentence but follow a slightly different rule."
- pwr22 12y agoI did a critical thinking A level when I was 17 and I remember thinking "why aren't we taught this from the beginning?"
- ritchiea 12y agoAnalytical philosophers are also fantastic at this. Though formal logic could also be argued to be a branch of mathematics.
- Iftheshoefits 12y agoYour experience seems pretty shallow and narrow if the only people you've met who are capable of "properly" breaking things down are programmers, mathematicians, or lawyers. I've known plenty of people outside of those disciplines as well as within them who are quite capable of thinking about a problem logically and from many different angles.
- vonmoltke 12y ago> Besides programmers and mathematicians, the only people I've met with the faculties to properly break things down are lawyers. Did you just forget the entire engineering profession or was that an intentional omission?
- brational 12y agoOR basically any science/engineering discipline that is rooted in math + lawyers. That should be the 2 populations.
- klibertp 12y agoThere are also philosophers, which don't fit here: if anything it's both maths and law that are rooted in philosophy. And hell, philosophers are crazy good at this, too.
- HCIdivision17 12y agoI think there's a class of engineer that absolutely fits the bill of being able to break a problem down to its atomic parts and then show how it all comes together. In practice, I've found many gloss over the details (a variant of the 80/20 rule). In my case, industrial process engineering, I've found many talented, smart engineers develop solutions that trip up from missing a detail that would have been obvious from a deep inspection of the problem. Of course, you can find such individuals any where, like the parent noted. But I can say that in my experience, engineers tend not to have that level of logical rigor. (Edit - or: 'that level of pedantry') Note: I don't work with Professional Engineers, which is literally a different class of engineer. Nor am I implying these engineers are bad at solving technical problem - just that such programmatic thought is not a typical tool in their (sizable) heuristic toolbox. At best computing/programming is a tool of last resort.
- vonmoltke 12y agoI'm mainly attacking the fallacy that programming is something special with respect to rigorous problem solving and decomposing problems. All fundamental engineering rests on that ability. Those abilities are fundamental to circuit analysis, electromagnetics, finite element analysis, fluid flow calculation, load calculation, the list goes on. It is a fundamental skill in engineering. In fact, I will go so far as to say that a "real" engineer is one who needs to exercise this skill in order to do their job properly.
- xivzgrev 12y agoWhy do you think people have trouble breaking things down logically? I think one, emotions demand immediate action, no immediate action is apparent, more emotion. Breaking things down is a detour - if it wasn't I don't think I'd hear "a journey begins with a single step" or "baby steps" nearly as often as I do. Two most people don't have as strong of an urge to analyze which is the ability to break things down and look at them individually. For these two reasons I think that's why it can be so helpful to talk over with someone else - they're not feeling the emotion so they can be more objective and help break, or they have more experience to help fill in the gaps in your breakdown. Also, When you say most people don't appreciate how to give clear instructions ... That's a tricky line. On one hand, people should (and don't) think through enough to shape their general idea. I'm a growth guy and surprising how many people basically say "we need more users, can you help?" But why...? How is their retention, activation, monetization? If those are not good you're just throwing money away. But I don't think you should expect people to spell out line by line. At a previous job I served briefly as temp product manager and I felt irritated how I had to write the algorithm for the engineering team. When you start crossing into "how", I think you're giving too much instruction.
- adamgravitis 12y agoI am, however, sympathetic to Chris' point that just teaching people how to code doesn't necessarily accomplish anything. I think this concern actually strikes at the core of the difference between programming as a "trade", versus the more engineering or scientific side of programming (under its various names). One may be perfectly proficient at working with, say, the entire iOS API, while still having little idea (or concern) about representing any sort of non-trivial problems. Having taken both college-level and subsequently university-level engineering courses in programming/CS, I think the difference between the two roughly aligns with the trade vs modelling point-of-view.
- coldtea 12y ago>Besides programmers and mathematicians, the only people I've met with the faculties to properly break things down are lawyers. Law school trains you in the ability to approach an idea from different angles in order to identify attack vectors. Well, reporters (good ones) are like that too. And people doing commissioned work based on customer specifications (graphic designers, jingle composers, etc) learn to attack a problem in many ways (at least as far as their domain is concerned).
- theVirginian 12y agoThere is a reason that the two top scoring majors on the LSAT are engineering majors and philosophy majors.
- ant6n 12y agoA friend of mine is a lawyer, she's been talking about this lawyer-programmer similarity for a while. She tried to organize laws from the more textual representation into a more diagrammatic one, which in a way is a step step towards representing laws like programming code: http://www.lexagraph.com/category/diagrams/ http://www.lexagraph.com/category/diagrams/
- Terr_ 12y ago> As such, lawyers [...] are equipped in such a way that they are almost entirely adversarial and deconstructive. I wonder how many lawyers (out of the total) are involved writing contracts or help draft laws? Both of those require using that "what could go wrong" intuition in the service of building something strong.
- jqm 12y agoAgreed on rarity of the ability to logically break things into steps. I'd like to add... I've met a few construction project managers that appear to have it.