5 ms·
I think this is great idea. Actually, anytime somebody finds a way to engage students to think in a different way than just trying to memorise facts is a win,
by twawaaay 4y ago
I think this is great idea.
Actually, anytime somebody finds a way to engage students to think in a different way than just trying to memorise facts is a win, IMO. I think it is lamentable that students are asked to rely more and more on recalling facts at the time where it is becoming less and less important compared to critical thinking. This is lazy way to do something about structural education system issues. I can't even call it "solving", because it is not really solving any problems, just ensuring purely educated students.
One of my programming interview question is a flawed piece of code implementing an algorithm. The algorithm is there in its entirety, so there is no need to actually recall the details of it. The task is to point out and fix functional flaws, then critique and fix non-functional problems.
I find this gives me much better appreciation for the candidate compared to a standard hit or miss test where the candidate is asked to implement an algorithm and they may or may not have the luck to know or come up with an answer.
It is also practically impossible to prepare for or cheat even if you somehow get to know from recruiters what you can expect (they do ask people and they do prepare candidates...)
A long time ago I had people cheat by using materials on remote interviews (which I did way before Covid). Now I invite them to use external materials or even ask questions ("This task does not require anything outside the standard library. I don't care if you remember it, if you can describe what the function does I will gladly tell you the name and describe how it works exactly.")
- N_A_T_E 4y agoPerhaps this style of interview will be a great antidote to the elitecode arms war hellscape we accidentally created.
- twawaaay 4y agoMy initial motivation was just low amount of information I was getting about the candidate. The point of interview is to get to know each other. To figure out if I would like to work with the person. But the interview is very small amount of time to figure this out and there is very little information when all you are getting is the candidate staring at the screen until they come up with an answer. On the other hand I can't just have a chit chat with the person -- there are people who are good at talking but can't do shit. I resolved I will not hire a person that can't actually demonstrate they can do things but it is upon me to make this work. So I pretty much dropped questions that only probe knowledge and decided to focus exclusively on questions/tasks that require more mutual engagement. Like development tasks that require the candidate to work with me to produce a solution. Or open ended technical questions that prompt discussion, etc.
- dataexporter 4y agoIt wasn't accidentally created. It was deliberately designed that way as an alternative to IQ tests and aptitude tests.
- tablespoon 4y ago> Actually, anytime somebody finds a way to engage students to think in a different way than just trying to memorise facts is a win, IMO. I think it is lamentable that students are asked to rely more and more on recalling facts at the time where it is becoming less and less important compared to critical thinking. That's a false dichotomy (which I used to believe, too). You can't "think critically" in a vacuum. You need memorized facts to do it (even if you plan to do more research to find out more facts). I think it's important to spend time focused on memorization, but education can't stop there, either.
- cptcobalt 4y agoNo, it's not a false dichotomy. Yes, you need to build knowledge via a body of memorized facts, but "the education system" currently hyperindexes on rote memorization, which only works for some types of learners, not all. This assignments requires applied critical thinking and applying tools (yes, including memorized knowledge) to evaluate a paper. This requires working with multiple tools, and will also help the student retain more knowledge; perhaps more than just with rote memorization where you just "discard" the knowledge after your exam (by not interacting with or keeping up with it).
- tablespoon 4y ago> No, it's not a false dichotomy. Yes, you need to build knowledge via a body of memorized facts, but "the education system" currently hyperindexes on rote memorization, which only works for some types of learners, not all. Honestly, that's not how I recall it. Maybe it's changed, but I internalized "memorization is a waste of time," and I'm pretty sure I picked that up at a young age from teachers (though I could have misunderstood/overgeneralized).
- curiousllama 4y ago> "the education system" currently hyperindexes on rote memorization Which education system, and in what subjects? I recall quite the opposite (rando public schools in the US). In hindsight, I would have benefitted a lot from simply memorizing more things. My freshman calc grade would've been a lot higher if I had bothered to memorize trig identities in HS. Sure, I could derive them, but I had to notice "this is an identity" first - the lack of memorization actually hindered my intuition.
- myself248 4y agoThis is brilliant. Is it based on a real bug you found in your company's own code?
- twawaaay 4y agoNo. I had questions in my repertoire that came from specific situations I had at work. Things like "Your application fails with a message 'There is no space left on the device' but when you check the filesystem you find there is a lot of space available. What could have caused the problem." Or a static initialiser block in Java that was executed multiple times when the application started causing a problem. I found I was just comparing somebody elses experience to my own which is wrong. I should be trying to figure out if the person is able to do the job. So I stopped asking those questions and instead I am selecting topics that every developer should know and constructing specific situations where the person with the knowledge of a given topic should immediately recognise what is happening.
- tzs 4y ago> One of my programming interview question is a flawed piece of code implementing an algorithm. The algorithm is there in its entirety, so there is no need to actually recall the details of it. The task is to point out and fix functional flaws, then critique and fix non-functional problems. That's similar to what I plan to do if I ever find myself having to interview job candidates. My plan is to have a selection of LeetCode problems that I have solved before and ask the candidate to pick a two or three of that seem interesting. I will NOT ask them to actually solve them or code solutions. We will just talk them over to come to an agreement on what the problem is asking for, talk about what edge cases we might have to worry about, and then toss out suggestions on how to approach it. A whiteboard would be available. I'd try to let the candidate take the lead in the discussion, just contributing myself enough to keep things moving if the candidate seems stuck on something. Once we've got a solution (regardless of how much of it came from the candidate and how much came from me moving things alone), we'd go the the discussion section for that problem and take a look at the solutions people have posted, and I'd ask the candidate to check a few of those for correctness and to suggest improvements. A lot of the solutions people post in the discussion are wrong, ranging from just simple coding goofs (like not initializing a variable or using the wrong variable) through missing an edge case all the way to just flat out their algorithm is just wrong.