5 ms·
the only profession in the history of humanity that is simultaneously assumed by so many to be something you need only a cursory understanding of to be proficie
by kick 7y ago
the only profession in the history of humanity that is simultaneously assumed by so many to be something you need only a cursory understanding of to be proficient at.
This can be traced to the 1970s.
Computer Science is only half of a field. Semi-arbitrarily splitting it off from EE harmed both fields. Instead of one complex field, there are two very shallow fields.
I still can't figure out how programming computers (the most complex task a human can undertake)
Neuroscience, making pizza (or most cooking, really), marketing, high-speed motorsport, psychology, most weapons development (outside of guns, which are fundamentally simple), writing mass-market books and drug development all seem to have programming beat in terms of complexity for what ninety-nine percent of professional programmers do.
Jobs worded it well in an interview at one point. Something along the lines of, "I knew there was a market for people who would never be able to design hardware or put a kit together but who still would love to write their own software," in the context of why the Apple II was successful. It works just as well to show why the field is the way it is.
Most computer programmers don't have a clue how the hardware works. That used to be an essential part of it. It's not any longer. The bar has gotten lower and lower, and that's not necessarily a bad thing. Python can be learned in an hour, so why not? They can still make useful things, so there's no problem with it.
Just like in any other field, the bar for "proficient" is low compared to average, but the bar for "exceptional" is high.
- BoorishBears 7y agoI wouldn't even say the bar has gotten lower. The bar has multiplied into multiple bars all at the their own levels but in different dimensions. You can have an innate understanding from a single transistor to how individual frames are handled by an ethernet PHY to how the packet scheduler will interact with your userspace app and be an "exceptional" developer. But the moment someone asks you to write an Android app that hits and endpoint and displays the data with some formatting none of that matters if you've never written an Android app. Nothing is exceptional in a vacuum, and "programming" is so vast with so much space between disciplines it might as well be a vacuum.
- kick 7y agoI think there are extremes here, and you and 'commandlinefan are on opposite sides of the extreme. I'm somewhere in the middle, in that I agree with neither of you. Writing an Android application is not something that requires anyone to learn an entirely new skillset. At most, it's a programming language and a toolkit of difference for any experienced programmer.
- BoorishBears 7y ago... How is learning a new programming language and new toolkit not learning a new skillset??? Even in a literal sense of the two words: Skill: "a particular ability." Tool: "a piece of software that carries out a particular function, typically creating or modifying another program." How is learning "a piece of software that carries out a particular function" not "a particular ability." - In a non-literal sense, learning to write an Android App is a new skill if you didn't know how to do it before. Like you could happen to have Java experience so it's less new to you, but either you knew how to do it before, or you didn't and now you do... so you learned how to do it. Are we literally at the point of gatekeeping what it means to learn how to do something??
- kick 7y agoHow is learning a new programming language and new toolkit not learning a new skillset??? Riding a Mongoose bike is not substantially different from riding a Schwinn bike. Riding a pink bike is not substantially different from riding a green bike. Writing Java is not substantially different from writing any ALGOL-derivative. It's like saying writing a program for FreeBSD requires a different skillset than doing so for NetBSD. It doesn't. Not everything is gatekeeping, and it's disingenuous to claim so.
- BoorishBears 7y agoHaha oh god, in one fell swoop you’re acting like writing Android apps is just knowing how to write Java and writing Java is just like writing any Algol-like. You literally reduced language design to changing colors on a bicycle. Are you joking? You have no idea what Android is if you think it’s development process vs Java (which Java? Embedded Java, desktop with JavaFX? Server side?) is like FreeBSD vs NetBSD. Maybe more like FreeBSD vs Windows and you’re trying to write a UI application, but technically you can use C on both platforms so it’s the same right? Thanks for the chuckle in these dreary times... By the way do you actually think syntactic differences are all that separate languages so once you know the general syntax you pretty much know the language, or are you pretending to not know how programming in multiple languages actually works to prove a point?