4 ms·
> What's wrong with "I'd use a library" or "I'd Google it"? The point of the question is to solve a problem in ~15 minutes. Algorithms and Data Structures are
by 908B64B197 6y ago
> What's wrong with "I'd use a library" or "I'd Google it"?
The point of the question is to solve a problem in ~15 minutes. Algorithms and Data Structures are used for these because everyone knows them.
- justaguy88 6y agoThats the problem, they _don't_ know them and are expected to study beforehand because they're not used often in many roles
- 908B64B197 6y agoAny serious intro to CS course will have them as part of the curriculum (at least for linked list). Even when not teaching about memory, it's used to teach recursion.
- 567fghvbb 6y agoThat's fine for assessing graduates, but good developers with a lot of experience won't be as familiar with writing algorithms from scratch. They'll have to do a lot of revision for technical tests just to memorise reels of information they'd google in 10 seconds in real life.
- nerdponx 6y agoNot everyone who is a programmer starts with undergrad CS. Why not ask them to build a basic web app in their preferred framework, or read and process a basic text file, or any number of things that are more practical than implementing a low-level data structure?
- skyde 6y agoRight I expect anyone that just graduated 1 or 2 years ago to be able to write it in 15 minutes. But someone who is an expert in machine learning or SQL ... and have not used data-structure for the past 20 year would need to study for it. Do you want to hire the programmer that have 0 deep knowledge of the specific thing you are working on but can quickly tell you the content of CS 101 books or do you want someone that have skill set, experience and knowledge that complement your current team?
- etripe 6y ago> Any serious intro to CS course will have them as part of the curriculum (at least for linked list). Your implied assertion is that a CS degree is required for programming. That's a good way to select for people like you, which is one of the strongest biases in hiring. One should also take survivor's bias into account, increasing the likelihood that if you're a programmer and did a CS degree, you think a CS degree is required. Whether a "serious intro" to CS should include recursion and linked lists depends on whether you think: a. a CS degree should prepare for a programming job b. it should only prepare for a programming job c. a CS degree actually prepares for a programming job d. data structure knowledge is fundamental to programming in general My personal answers are it should prepare for a programming job, but not exclusively, and that it doesn't usually (adequately) prepare for a programming job. In that context, it should include data structures, general computer architecture and similar historic/foundational topics. I wouldn't go so far as to call them fundamental, because that implies they're must haves. I also wouldn't go so far as to say any CS course that doesn't offer them isn't serious. Maybe that school has a greater focus on preparing for the job, or maybe someone's major is more akin to IT project management than technical. In the end, a degree is: * a proxy for general intelligence * a basis for your social network * a status symbol (school pedigree) * an introduction to the topics covered * an authority argument * an indication of how well that person does at tests in an academic setting That's it. If you're lucky, someone with a degree remembers most of what they covered in classes. At best, a CS degree is correlated to someone being able do fill a programming role. What programming may require is: * General intelligence * Systems thinking (e.g. abstraction, information flows, decision trees) * Programming language skills * Patterns (architecture, design, OO/FP) * Knowledge of data structures * General IT knowledge (DevOps) * Domain knowledge * Framework familiarity * Math skills * Solving novel problems * Absorbing new knowledge * Communication skills (requirements gathering, expectation management, reporting, etc) One could arrive at these skills through passion and dedication to the hobby, learning on the job, vocational training, a bootcamp, a CS degree, a PhD and more. Of these skills, the ones least likely to be required for the vast majority of positions are math skills and data structures - beyond the absolute basics. I think it's important not to get our Ps and Qs reversed, don't you?
- 908B64B197 6y ago
- deleted 6y ago[deleted]
- KerryJones 6y agoI would argue that's a bad "point of the question" -- also, many of them are in 50 minute interviews. Call me crazy, I think an interview question should test for one's ability to program well, not test their memorization knowledge. My argument is precisely that linked-list questions are a poor proxy for programming well. It's testing the wrong thing(s).