4 ms·
I feel like one of the things that school has taught me that is most valuable to me is that there are some things you really hate at the start because you're "b
by sealeck 5y ago
I feel like one of the things that school has taught me that is most valuable to me is that there are some things you really hate at the start because you're "bad" at them. With consistent effort (and letting go of the initial, instinctual, desire to dismiss "unfamiliar" and "hard" as "useless") these things get easier and one can see some value in them.
Consider using notepad; it takes away alot of the interactive features that can make programming smoother. Because of this one has to think harder about the program, what it does, and the semantics of the language. Obviously the IDE is a tremendous productivity improvement, and therefore you'll see most programmers using one, but in an interview it is interesting to see if a person does know of these techniques.
People claim that these are "not useful in the real world" which I guess is sort of true, in the same way that eigenvectors are not useful in the real world until you want to build a leaderboard system that works and avoid a whole bunch of bugs, or in the same way that statistics is not that useful until you want to reliably profile programs, or queueing theory is not that useful until your server is crashing because a million requests just arrived in the last second.
It's also a good test to check "can this person do things they don't find interesting or don't see the value in" because it turns out this is quite important in organisations. You might say "oh this is a clear example of a disfunctional organisation." The problem is that this isn't a simple case of "we messed up" it's that everybody being free to do exactly what they want to is physically impossible. If you want to run an organisation you generally have to produce something. This involves working together because cooperation is so effective that it's impossible to do most things without it. Now when people get together, of course they will disagree over intractable things. "Do we use Go or Ruby", "Kubernetes" or "Docker Compose", etc. If you love VSCode, but also recongise that at whatever organisation you're interviewing (lets call it Z) people enjoy using Notepad, the fact that you're willing to compromise is an important factor to demonstrating that you're not completely obstinate about technology choices.
- cjv 5y agoEigenvectors for building a leaderboard? Can you explain more?
- oumua_don17 5y agoThis article on numerical ranking of sports teams explains the use of eigenvectors [1] https://www.marksmath.org/visualization/eigenbrackets/ https://www.marksmath.org/visualization/eigenbrackets/
- sealeck 5y agoAlso https://buttondown.email/hillelwayne/archive/how-knowing-math-helps-you-write-better-software/ https://buttondown.email/hillelwayne/archive/how-knowing-mat...
- deleted 5y ago[deleted]
- sparker72678 5y agoThese might be great philosophical considerations, but no one is interviewing you for Programmer Heaven. These shitty interviewing tactics make interviewers feel good about themselves and perpetuate a culture of elitism without actually doing anything at all to find people who will actually be good at the job they're supposedly hiring for. "Write a tool to find and sort anagrams in a random paragraph, using BrainFuck. You have 20 minutes." is just about self-pleasure for the interviewer.
- sealeck 5y agoThere's a schism obviously; some practices are obviously abusive and should be stamped out. Interviewing is a two-way process though; I would much rather someone employed such a tactic in the interview because then I could not accept the job instead of showing up and realising how bad it is. At some point it turns out that you have to do things you don't want to no matter what you do. That's the nature of our interconnected reality.