Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

quote:

10+ years doing QA automation, specifically cites writing Selenium cases in Java, is shown the following C# test method and requires 30+ minutes of discussion to understand 'what it does':
[TestMethod]
void TestingTheImportantThing
{

}

quote:

Phone interview. 5+ years C# experience. Starts giving some very weird answers to things. Begin lobbing softballs, they all remain unanswered, or answered with the sound of frantic typing. Examples:
What is the difference between the Class and Interface keywords?
What is the difference between a signed and unsigned integer?

quote:

Asked about experience. References how she used to work with local Microsoft MVP. Asked about anything. References how she used to work with local Microsoft MVP. Entire interview, learned nothing about her, learned lots about Microsoft MVP.

Adbot
ADBOT LOVES YOU

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

sarehu posted:

You're wrongly assuming the ropes burn at the same rate in each direction. :colbert:

This does pretty much undermine the logic. Since it's explicitly said that the rope burns unevenly you can't reasonably burn from the other end. Because otherwise wouldn't the answer just be to fold the first rope in half, intersect either half-of-half point on it with the half point of the second rope, then light either end of the second rope?

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

Confusion posted:

Then ask them to tell about their previous projects, let them do a mini presentation, explaining the product, the problems, the challenges, the solutions, their role in it. That is way better method to find out of somebody is lying about their experience than having them do a FizzBuzz. (And it will give you some insight in how they operate in development teams and what they may contribute to a team, which is way more important than pure coding skills anyway)

The thing is, though, a lot of people in tech *can* talk proficiently about things. Even *technical* things. But still be incapable of implementing those things reasonably.

A developer buddy of mine recently interviewed for a mid-level seat(3-5 years experience) on another team in the company. They asked him why you'd want to use a StringBuilder. He told them when you're doing lots of string concatenation. They told him he was the first candidate they've spoken to that could answer the question correctly

This isn't even in the weeds of REALLY complicated stuff, I mean holy poo poo.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

leper khan posted:

The theory I usually hear about senior people with known experience is that they've essentially become managers and haven't written new code for a few years. At some point, I would expect most people who no longer interact with code to lose their abilities, much the same way you forget the specifics of advanced mathematics unless you keep up studies.

Not sure why they wouldn't interview for managerial positions if that were the case though. :iiam:

Sure, but I mean - I haven't written C++ in quite a few years. Nor have I written PHP in a few years. But you know what? I can at least cobble together a PSEUDOCODE FizzBuzz (or hack together a mostly-legible for() loop) and that's the thing. When people fail FizzBuzz it isn't 'whoops forgot a semicolon! it's "i can't even start to write the broad-strokes logic".

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

Klades posted:

If you really wanted to change the code so that someone who didn't know about bitwise operators could look at it and tell you what it was doing, it'd be something like this

You're dodging bitwise logical math, but you're still bitshifting. If you REALLY want to use common operators just divide by 2 to shift :v: (yes, yes, types, etc)

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings
Some time back I got a panic call from a colleague I knew only vaguely. They were 2 weeks behind on a project, deadlines were due, holy poo poo did I know anything about Angular?

2 weeks. Still couldn't figure out how to change the static bound text on a mock-up page.

Is now an SDE/Design Lead at Microsoft. Probably because of the Duke CompSci degree and big-tech internship.

Life ain't fair, man.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings
Am I wildly crazy to imagine that someone applying for a senior developer position with nearly 20 years of experience should probably be able to code, from scratch, on a whiteboard, a basic 'count the number of times each letter occurs in a string' method - that works and is functional?

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings
I didn't ask the question, one of the other team members had before I got there and it was already whiteboarded.

It looked ROUGHLY like:

code:
private Map<string,int> Count(string input)
{
	string word = "apache";
	int length = word.length;
	Map<string, int> counts = new HashMap<string,int>();

	for(int i = 0; i < length; i ++)
	{
		if(counts[i] != null)
		{
			counts[i]++;
		}
	}

	return counts;
}
I wonder why we have that word declaration, but ok?
I wonder about the micro-optimization around the length.
I asked him about why the Map uses a string as its key type, and he tries to school me about 'generics'. I'm like yes but why string and not char? He kind of trips up and when I offer "Does Java just treat individual letters as strings, so a string is just a collection of strings?" He jumps to agree. Weird, but...ok?
I wonder why he uses the iterator directly to index the map - if I'm not mistaken it might be a compile-time error(or provide erroneous results) since at least with C#'s implementation of Dictionary, you get yelled at that int isn't string.
I wonder how, even supposing that worked, this would ever not return an empty map, since each letter-key would not exist at first, and therefore wouldn't be incremented.

Cuntpunch fucked around with this message at 20:30 on Aug 9, 2016

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

Klades posted:

Even better, if you've represented this accurately all it does is make a new HashMap, then increment the first six elements of that map if they exist, which they don't because it's a fresh, empty map.

I can't fathom that Java's HashMap supports lookup-by-index, since it seems like that would cause a conflict when, say, an int *is* your key but things have been added out-of-order?

The only 'liberty' I took with this code is that the scribbling on the board had done some other method call(to an unimplemented method) to do the incrementing - and that I *think* the nullcheck was using a method call(probably similar to C#'s .ContainsKey()) - but the handwriting was bad enough and the intent, I think, clear(although wrong).


While on the topic, when I tried to ask about the different types of References that Java supports, and when you might use them, he wasn't sure what I meant. So I referenced the new HashMap() in his code and noted it was a strong reference. TO which he began explaining Strong and Weak typing to me. (I think he probably meant to try and talk about explicit/implicit, even if that was on-topic).

Cuntpunch fucked around with this message at 22:48 on Aug 9, 2016

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

sarehu posted:

I interviewed somebody senior once and, being new, decided to overlook the use of a hashtable<int,T> where the ints were clearly contiguous in [0,n) and an array would be perfectly good. Now I know: It's not okay for code to have that old person smell. If you can't remember basic coding stuff then you don't have the memory capacity to take advantage of the experience that you have.

Yeah this really just added up. Beyond the weirdness around Java's referencing(Strong/Weak/Soft/Phantom), he was also a little bit concerningly vague about IOC strategies - he was able to name 'Dependency Injection' but when pressed for some specifics, couldn't quite define Constructor/Property Injection, Service Location, not even just using a Factory(from a Java dev!)

Along with other random bullet points on his resume, I tried to ask for a bit of a differential opinion with related tech. Why Angular over other things? Why would you use Mongo instead of traditional DBs? When is node appropriate rather than something like Apache? He just kind of...it was quick StackOverflow level quips rather than what I'd have liked/expected, which is at least one or two very serious "here is the razor used to decide when this tech is appropriate to the solution" points.

I guess for a guy who talked up how much he was just fascinated by the tech - how he spent lots of his personal time working with and around it, it just felt very weird to not be able to get into a *technical discussion*.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

FamDav posted:

Why node vs Apache though

Because he wanted to talk about his personal projects which largely involved a MEAN stack(everything except Express was listed on his resume as a bulletpoint). Also because it was listed next to the usual HTML5/JavaScript/CSS bulletpoint. So we're specifically talking using it as an HTTP endpoint, at which point why not ask it - especially when he lists a bunch of other Apache projects like Camel and Ant on his tech.

There's no right answer - I'm not a fan of factoid based interviewing, I'd prefer to have a discussion - but I'd expect some sort of answer other than "Well, Node is really fast because of the event, uh, uh, gosh what is it called, I can't think of the name right now"

Adbot
ADBOT LOVES YOU

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

Steve Jorbs posted:

Are companies actually looking to round out their office Jeopardy or pub quiz teams? That's the only scenario I can imagine where hiring people based on how many trivia questions they can get right makes sense.

This thread circles the point, but for hiring up to a mid-senior developer/engineer, there's only so much you can do in a limited time to screen a candidate's technical knowledge. I'm currently involved in tech screening for two positions - one a senior/lead, and one a mid-senior seat - and I find that I'm having reasonable success by having a mix of stuff. Some soft "oh hey just tell me about stuff" to get a feel for whether you're bullshitting by putting it on your resume - does your answer to "So tell me about F#" sound like a stack overflow/wikipedia page? But also mixed in some hard technical trivia around the languages - if they're physically present I'll ask for whiteboarded code, but that isn't always possible.

I mean, when is trivia *too* trivial?

Should a C# developer with 10+ years of experience be able to explain the difference between Reference and Value types and when creating a Value type is appropriate? What about the differences between IEnumerable & IQueryable?

Should a developer with 15+ years of experience be able to describe various IOC options, beyond just 'Dependency Injection'?

Should a developer with a master's degree be able to be asked the classic "n machines, one is faulty, using only 1-to-1 comparisons how do you find the faulty machine?" question and provide a reasonable answer? Or is that trivia?

  • Locked thread