5 ms·
Spot on critical analysis of the blog post "Developers reinvented" by Github Thomas Dohmke which includes such quotes as: > Many Computer Science (CS) programs
by vunderba 1y ago
Spot on critical analysis of the blog post "Developers reinvented" by Github Thomas Dohmke which includes such quotes as:
> Many Computer Science (CS) programs still center around problems that AI can now solve competently.
Yeah. No they do not. Competent CS programs focus on fundamentals not your ability to invert a binary tree on a whiteboard. [1]
Replacing linear algebra and discrete mathematics with courses called "Baby's First LLM" and "Prompt Engineering for Hipster Doofuses" is as vapid as proposing that CS should include an entire course on how to use git.
[1] https://x.com/mxcl/status/608682016205344768 https://x.com/mxcl/status/608682016205344768
- charcircuit 1y ago>not your ability to invert a binary tree on a whiteboard. Knowing how to swap 2 variables and traverse data structures are fundamentals.
- kubb 1y agoI’m surprised that the creator of Homebrew didn’t know how to do that.
- meindnoch 1y agoIf you spend enough time with Homebrew, it's actually not that surprising.
- josephg 1y agoOf course, lots of people are employed despite giant holes in their knowledge of CS fundamentals. There’s more to being an effective developer than having good fundamentals. A lot more. But there’s still a lot of very important concepts in CS that people should learn. Concepts like performance engineering, security analysis, reliability, data structures and algorithms. And enough knowledge of how the layers below your program works that you can understand how your program runs and write code which lives in harmony with the system. This knowledge is way more useful than a lot of people claim. Especially in an era of chatgpt. If you’re weak on this stuff, you can easily be a liability to your team. If your whole team is weak on this stuff, you’ll collectively write terrible software.
- meindnoch 1y agoAlso, what people fail to realize is that the whiteboard coding interview was never about testing skills that are necessary for your day to day work. Most fighter pilots don't fly missions that require superhuman reaction time or enduring 9.5g acceleration either. Whiteboard coding exercises are just a proxy for certain thinking skills, a kind of je ne sais quoi that successful engineers tend to have.
- nradov 1y agoAlternatively, whiteboard coding exercises are a hazing mechanism to weed out candidates who have certain forms of anxiety or can't perform well under extreme scrutiny and time pressure. Which could be valid selection criteria for certain jobs. But let's be honest and admit that whiteboard coding exercises aren't actually a proxy for anything else, or at least we have no scientific evidence on that point.
- QuadmasterXLII 1y agoFirst, whiteboard interviews were a great selection criteria for about 30 seconds before it became public knowledge that being able to pass them was a ticket to a google salary. Subsequently, they functioned literally at all while under the pressure of literal billions of people knowing that they were the ticket to a google salary. A criteria surviving this second challenge is extremely impressive. To put it another way: I can hire based on open source contributions instead of credentials and interview performance. If google decided tomorrow to start hiring based on open source contributions, then their new criteria would leak on monday, and on tuesday the pull requests queues of every major project would simultaneously splatter like bugs on windshields.
- josephg 1y ago> But let's be honest and admit that whiteboard coding exercises aren't actually a proxy for anything else, or at least we have no scientific evidence on that point. Nah. Whiteboard interviews test a bunch of traits that are important in a job. They aren't designed to be a baroque hazing ritual. More generally, we could make a list of desirable / necessary qualities in a good hire based on what they'll spend their time doing. Imagine you're hiring someone to work in a team writing a web app. Their job will involve writing javascript & CSS in a large project. So they need to write code, and read and debug code written by their coworkers. They will need to present their work regularly. And attend meetings. The resulting website needs to be fast, easy to use and reliable. From that, we can brainstorm a list of skills a good applicant should have: - Programming skills. JS + CSS specifically. Also reading & debugging skills. - Communication skills. (Meetings, easy to work with, can explain & discuss ideas with coworkers, etc). - Understanding of performance, UX concepts, software reliability, etc - Knowledge of how web browsers work - Capacity to learn & solve unexpected problems And so on. Now, an idealised interview process would assess a candidate on each of these qualities. Then rank candidates using some weighted score across all areas based on how important those qualities are. But that would take an insane amount of time. The ideal assessment would assess all of this stuff efficiently. So you want to somehow use a small number of tasks to assess everything on that big list. Ideally, that's what whiteboard interviews are trying to do. They assess - all at once - problems solving skills, capacity for learning, communication skills and ideally CS fundamentals. Thats pretty good as far as single task interviews go! > we have no scientific evidence There's a mountain of evidence. Almost all of it proprietary, and kept under lock and key by various large companies. The data I've seen shows success at whiteboard interviews is a positive signal in a candidate. Skill at whiteboard interviews is positively correlated with skill in other areas - but its not a perfect correlation. Really, the problem really isn't whiteboard interviews. Its that people think whiteboard interviews give you enough signal. They don't. They don't tell you how good someone is at programming or debugging. A good interview for a software engineer must assess technical skills as well. Speaking as someone who's interviewed hundreds of candidates, yes. There are some people who will bomb a whiteboard interview but do well at other technical challenges you give them. But they are nowhere near as common as people on HN like to claim. Most people who are bad at whiteboard interviews are also bad at programming, and I wouldn't hire them anyway. The reality is, most people who make homebrew get hired. There's plenty of work in our industry for people who have a track record of doing great work. Stop blaming the process.
- UncleMeat 1y agoHe wasn't actually asked that question, but just used it as a stand-in for the entire category of interview questions.
- funcDropShadow 1y agoThe goal of teaching binary trees is not that you can write binary trees in your sleep, the goal is that you train your ability to derive algorithms and data structures. If you look at what a world class soccer player does during training, most of it will never be applied identically during games. The same is true for university studies, if they focus on fundamentals.
- thrown-0825 1y agoComputer Science in academia is pretty out of line with a lot of skills that are actually used on a daily basis by professional software developers. You can teach fundamentals all day long, but on their first day of work they are going to be asked adhere to some internal corporate process that is so far removed from their academic experience that they will feel like they should have just taught themselves online.
- meindnoch 1y ago>Computer Science in academia is pretty out of line with a lot of skills that are actually used on a daily basis by professional software developers. 80% of software development boils down to: 1. Get JSON(s) from API(s) 2. Read some fields from each JSON 3. Create a new JSON 4. Send it to other API(s) Eventually people stopped pretending that you need a CS degree for this, and it spawned the coding bootcamp phenomenon. Alas it was short-lived, because ZIRP was killed, and as of late, we realized we don't even need humans for this kind of work!
- thrown-0825 1y agoAnd they were right. We no longer hires junior engineers because it just wasn't worth the time to train them anymore.
- Esophagus4 1y agoI’ll challenge that assumption. All of my rock star engineers have CS degrees OR are absolute savants of computer science who taught themselves. They solve problems, not just write CRUD apps. I don’t want people who only have surface level knowledge of calling JSON APIs. They tend to be a serious drag on team productivity, and high performers don’t want to work with them.
- SilasX 1y agoI would also include: 5. Debug why the API's don't behave as documented and figure out a workaround.
- astrobe_ 1y ago
- Gigachad 1y agoSchools still make you manually understand math even though calculators have been perfect for decades. Because it turns out having some magic machine spit out an answer you can’t understand isn’t good and you’ll have no ability to understand when and why the answer is incorrect.
- jacquesm 1y agoI think until the third year of high school you should do without a calculator. There really is no substitute for being able to do basic math in your head. It also helps you to later on spot order of magnitude errors and such, as well as to do good first order of approximation estimates.
- dleeftink 1y agoI'm a bit different then, maths only started to make sense well after picking up a calculator; Wolfram notebooks, Excel and SQL were much easier for me to grok than attempting the equivalent by heart/head/hand. Nowadays, math concepts or papers only makes sense when I can properly implement them as query, it's somehow a basic translation step I need.
- wrs 1y agoIn my ninth grade physics class we had to use a slide rule to do calculations for the first three months to help develop that intuition for orders of magnitude. Also because our teacher was just tired of people reporting results to nine significant figures for measurements they made with a meter stick.
- cratermoon 1y agoOh yeah learning to use slide rule is like a superpower when it comes to understanding orders of magnitude and significant figures. It's also a great way to become very comfortable with logarithms.
- xg15 1y agoI found Factorio being a good paradigm for that. The core game loop is essentially: "Do a task manually, then automate it; then do a higher-level task manually that only became feasible through the automation; then automate that as well, etc etc". But throughout the game, you often drop back down into the lower level tasks, e.g. to understand problems or change the workflow. So in the end an understanding of the entire "stack" of tasks on different abstraction levels is necessary to make progress. This always felt like a good analogy to programming, or really scientific knowledge in general.
- deleted 1y ago[deleted]
- fspeech 1y agoUnfortunately the writer's own understanding of statistics is flawed. For example sample size has not much to do with population size but a lot to do with effect size. For example to demonstrate that a chemical is fatal often a sample size of 1 is sufficient. Population comes into play if there is a large variance of the effect relative to the average size of the effect. You need a good statistical sampling of the population to study the variance but even here sample size if not determined by population size.