4 ms·
I don't get it, what are they trying to say?
by drdrek 2y ago
I don't get it, what are they trying to say?
- ReleaseCandidat 2y agoTo get the interviews, it's best to read them in the "correct" order: https://aphyr.com/posts/340-reversing-the-technical-interview https://aphyr.com/posts/340-reversing-the-technical-intervie... https://aphyr.com/posts/341-hexing-the-technical-interview https://aphyr.com/posts/341-hexing-the-technical-interview https://aphyr.com/posts/342-typing-the-technical-interview https://aphyr.com/posts/342-typing-the-technical-interview https://aphyr.com/posts/353-rewriting-the-technical-interview https://aphyr.com/posts/353-rewriting-the-technical-intervie... https://aphyr.com/posts/354-unifying-the-technical-interview https://aphyr.com/posts/354-unifying-the-technical-interview
- xenophonf 2y agoDo you mean at the technical level? Vidrun's asked to solve FizzBuzz, and like a good engineer, she reuses an existing, well tested solution. However, the interviewer, Martin, chides her by telling her the point of the interview is to see how people might solve things for themselves. He then asks her to explain how the FizzBuzz program she copied works. So she implements a C-like language in Cloture. Pretty elementary stuff. Not "so easy a little kid can do it" but literally, in the sense that these techniques, this knowledge, underpins every programming language you use. Every computer scientist and software engineer should know how to do this. If you get a chance, work your way through a copy of _Essentials of Programming Languages_ (https://mitpress.mit.edu/9780262062794/essentials-of-programming-languages/ https://mitpress.mit.edu/9780262062794/essentials-of-program...). It will help make sense of what Vidrun does here. At a non-technical level, well, that requires a longer explanation for which I lack the time to write.
- vsnf 2y agoI think you have unrealistic expectations of software developers if you think they should all be able to do this. Elementary sure, and maybe they “should” in the platonic sense, but ask 10 developers to implement a language and 9 will fail to make any meaningful progress. And I think that’s fine. It’s like when people get upset at web devs for not knowing the networking layers. Elementary sure, good to know, maybe, critical to their everyday function, doubtful in the extreme
- dbalatero 2y agoOr to put it another way, why should* someone know how to do anything that's never ever come up before in their life? * "should" as in someone else externally judging someone
- davidgay 2y agoOf course, some of those people then do get asked to build a language, and the result is awful and ignores the last 60 years of knowledge on how to actually do that ... (yes, I have seen this)
- cess11 2y agoNot all software developers are computer scientists or software engineers, and not all software developers are preoccupied with turning computers into a salary.
- deleted 2y ago[deleted]
- xenophonf 2y agoIt's been my experience that software developers can be wildly successful not knowing or using any deep magic like this. Still, I think this stuff is good to know. Edit: Oh, I should have used "elemental" instead. That might have gotten my point across better—underpinnings, not trivia.
- margalabargala 2y agoI would argue it's still too much (and not useful) to expect most people to be able to do this. Understand, yes. Good software engineers and computer scientists should be able to read this blog and fully understand what's happening, modulo any clojure-specific syntax they might be unfamiliar with. But this isn't something people should be expected to able to already know how to up and do.
- xenophonf 2y ago
- margalabargala 2y agoThis is a pretty elitist viewpoint, and also totally wrong. It's fully possible to be an excellent software engineer without being able to implement a new language, or deeply understanding how to. It's completely reasonable to be among the best in the world at using a tool, and understanding how the tool works, without being able to create one of those tools. You might as well ask the same software engineer to design a CPU. Or ask a woodworker to design a lathe. The best pilot may not be able to design a plane, while still being a better pilot than an aerospace engineer that doesn't know how to fly the planes they design and build.
- YZF 2y agoMaybe call yourself a software developer then? Or a software technician? A mechanical engineer does have deep understanding of everything they do. They understand their systems from first principles. Maybe not as much as a physicist but certainly more than your carpenter example. They know how lathes are designed, they understand the principles, and a good mechanical engineer can design (and build) a lathe.
- margalabargala 2y agoBuilding a programming language is such a tiny, niche part of computer science and software engineering that most computer scientists and software engineers never do it. They don't need to do it. I think a decent computer scientist and software engineer should be able to understand everything written in this blog post, modulo any Clojure-specific syntax if they're unfamiliar with that language. But replicating it off the top of their head? No, and that's not expected. A mechanical engineer is a different example than I gave, so that changes the analogy. We're discussing a member of a profession being able to de novo create the things they use in their trade. I would expect most mechanical engineers to be able to build a lathe, yes. But a mechanical engineer is not a materials scientist or a metallurgist. I would not expect a mechanical engineer to be able to create rubber capable of being used for a belt in the lathe, nor capable of creating steel hard enough to form the cutting bit. Perhaps you're right, and there's insufficient granularity in the terms used, where "computer scientist" or especially "software engineer" is used to describe the 99% of us who haven't and have no need to create a programming language, plus the rest. But I won't be updating what I call myself. To paraphrase Office Space, "Why should I change? They're the ones who are elitist gatekeepers".