6 ms·
How so? Why would that be gatekeeping?
by prox 7y ago
How so? Why would that be gatekeeping?
- terminalcommand 7y agoMaybe that is so, because teaching people assembly allows them to pull magic tricks on companies. An example I can think is Apple banning all dynamic code generation and execution on ios apps.
- alharith 7y agoSearch on twitter for "computer science" and "gatekeeping" and ask all those people, I dunno. I gave up trying to reason with unreasonable people a long time ago.
- commandlinefan 7y agoNot OP but I can venture a suggestion. There are a lot of people who believe that programming computers is fundamentally simple, and that programmers really only need to know about 10% or so of the things that programmers are traditionally taught. These are the people who will insist that things like algorithms and data structures are meaningless for most programming tasks: as long as you remember all of the Javascript keywords, you've got as much education as you need. So if you or I come along and say "you'll be a better programmer in any language if you understand assembler", somebody else will invariably accuse you of perpetuating an elitist system that prioritizes meaningless theory over actual practice (i.e. "gatekeeping").
- throwaway894345 7y agoI think it's largely people talking past each other. One group claims that deeper understanding is useful and the other group says "no way, you don't need deeper understanding to get into (e.g., web) dev!". Being useful doesn't mean "necessary for an entry level position in the highest-level subdomains of computing".
- commandlinefan 7y ago> necessary for an entry level position I still can't figure out how programming computers (the most complex task a human can undertake) managed to become singled out as 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.
- newswasboring 7y agoYeah the claim that it is "the most complex task a human can undertake" is a little.... iffy. I mean, most of the times its really not. Most of programming is exactly as complex as most of civil engineering or most of plumbing. Most of a sufficiently mature field is usually not that complex at all because the most complex stuff is abstracted out. My civil engineering friends don't design bridges from scratch and my plumber doesn't threads the pipes themselves. They rely on industry standards which give them enough abstraction to be productive. Now this is not to say on the frontiers of it its not very complicated. But so is every other field. Ever thought about plumbing a space station? Or designing a rapid deploy bridge? You can't compare frontiers of one field with the middle of the other.
- commandlinefan 7y ago> most of civil engineering or most of plumbing both fields that have strict educational and credential requirements to practice professionally. Both strictly - dare I say it - gate-kept.
- BoorishBears 7y agoYou are everything that makes people conflate enthusiasm for low level knowledge with gatekeeping. This is honestly getting worse than gatekeeping, entering the realm of illusions of grandeur. I actually can't reply directly anymore because everything I'm posting is being downvoted to hell, but it's fine, I know implying the unwashed masses blindly cutting and pasting SO answers are doing just fine for themselves is taboo in a place where people feel programmers should be taking PE certification exams but anyways, here's my response: - > Now compare your experience to that of the hypothetical stockbroker who's diving into React native app programming without even really understanding what a loop is. He has decades to go before he understands what he's doing! What's NPM? What's a text editor? Is that different than a word processor? I screwed up my initial install... how can I start over? Insisting that programming is really easy and it's gatekeepers adding requirements that make it hard isn't doing him any favors; he's going to feel like a complete failure. > _he's going to feel like a complete failure._ Why? You're casting this accusation on this hypothetical stock broker. Why are they going to feel like a complete failure? How is this hypothetical stock broker any different than I was literally hitting random buttons in the programming menu of his father's calculator until he made some text appear? > you started from the bottom/most concrete layer of abstraction No, I didn't. I started from BASIC, I only learned C because assembler looked like greek and I heard you needed assembler if you wanted those fancy graphics all the best calculator games had and I learned that C let you write assembler somehow without writing assembler. If I had quit because I didn't understand half of what I was doing (I didn't) I wouldn't be a programmer today. I didn't feel like shit, I felt like a kid who had just found a candy shop, what great things were there for me to learn next? Sure I had doubts, but they were easily drowned out by any modicum of progress I made, and soon enough I learned that it's ok because _no one_ knows all the fundamentals. Out there there's someone who's scoffing at this talk of "knowing assembler lets you know how computers work", they're ready to bust out explanations of instruction pipelining, speculative execution (for now), how memory controllers work, what the micro controller in your HDD and SDD is doing to let your assembler do any kind of useful IO without understanding how underlying media works. - And also, if the stock broker quits because they don't understand what they're doing, in what universe is telling them: "Actually go and learn this other stuff, that's the fundamentals. Just realize has a much much MUCH longer feedback loop, there's orders of magnitude more surface area before you get back to the level you were working on and can produce something that you recognize as being on the path of making the app you wanted" Going to get them to _not quit even faster_. In my experience the best way to get people feeling empowered is to let them make something that they can envision being on the path to what they want to make. Writing a hello world in assembler and having it show up in a command prompt is not going to get my stockbroker friend nearly as happy as writing a hello world in React and running it on his phone, because he sees a glimmer of how the latter gets him to his goal of an app. You're ascribing individual behavior to a broad set of people because they don't agree with your approach to learning being in their best interests. That's what I have such a problem with. Who cares if they don't know what NPM is, who cares if every time he screws up he opens App Copy (23) and deletes the current one. If they're going to quit because they don't know what NPM is or what a text editor vs word processor, how is sitting them down and trying to get them to understand assembler going to ease their anxiety? And if you feel that's hyperbole, even getting them to understand NPM past copy and pasting commands. You'd be amazed at the things people have built that help real human beings do useful things every day while never truly understanding how NPM works. There's nothing wrong with embracing people having no idea what they're doing just running at the wall until it starts to stick. It's what I did, and I couldn't have done it any other way.
- BoorishBears 7y agoReally it's about tone: "It would serve everyone well to start at that level." Backhanded way of saying the guy who only learned the Javascript keywords would have been better off spending their time trying to learn to program from first principles. Which is extremely condescending if you think about it, for you to assume you know what's best for all these people who are already being productive technologists. If that person takes the time they used to make software that helped in the lives of 1,000,000 users, to instead learn how to improve memory access patterns in their CRUD app, who is it better for? Your ego? It is a form of gatekeeping, even in your comment you're being extremely condescending, like those programmers aren't "real" programmers until they learn algorithms and data structures, and implying they find programming computers simple because they're not really programming. > you'll be a better programmer in any language if you understand assembler Better by what measure? You can write code that takes one order of magnitude more for every single task it completes and still help more people and enable more productivity than the guy who dedicates his existence to hand unrolling loops and implementing obscure data structures hand picked from the Library of Alexandria for their perfect match to the current use case. And this is all coming from a guy who taught himself programming starting with calculators in middle school by the way (TI-Basic => C via SDCC => Assembler on calculators and MCUs before I ever even touched programming for a desktop). And since those days I've always found programming incredibly simple and intuitive. The computer does what you tell it to do, and that's that. How many professions in the world are there where your tool is nearly infallible in its ability to correctly execute your thoughts exactly as they're transcribed? Can you be more productive by learning some deeper levels of knowledge? Sure. But I don't advise anyone listen to someone who makes blanket statements about how all developers would benefit from "hand-assembling on pre-printed carbon sheets", or anyone who tries to defend that. - Oh Jesus, I just saw your other comment: > I still can't figure out how programming computers (the most complex task a human can undertake) managed to become singled out as 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. Is this a copy pasta? No, I'm on HN it's someone's genuine thoughts. the most complex task a human can undertake Yikes.
- commandlinefan 7y ago> they find programming computers simple because they're not really programming Actually, the "learn javascript in 24 hours" crowd finds out the hard way that programming computers is orders of magnitude harder than they initially thought... but they still insist that it's because gatekeeping programmers are artificially making it harder than it has to be.
- zackmorris 7y agoMy former business partner is in the boat you describe. He learns the bare minimum needed to do the task at hand and seems pleased with that. He still has the joy of discovery, but it's more about what he can do with the tech than any appreciation of the formalism. He's happily working as an indie game coder, and while he doesn't exactly have FU money, he's for the most part cleared the first milestone of making rent for the past few years. I'm in the opposite boat. I've learned so much about the theory of computing that I almost can't program anymore because most of what we do today feels like a waste of time to me. It's all convention and application now, with so many barriers to entry that I feel like 95% of what I do on any given day is setup. The dreams I had for how computing might evolve and lead us to the endgame of AGI feel more distant to me now than ever before. It will likely happen through the biggest players, using whatever proprietary tech they come up with, and leave garage hackers in the dust. I don't have a good feeling about whatever artificial agents arise from that. So there is a lot of survivor bias in programming today. I feel like Obi-Wan Kenobi, beat down by the industry, marooned on some distant planet. Meanwhile the youth subscribe to empire quickly, because all they see is glorious rewards. Seeing haggard old graybeards like me fall from such early potential makes them rightfully skeptical of the gatekeeping you describe, the adherence to the old religion of computer science. Or I'm just full of it. I don't even know anymore. I wish I was part of something bigger again.
- 6510 7y agoIts a strange field that doesn't have clear boundaries and constantly changes. I keep getting back in my thoughts to an old carpenter who was making a truly wonderful kitchen in a strange corner of an old building. Non of the walls, ceiling or floor around it were straight and it had tons of weird niches. I ask him how he could attack such a problem with such confidence. I would have to spend days pulling my hairs just making a drawing. He said, carpentry is roughly 300 methods of which you only need 120 to 140 to do any job. The rest is just tricks that you don't really need but they are impressive to those who know the problem. I keep thinking of that in programing context for some reason. Nowadays you just order a plug and play kitchen that fits exactly, a novice can ikea it into place, everything works and it looks fantastic. Programming will get there one day. Until it does it will just look really weird to the old carpenter. So you grind the wood down to Particle board, you glue plastic on it that looks like wood then it gets moist and you replace the entire kitchen? .....!
- pjc50 7y agoIt's entirely in the phrasing. "It would be beneficial to learn how the machine actually works" versus "you're not a real programmer unless ..." Bootcamps demonstrate that not knowing assembly is not a barrier to earning a decent software engineer salary.