Technical Fraternity : hazing in technical interviews

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
I dont think there is really any perfect solutions as a company you dont really need to care if some great people slip through the cracks as long as what you do gets you good results you will be OK. Fortunately there are different companies and as a canditate you should find something and if you struggle you need to play the game figure out what works and gain those skills. Even if you have to fake it for a few hours.
Obviously; there isn't a perfect solution, but there certainly are some really awful practices; of which I and many others consider WB to be one.
AFAIK many employers have a probationary period anyway, meaning that if a BS artist claws their way through the interview because they swotted well e.g. for a WB question. they'd quickly be exposed and terminated. The issue that I have with theoretical WB test; is that's it too easy to alienate:
  • the introvert,
  • the skilled developer who did not swot prior to interview.
  • etc..
...and end up with the extrovert BS artist who did.
 
Last edited:

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
I certainly agree that one should explore a candidate's prior experience, and ask them questions on that, however, it is also important to additionally ask some standardized questions (which change regularly, and are local to the hiring group for the reasons you mention). I am sure that many interviewers go online and find some poorly thought out standard questions to ask - bad interviewers, and bad companies exist - not much one can do about that, but it's usually self correcting (companies that hire crap developers eventually develop crap and close).
The problem is that many well known SV companies have these so called: "bad interviewers".

Honestly would you really consider asking someone to WB code LL in a language unrelated to the position? WTF is the benefit of that... As you mention LL are a ridiculously simple notion -- one without any irreplaceable application in today's computing, similarly if you needed Objective-C / Swift, why ever would you ask about Java? ...and if you did, would you be surprised if I questioned your motive?
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
[)roi(];18503828 said:
By your measure I should expect to WB problems in a whole group of languages I used to code in, but haven't used for over a decade or more. To be honest, with that ridiculous notion even I would be flustered; I can certainly read the code, but trying to WB a new routine in a language I don't regularly code in, would not only classify to me as hazing, but would certainly strongly encourage me to end the interview. Conclusion -- terminated interview, because they asked me WB solutions in Cobol,RPG,ML,PL/I,... for an iOS job.

If you've got a bunch of languages on your resume that you don't know anymore, then yes, I would absolutely boot you as a fraud unless you explicitly said that these skills weren't current. I've also done COBOL, Pascal and BASIC - but I don't put them on my resume. What purpose would it serve? To show that I have learned and forgotten many languages? That I can pick up an old language in 2-weeks instead of 4? If that was a value add to my resume, my resume would be in a pretty sad state.

Also, you wouldn't be unjustly passed over because it's "iOS job", you would be justly passed over because you're dishonest, or because the freshness/accuracy of your entire resume is now called into question.

[)roi(];18503828 said:
[*]Questions were naturally repeated; meaning they were at some point published and answers well debated -- i.e. just like the swotting for theory; candidates were able swot for "Brain teasers".

Nonsense. Do you have any idea how many possible algorithm questions are out there?

[)roi(];18503828 said:
[*]Solving a brain teaser like testing theory had no direct correlation to experience or ability.

If you think that, you're clueless.

[)roi(];18503828 said:
Yet you argue the point for the examples I gave, where this clearly was not the case. For all your attempts at making this sound viable, you really are describing what sounds like something in between pure theoretical WB and "brain teasers". Neither which have any basis in fact (that I know of) for their accuracy in interviews. You're as I said, welcome at any stage to share material to the contrary.

What on earth are you talking about? The Linked List question? As I said that's a special case like fizzbuzz - we do sometimes ask that, but only if the candidate has done so badly on the other questions that we want to see if we should send them home early or end the phone screen early.
 

skimread

Honorary Master
Joined
Oct 18, 2010
Messages
12,419
[)roi(];18503638 said:
In this case it was certainly not in that salary bracket; for her skills I would imagine it would around $100K + that it would have probably been based in Michigan and not SV.

But that's not the point. The point is why these style WB questions are used in interviews when all it can prove is:
"they can read an algorithm and memorize it. They can learn which data structures to apply to which word problems."

Not forgetting, that introverts would probably be more inclined to fail at any test expecting them to perform in front of a group. How natural is this? E.g. How often in a day of programming are you expected to WB program your way to solutions?
That's the issue with how computer science is taught at American Universities. I have a computer science degree from SA but when I went through the opencourseware Computer Science courses at US universities I was out of my depth as their focus is heavily on algorithms and in SA I got only taught the basic ones. That's why the focus on algorithms in US interviews is because their CS programs focus so heavily on it and knowing it is not dependent on a programming language so for them it's a fair way to test candidates.

Also in the US your job is really so niche at these tech companies they really want to see not just if you have the programming skills but that you are really smart. Typically these companies pay you to fly over to their HQ and they pay for hotel accommodation just for the interview. There focus is really to get the smartest people in the world.
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
[)roi(];18503910 said:
The problem is that many well known SV companies have these so called: "bad interviewers".

Honestly would you really consider asking someone to WB code LL in a language unrelated to the position? WTF is the benefit of that... As you mention LL are a ridiculously simple notion -- one without any irreplaceable application in today's computing, similarly if you needed Objective-C / Swift, why ever would you ask about Java? ...and if you did, would you be surprised if I questioned your motive?

I really don't think this is the case - I have participated in 10's of interviews as a candidate, and thousands as an interviewer (and sometimes hiring manager). I also read the write up of the other 6-10 interviewers that day (so several hundred individuals). I've never seen anyone booted because they weren't able to just implement some standard algorithm. The only exception is fizzbuzz, linked list, and some elementary maths questions (for maths or quant positions) - these are only used for early interview termination. There is very little "popular" movement or discussion about WB coding - pretty much everyone does this as part of the interview process. I've only ever heard a handful of people complain about it, and they generally weren't very good - so it seems it works.

I would ask for other languages that are on the resume to get a feel for how much is fiction - same goes for skills (don't claim to know linear algebra and not know what a determinant is, etc.). I also don't really care whether or not I test them in the language for the job because learning a language is relatively trivial.
 
Last edited:

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
That's the issue with how computer science is taught at American Universities. I have a computer science degree from SA but when I went through the opencourseware Computer Science courses at US universities I was out of my depth as their focus is heavily on algorithms and in SA I got only taught the basic ones. That's why the focus on algorithms in US interviews is because their CS programs focus so heavily on it and knowing it is not dependent on a programming language so for them it's a fair way to test candidates.

Also in the US your job is really so niche at these tech companies they really want to see not just if you have the programming skills but that you are really smart. Typically these companies pay you to fly over to their HQ and they pay for hotel accommodation just for the interview. There focus is really to get the smartest people in the world.

Yup. They also teach coursework masters, so they broadly cover some pretty advanced topics in comparison to SA postgrads.
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
That's the issue with how computer science is taught at American Universities. I have a computer science degree from SA but when I went through the opencourseware Computer Science courses at US universities I was out of my depth as their focus is heavily on algorithms and in SA I got only taught the basic ones.

Also in the US your job is really so niche at these tech companies they really want to see not just if you have the programming skills but that you are really smart. Typically these companies pay you to fly over to their HQ and they pay for your airplane ticket and hotel accommodation just for the interview. There focus is really to get the smartest people in the world.
I started as a self taught programmer in the late '70s; and only after ~15 years did I decide to complete a CS degree -- It's was largely painful as most of the theory I had already garnered during my 1st 20 years of coding, it was essentially going through the motions to get the paperwork. Similarly to you I was peeved that the local varsities curriculum is so dated when compared to the US and/or Europe; plus for the last few years I've privately tutored quite a few CS students at Wits, and UCT -- the deteriorating standards is alarming; which should also explain why I chose to complete my PhD through a US distance learning university.

Back to the topic
Varsity curriculum differences aside; there is as described in the related link, a sector of the programming community that did not start out with a formal education, that essentially fast tracked their way into programming, call it self taught or on-the-job. These programmers tend to be initially far more specialised and less general than the new varsity crews -- the argument I'm making is that these more "specialised" or non varsity track programmers can be highly skilled and smart, but would fail most theoretical WB if they didn't take time to swot this beforehand. To be honest many of the students I met at Wits and UCT would similarly struggle without prior preparation. The question is what are we testing: "a person ability to swot", or "acquire skill", and "intellect"?

The main quote I started this thread is from Russ Bishop, who is essentially also self taught, but is regarded by the general community as one of the smart ones. Yet he like many others would have been easily discarded by what is essentially a stupid theoretical validation test earlier in his career. The next person I'll refer to is: Joe Groff, similarly a self taught individual without any varsity track; yet both of these individuals were ultimately employed by Apple in the Developer Tools teams. Joe in particular is regarded as one of the key compiler engineering minds behind Swift and SIL LLVM; Apple's new programming language. If like Entelect your goal was to possibly reserve some form of "bragging rights" -- i.e. we only employ degreed people, the you'd be happy to skip these guys.

If however your goal is to employ the best skill you can; then you would do well to look further afield, but along with that decision comes the realisation that early (young) fast trackers have some quirks; ones that only an idiot would immediately discount as lacking in intellect.
 
Last edited:

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
I really don't think this is the case - I have participated in 10's of interviews as a candidate, and thousands as an interviewer (and sometimes hiring manager). I also read the write up of the other 6-10 interviewers that day (so several hundred individuals). I've never seen anyone booted because they weren't able to just implement some standard algorithm. The only exception is fizzbuzz, linked list, and some elementary maths questions (for maths or quant positions) - these are only used for early interview termination. There is very little "popular" movement or discussion about WB coding - pretty much everyone does this as part of the interview process. I've only ever heard a handful of people complain about it, and they generally weren't very good - so it seems it works.

I would ask for other languages that are on the resume to get a feel for how much is fiction - same goes for skills (don't claim to know linear algebra and not know what a determinant is, etc.). I also don't really care whether or not I test them in the language for the job because learning a language is relatively trivial.
Similar to you I have been interviewed in the 10's, but interviewed hundreds. Clearly I was rubbish at it in the beginning, but as with anything knowledge and skill is developed; and the biggest takeaway from this: recruit for talent, ethic & smarts, because as you've in a way admitted learning languages and similarly most theory is relatively trivial (if not a bit boring at times).
 

kripstoe

Expert Member
Joined
Sep 15, 2012
Messages
3,820
[)roi(];18504178 said:
Similar to you I have been interviewed in the 10's, but interviewed hundreds. Clearly I was rubbish at it in the beginning, but as with anything knowledge and skill is developed; and the biggest takeaway from this: recruit for talent, ethic & smarts, because as you've in a way admitted learning languages and similarly most theory is relatively trivial (if not a bit boring at times).

What type of work situation (big, small, startup company, etc) do you typically recruit for? I'm asking, because surely there are other factors to take into consideration also? And while I'm thinking about that, what factors do you generally take into consideration?
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
[)roi(];18504178 said:
Similar to you I have been interviewed in the 10's, but interviewed hundreds. Clearly I was rubbish at it in the beginning, but as with anything knowledge and skill is developed; and the biggest takeaway from this: recruit for talent, ethic & smarts, because as you've in a way admitted learning languages and similarly most theory is relatively trivial (if not a bit boring at times).

And where you did interviews and were interviewed, did you see people being asked rote algorithm memorization or non-WB questions? The reason I brought up my experience is that it's almost all in SV. Why do you think the theory is trivial? It's by far the hardest part.
 
Last edited:

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
What type of work situation (big, small, startup company, etc) do you typically recruit for? I'm asking, because surely there are other factors to take into consideration also? And while I'm thinking about that, what factors do you generally take into consideration?
I started out in mining technology systems (including Payroll / Time & Attendance), and then moved into Petrochemical sector; worked for 3 out of the 5 largest (1 in US, 2 in Europe), 1 US solution vendor for the convenience / forecourt retailing systems, and another in Germany, then back to SA as a Consulting Director in a local consulting house providing services to all the major Petrochemicals; covering Forecourt, Convenience Stores, EFT (Electronic Funds Transfer / Payment) systems, and SAP, and then I finally went solo about 6 years ago.

It varied depending on the skills we needed at the time; some were highly specialised, other less so. On the programming side it would depend largely on situation; some resources need to start off running, whereas others were recruited for growth / initially bug fix and maintenance. I've used many different techniques including WB to source individuals; yet as I mentioned I started off being really awful at this (nobody get's it right the first time); over time I found it far valuable to test the individual behind a computer rather than a WB; but most importantly to involve more opinions (more interviews); because inevitably someone else is going to see something you didn't; ultimately if all the opinions were mostly positive, we hired with a probationary period -- however that would only cover inability to adapt to the work environment, team and pressures i.e. it certainly wouldn't cover things we could establish and/or exclude well in advance of the 1st interview i.e. reference, qualifications, specific specialisation, ...

Ultimately I probably garnered the most about an individual by assessing their past work, with a specific focus on reasoning process. Naturally when someone new to field is starting out, they wouldn't have much of that; so the assessment would have to focus primarily on potential (e.g. new varsity interns)
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
Why do you think the theory is trivial? It's by far the hardest part.
I'm not sure if you read the Functional Programming articles I've started posting -- more specifically the part where I mention the distinction between Easy and Simple. Basically Theory or Programming is NOT Simple, but it certainly (over time) becomes easy; exactly as you implied with acquiring another language.

However whilst we may consider this an easy task (re our experience) -- if you think back the move from language 1 to language 2 was probably one of the first difficult hurdles that we had to overcome as an intermediate programmer. Similarly learning algorithms, paradigms, advanced type theory, ... yet even these overtime, similar to learning another language...becomes a lot easier to acquire, like the next language. I think that's the sentiment that Russ tried to convey in his blog post with:
I can teach someone AVL trees in less than a day. We can whiteboard it together. Within a week they can implement it and the associated unit tests.
The point being that these are not inherent traits; they can be easily taught and / or acquired when needed.
 
Last edited:

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
And where you did interviews and were interviewed, did you see people being asked rote algorithm memorization or non-WB questions? The reason I brought up my experience is that it's almost all in SV.
Similar but not the same; Dallas, Atlanta and SV, but also London, Paris, and Hamburg. Whereas the SA gap is apparent; it's not so for European education; so that's applicable.
It was quite varied; theory, algorithms had their place, but it generally was always second to individual. As I said I started off making a lot of mistakes, thinking that a strict and clinical evaluation would ensure the best resource -- ended up being a bigger miss than hit. Recruiting specialists was a whole different thing; focusing on WB and theory would only start you off on a bad footing; achievements & experience count for far more, and personality is even secondary.

/Edit: The only exception to rule in all of this; was the French. You're rated on the academic institution i.e. attend a low ranked one and you're going to struggle to get senior roles (i.e. your degree is considered worthless), and in turn your growth is stunted (never communicated, but it becomes quite apparent when you work there).
 
Last edited:

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
[)roi(];18504414 said:
I'm not sure if you read the Functional Programming articles I've started posting -- more specifically the part where I mention the distinction between Easy and Simple. Basically Theory or Programming is NOT Simple, but it certainly (over time) becomes easy; exactly as you implied with acquiring another language.

However whilst we may consider this an easy task (re our experience) -- if you think back the move from language 1 to language 2 was probably one of the first difficult hurdles that we had to overcome as an intermediate programmer. Similarly learning algorithms, paradigms, advanced type theory, ... yet even these overtime, similar to learning another language...becomes a lot easier to acquire, like the next language. I think that's the sentiment that Russ tried to convey in his blog post with:

The point being that these are not inherent traits; they can be easily taught and / or acquired when needed.

You and Russ seem to have a fairly simplistic perception of this "theory". Someone who is good at this isn't simply someone who can be taught something like an AVL tree algorithm, it is someone who can create such an algorithm on their own.

The very real scenarios that people at this level encounter on a daily basis, are things like: I need an algorithm/datastructure with an O(logn) search and O(logn) insert and delete, however:
- searches are far more common than insertions or deletions,
Or
- the the probability that a search key will be used increases if it was used recently
Or
- the the probability that a search key will be used decreases if it was used recently
Or
- the tree needs to be accessible to hardware, so is in uncached memory
Or
- the tree can be altered by another thread

How would I alter the algorithm to exploit the above knowledge and improve efficiency?

Or the question could be:
- how do I efficiently compute a distributed covariance matrix from a multi-petabyte design matrix on heterogenous hardware?

Or:
- how do I efficiently sort the transparent fragments of 3D model during render in order to get correct transparency?

Or:
- how do I quickly determine if one 3D model is roughly a translation, scale and/or rotation of another (or any combination thereof)

Or:
- how do I compute the 3D mesh resulting from the intersection of two meshes? What if it's a tetrahedral volume mesh?

Point being, these aren't things that you rote learn from textbooks or get Russ to teach you. If you're lucky you may be able to find a paper on something similar, however, case specific variations in the problem tend to provide a massive opportunity to develop a custom algorithm that just works much better. People who have this ability are who we look to hire.
 
Last edited:

skimread

Honorary Master
Joined
Oct 18, 2010
Messages
12,419
The story in the link that OP posted is pretty biased. Calling it a Technical Fraternity is rather sexist. Maths and algorithms is non sexist. Also to mention how she should commit suicide really won't make anyone take her seriously. She goes on unemployment benefits and the same time start learning programming in a year and a half and comes across of having a a rather entitled view that being a woman she can get into well known companies.

She raises very valid point and articulates it very well. Pity that is her only post. I think she should have rather focused on writing more blog posts on her journey as a programmer she could have used that to become more well known and build up a network rather than come across as a self entitled American
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
[)roi(];18504626 said:
One of Apple's related tweets.
View attachment 395462

I don't see how this is relevant. There are plenty of jobs out there that either:
- don't require any CS specific skills at all
- or require CS skills, but don't require the paper (BTW, Apple Pay explicitly says BS or preferably MS, or "equivalent experience").

It is up to the employer to decide if they need CS skills and/or at what level, not the candidate. As above, not requiring a CS degree doesn't mean you don't need the skill set.
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
You and Russ seem to have a fairly simplistic perception of this "theory". Someone who is good at this isn't simply someone who can be taught something like an AVL tree algorithm, it is someone who can create such an algorithm on their own.

The very real scenarios that people at this level encounter on a daily basis, are things like: I need an algorithm/datastructure with an O(logn) search and O(logn) insert and delete, however:
- searches are far more common than insertions or deletions,
Or
- the the probability that a search key will be used increases if it was used recently
Or
- the the probability that a search key will be used decreases if it was used recently
Or
- the tree needs to be accessible to hardware, so is in uncached memory
Or
- the tree can be altered by another thread

How would I alter the algorithm to exploit the above knowledge and improve efficiency?

Or the question could be:
- how do I efficiently compute a distributed covariance matrix from a multi-petabyte design matrix on heterogenous hardware?

Or:
- how do I efficiently sort the transparent fragments of 3D model during render in order to get correct transparency?

Or:
- how do I quickly determine if one 3D model is roughly a translation, scale and/or rotation of another (or any combination thereof)

Or:
- how do I compute the 3D mesh resulting from the intersection of two meshes? What if it's a tetrahedral volume mesh?

Point being, these aren't things that you rote learn from textbooks or get Russ to teach you. If you're lucky you may be able to find a paper on something similar, however, case specific variations in the problem tend to provide a massive opportunity to develop a custom algorithm that just works much better. People who have this ability are who we look to hire.
Sorry but your rant IMO sounds a little like farcical disillusionment; the point of theorems is that in capturing an idea / process we are able understand and similalry empart that knowledge.

By your measure e.g. functional theory apects like zgyohistomorphic prepromorphisms and comonadic cofunctors would be considered the restrictive domain of functional category research theorists, whereas the former actually is a bit of category theory joke that in brief simply relates to a grouping of recursion techniques that can be easily taught and mastered by programmers, similarly the latter part refers to functional equivalence of objects and the equivalence of contravariance (a kin to liskov's substitution principle).

The point is every bit of theory; no matter how complex can be taught, and whilst initially many may not be able see beyond the techno jargon, let alone derive their own formulation from these principles, everything in time can be mastered. Naturally we talking about ability, where the first hurdle was becoming an effecient programmer; generally once a person excels at that, there is no fundamental reason why they could not in time understand advanced type / category theory, even to the point of deriving their own unique formulations.
 
Last edited:

cguy

Executive Member
Joined
Jan 2, 2013
Messages
8,527
[)roi(];18505552 said:
Sorry but your rant IMO sounds a little like farcical disillusionment; the point of theorems is that in capturing an idea / process we are able understand and similalry empart that knowledge.

By your measure e.g. functional theory apects like zgyohistomorphic prepromorphisms and comonadic cofunctors would be considered the restrictive domain of functional category research theorists, whereas the former actually is a bit of category theory joke that in brief simply relates to a grouping of recursion techniques that can be easily taught and mastered by programmers, similarly the latter part refers to functional equivalence of objects and the equivalence of contravariance (a kin to liskov's substitution principle).

The point is every bit of theory; no matter how complex can be taught, and whilst initially many may not be able see beyond the techno jargon, let alone derive their own formulation from these principles, everything in time can be mastered. Naturally we talking about ability, where the first hurdle was becoming an effecient programmer; generally once a person excels at that, there is no fundamental reason why they could not in time understand advanced type / category theory, even to the point of deriving their own unique formulations.

Yeah... Totally...
 
Top