Page 3 of 4

Posted: Fri Jul 18, 2014 5:00 pm
by Malcolm
A couple months ago, management decides to gut our dev team (responsible for 2 closely integrated products) to the tune of 50% because our funding's suddenly been cut. A couple weeks ago, we successfully beg for more cash. Unfortunately, that was a couple weeks after we told our final contractor we couldn't afford him anymore, so he ended up going to the same place the other 50% went ... the new team that's management's favourite that got all our (and many other people's) fucking money. So, more funding + skeleton crew = additional "resourcing."

The two managers above me are on vacation. The one above them is far too removed from day-to-day ops to handle anything. The two other devs are really there to deal with the other project we're responsible for and their personalities ... they aren't exactly the "take charge and get shit done" type. I, on the other hand, paid attention to Hannibal from The A-Team way too often which means I think I can assemble a fully functional all-terrain tank using only parts in an abandoned auto repair center in under an hour. Which means I'm pretty much in charge of hiring a couple contractors. Resumes started coming in today.

A word of advice to the folks on this board whose progeny might find themselves in the IT industry one day:
If you are going for a software development position, do not leave the "technical skills->programming languages" section blank.

Posted: Fri Jul 18, 2014 6:04 pm
by TheCatt
How's the resume going?

Posted: Fri Jul 18, 2014 6:39 pm
by Malcolm
TheCatt wrote:How's the resume going?
I'm in such a strong bargaining position right now, you've got no idea how tempted I am to apply pressure. It has been extra special ridiculous the past two months. 6.5 months and counting to migrate source code from one TFS server to another, just for starters.

Buddy of mine could probably get me a consulting gig, but he makes approximately what I do now. He also has to wear suits and dress up going into work. I can wear cargo pants and T-shirts I buy from random places.

It's an insanity to be certain, but it's still in the "contained, manageable" quadrant of the FML chart. No major assholes on the immediate team, either.

Phone interviews start Monday. Jeebus save me.

Posted: Fri Jul 18, 2014 7:05 pm
by TheCatt
I wear shorts. T-shirts if I want to.

Posted: Fri Jul 18, 2014 9:42 pm
by Malcolm
TheCatt wrote:I wear shorts. T-shirts if I want to.
Most people think I'm insane when I tell them the value I place on required wardrobe at work. I hate suits. You look like you're covering up your shortcomings with expensive fabrics. I hate ties. They remind me of nooses.

Posted: Tue Jul 22, 2014 6:46 pm
by Malcolm
A word of advice to the folks on this board whose progeny might find themselves in the IT industry one day:
If you are going for a software development position, do not leave the "technical skills->programming languages" section blank.

Word of advice #2: If you claim a decade of Java and .Net/C# experience, the question, "What is class inheritance," should not elicit a response that involves the word "google." Motherfucking wtf? Thank Christ this was one of the calls one of the coworkers was on, because no one would believe me.




Edited By Malcolm on 1406069271

Posted: Tue Jul 22, 2014 9:16 pm
by TheCatt
Our HR person came by today and asked me some questions about our director.

She wins points for:
1) Opening with "You're not in trouble, I just want to bounce things off of you."
[I, for one, never assume HR is around for good things]
2) Concluding the conversation with, "Yeah, I think some people just need to put their big boy pants on."

Posted: Fri Aug 01, 2014 6:40 pm
by Malcolm
Interview process is fucking over in another 2 days. Halle-fucking-lajuah. We have what is more or less a 2-question techie interview.

Question 1. I'd say 50% of the candidates fucked it up. Of that 50%, no one has gotten the best solution. One realized that "divisible by 3 AND divisible by 5" is secret code for "divisible by 15." Fucking hell.

Question 2. The ball-breaker. No one has gotten this without at least a bit of help. They'd get major bonus points if they gave me the performance optimized version off the bat. This single question has shot down more candidates than any techie question, resume, personality issues combined.

Goddamn recruiting firms. It's like being repeatedly helicoptered by the unemployable as they rotate on a large, invisible merry-go-round.




Edited By Malcolm on 1406932976

Posted: Fri Aug 01, 2014 7:43 pm
by TheCatt
OK, so how would you solve #1?

I mean isn't it just:

public function PrintSomething(int i)
{
if (i % 3 == 0) { Console.Write("Fizz"); }
if (i % 5 == 0) { Console.Write("Buzz"); }
}

Posted: Fri Aug 01, 2014 9:32 pm
by thibodeaux
you gotta write the number if it's not a 3 or 5. But yeah I don't get why it's hard.

Posted: Fri Aug 01, 2014 9:44 pm
by TheCatt
thibodeaux wrote:you gotta write the number if it's not a 3 or 5. But yeah I don't get why it's hard.
Apparently it's hard for me cuz I missed the entire first sentence.
static void Main(string[] args)
{
int i =1;
while (i<= 100){
if (!(i % 3 == 0 ) && !( i % 5 == 0)) {
Console.WriteLine(i.ToString());
} else {
if (i % 3 == 0) { Console.Write("Fizz"); }
if (i % 5 == 0) { Console.Write("Buzz"); }
Console.WriteLine("");
}
i++;
}
}

There, even with pretty line formatting.

Posted: Sat Aug 02, 2014 1:48 pm
by Malcolm
TheCatt wrote:OK, so how would you solve #1?

I mean isn't it just:

public function PrintSomething(int i)
{
if (i % 3 == 0) { Console.Write("Fizz"); }
if (i % 5 == 0) { Console.Write("Buzz"); }
}

So close. Just add print(i) at the bottom of the function, jab that function inside a loop that runs 1 to 100 inclusive, and you w1n. Space- and time-optimal.




Edited By Malcolm on 1407002142

Posted: Sat Aug 02, 2014 1:48 pm
by Malcolm
TheCatt wrote:
thibodeaux wrote:you gotta write the number if it's not a 3 or 5. But yeah I don't get why it's hard.

Apparently it's hard for me cuz I missed the entire first sentence.
static void Main(string[] args)
{
int i =1;
while (i<= 100){
if (!(i % 3 == 0 ) && !( i % 5 == 0)) {
Console.WriteLine(i.ToString());
} else {
if (i % 3 == 0) { Console.Write("Fizz"); }
if (i % 5 == 0) { Console.Write("Buzz"); }
Console.WriteLine("");
}
i++;
}
}

There, even with pretty line formatting.

Not optimal in terms of space. Entirely correct, though. Beats 75% of our interviewees, easy.

The dude in the link makes an attempt to explain why it's hard for someone who only knows how to code in a formulaic manner. If you really suck at freeform logic and are nothing more than a flesh-and-blood coding robot, this problem appears to expose that. The bit that's killing me is that the candidates are dudes with, on average, 10+ years of senior/lead experience. I get that commanders probably forget how to dig trenches and can't shoot for shit, but then why apply for a job as a frontline merc?




Edited By Malcolm on 1407002047

Posted: Sat Aug 02, 2014 2:32 pm
by TheCatt
Malcolm wrote:
TheCatt wrote:OK, so how would you solve #1?

I mean isn't it just:

public function PrintSomething(int i)
{
if (i % 3 == 0) { Console.Write("Fizz"); }
if (i % 5 == 0) { Console.Write("Buzz"); }
}
So close. Just add print(i) at the bottom of the function, jab that function inside a loop that runs 1 to 100 inclusive, and you w1n. Space- and time-optimal.
Well, that's not right, because it would always print the number.

So what's not space optimal about the 2nd one?

Posted: Sat Aug 02, 2014 2:50 pm
by thibodeaux
Fuck "optimal." Let the compiler worry about that.

Or else write it in assembler.

Posted: Sat Aug 02, 2014 2:58 pm
by Malcolm
TheCatt wrote:
Malcolm wrote:
TheCatt wrote:OK, so how would you solve #1?

I mean isn't it just:

public function PrintSomething(int i)
{
if (i % 3 == 0) { Console.Write("Fizz"); }
if (i % 5 == 0) { Console.Write("Buzz"); }
}
So close. Just add print(i) at the bottom of the function, jab that function inside a loop that runs 1 to 100 inclusive, and you w1n. Space- and time-optimal.
Well, that's not right, because it would always print the number.

So what's not space optimal about the 2nd one?
Oh yeah. Fucking else block.

Posted: Sat Aug 02, 2014 3:04 pm
by Malcolm
thibodeaux wrote:Fuck "optimal." Let the compiler worry about that.

Or else write it in assembler.
Our source is replete with redundant variables and arrow code up the ass. Debugging is 90% of our work and it's because we don't centralize shit; it's illegal. I don't mean the best performance, I mean code that functions and is both readable and concise to boot.

Posted: Sat Aug 02, 2014 4:17 pm
by TheCatt
Malcolm wrote:Oh yeah. Fucking else block.
I'm going to say you are wrong.

If you don't have the else block, you needlessly re-evaluate both of the expressions, when you know they will both be false, wasting CPU cycles.

Posted: Sat Aug 02, 2014 4:26 pm
by GORDON
thibodeaux wrote:Fuck "optimal." Let the compiler worry about that.

Or else write it in assembler.
I like writing the fewest number of lines as possible. If I can break a repeated process out of inline and it takes fewer lines to load the paramaters up and make the call to do so, then I do that.

That's mainframe talk tho, yo.

Posted: Sat Aug 02, 2014 6:56 pm
by Malcolm
Less code = less shit that can go wrong.