4 ms·
Nothing wrong with functional languages, and from my experience an engineer who knows one or two functional dialects tends to be pretty good. Exceptions exist b
by bostik 10y ago
Nothing wrong with functional languages, and from my experience an engineer who knows one or two functional dialects tends to be pretty good. Exceptions exist but they are rare. We also give our candidates the freedom to use any language they want. After all, there are only four language families; the rest is mostly syntax.
But I do carve out a special exemption for myself when[+] I interview someone. I kindly request the candidates that they don't use Scala or Prolog.
+: I interview a lot of people.
- macintux 10y agoWait, you preclude Prolog? If I found someone good at Prolog, I'd assume they could reason intelligently about any problem/language.
- bostik 10y agoYes, I do. I've tried to get a grip on the language and I simply cannot understand it. How the hell am I supposed to evaluate a candidate's performance if I have no clue what they are doing when attacking a problem?
- throwaway729 10y agoWhy not Scala?
- bostik 10y agoBecause, IMO, it combines the worst aspects of Java, Delphi and FP family traits in the same package. Trying to follow what a Scala program does under the hood makes my head hurt. Following the edge cases through a forest of syntactical candy-floss is just too much. The plain Java parts are not bad, but the moment you pull out and nest all the special lispy shortcuts... from that point onwards I need to expend a big fraction of my brain cycles trying to figure out just what the hell the piece of code is actually doing. Or trying to do - because I can't properly trace the subtler logical parts. And the end result is that, with Scala I do not feel qualified to assess your problem solving approach. Code should be written for computers to run, but for humans to understand.
- jfoutz 10y agoif you ever care, the wizard book[1] can get you started with a toy implementation of prolog. it's just searching through a big state space, really not much to it. The key idea is unification. PAIP builds up to it in a nice way, and the scheme language spec has (had?) a nice unifier as an example[2]. it's also pretty reasonable to just say to hell with prolog, and go do other fun things with your life. But if you do care at some point, it's not magical. it's just a fancy search. [1] https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-29.html#%_sec_4.4 https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-29.htm... [2] http://www.scheme.com/tspl4/examples.html#./examples:h10 http://www.scheme.com/tspl4/examples.html#./examples:h10
- spudlyo 10y agoA buddy of mine, for fun, has learned how to hand assemble X86_64 ELF binaries using a primitive line oriented text editor and arcane keyboard sequences. He's used this technique to bootstrap his own stack based programming language and tools. He's got an interview coming up, where he can work in the programming language of his choice. I tried to talk him into doing his coding problems in hand assembled X86_64, but he apparently wants to get the job and doesn't want to come off like an arrogant jerk, so it's going to be Python.
- dbcurtis 10y agoummm.... okaaaaay.... so in past live's I've managed processor validation groups, including at Intel, so if somebody came in and hand-assembled X86_64 code right before my eyes, I'd think "Great! Most people have to learn that on the job." Being able to disassemble X86_64 in your head is a valuable skill, too. For my next question I'd probably move on to asking them how to create a particular pattern of I-cache misses. And for bonus points, write out the bits of pi as a 32 bit float.
- majormajor 10y ago> But I do carve out a special exemption for myself when[+] I interview someone. I kindly request the candidates that they don't use Scala or Prolog. What if I offered to teach you basic Prolog for an hour ;)? One of my favorite side projects was playing around with it and seeing how clean and concise it could make the rules for T9-style (this was like ten years ago) predictive text matching, going from digit -> letter.
- titanomachy 10y ago> there are only four language families Lisps, MLs, stack languages, and SQL.