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.
 
  • Post
  • Reply
Wizbang
Jan 13, 2005

"Y...you...oh...okay. I'll...
I'll be here if you change your mind...
we can be space cowboys together later...
I've accepted an offer from another company and cancelled my interview on the East coast. So we'll never know if jeans would have worked! Thank you for the contentious advice

Adbot
ADBOT LOVES YOU

Belgarath
Feb 21, 2003

Paolomania posted:

Sounds to me like he wants the set of words in the dictionary such that the set contains more than one word, all the words in the set are spelled with the same set of letters (are anagrams), the anagrams are of length as long or longer than the length of the words in any other set of anagrams ("has the longest anagram"), and the set contains more words than any other set of anagrams of the same length ("is the largest set of words").
This is exactly it.

I should have been a little clearer in my explanation.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug
Hey guys, I have an interview next Friday. I'm going to wear a suit. :v:

Here's my latest set of interview horror stories: We're interviewing for a lead architect position. We have a standard phone screening containing all of your favorites (abstract class vs interface, some general philosophical questions, etc). This is all C#, for reference.

This guy, an architect/CTO with 20+ years of industry experience, thought that:
- You declare a method as "virtual" if you want to use it in remoting
- You use abstract classes to get around access modifiers
- (my favorite) Dependency injection is used for debugging and has something to do with stack traces (???????). But he's been unit testing with nUnit for 5 years!

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
We don't get too many horror stories since we have a decent phone screen, but one of the post-phone-screen stories is memorable.

After a candidate passes a phone screen, we send them a simple programming test where they can show their style and demonstrate that they can actually program (if they pass, we ask them to make modifications to it during the in-person interview, which filters out cheaters). The problem involves a simulation at a store where a list of customers arriving at various cash registers, each at time X and with N items, is provided and the output needs to be how much time the entire process takes, more or less. This is usually in C# but they can use any language they want.

One candidate, instead of writing the typical while loop which ticks one time unit per loop, actually used a Winforms Timer component and ran the application, with the tick event running the process. His solution was also wrong.

Oh, one more thing. Sometimes on the phone screen I ask candidates with CS degrees to give examples of two sorting algorithms and describe how fast they are. I swear, about 50% of the time, the candidate says 'binary sort'. Why do people keep giving this answer?

subx
Jan 12, 2003

If we hit that bullseye, the rest of the dominoes should fall like a house of cards. Checkmate.

Ithaqua posted:

Hey guys, I have an interview next Friday. I'm going to wear a suit. :v:

Here's my latest set of interview horror stories: We're interviewing for a lead architect position. We have a standard phone screening containing all of your favorites (abstract class vs interface, some general philosophical questions, etc). This is all C#, for reference.

This guy, an architect/CTO with 20+ years of industry experience, thought that:
- You declare a method as "virtual" if you want to use it in remoting
- You use abstract classes to get around access modifiers
- (my favorite) Dependency injection is used for debugging and has something to do with stack traces (???????). But he's been unit testing with nUnit for 5 years!

I think these programmers are the same type as the office workers that don't know how to use a computer.

They use a computer every day, but if you told them to do anything other than click on the icon to open Excel or Word they freak out and have no idea what to do.

The same thing probably happens with programmers - they deal with the same program/software for so long that their view of "normal" programming is horribly skewed.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

subx posted:

I think these programmers are the same type as the office workers that don't know how to use a computer.

They use a computer every day, but if you told them to do anything other than click on the icon to open Excel or Word they freak out and have no idea what to do.

The same thing probably happens with programmers - they deal with the same program/software for so long that their view of "normal" programming is horribly skewed.

You're probably right, it's just that I would expect someone who's applying for a position as an architect to have skills beyond those of a senior developer. Most of the guys we've talked to are below our most junior. I'm spoiled, though; the guy who left and created this vacancy was a genuine badass. At this level, we're most likely getting all the dudes who haven't written production code for a decade or longer and are used to saying "We need a widget that does X" to a team lead that handles the actual design.

New Yorp New Yorp fucked around with this message at 02:51 on May 21, 2011

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde
Maybe you need to get better senior developers or give them more input over decisions? Where I worked up until yesterday, tech archs/tech leads WERE senior developers. At least on the software side. General infrastructure stuff was handled by a different group.

You can't/shouldn't really design something without knowing if it's going to be a nightmare to implement.

Tekopo
Oct 24, 2008

When you see it, you'll shit yourself.


I just went to an interview in the UK in which they had a test in order to see what our level of programming knowledge was. It involved having some memory "boxes" (up to 12) and following a flow diagrams with instructions at every step in order to manipulate the data within the boxes. Later on we had to input the correct number in one of the boxes in order to get the right number of recursions and the last exercise involved correcting an instruction that was incorrect.

Is it standard for companies in the UK to have these kinds of exercises?

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde
Not in my experience, no. I assume it was language agnostic then?

Tekopo
Oct 24, 2008

When you see it, you'll shit yourself.


Yep, the instructions were of the sort "add (number in box 5) with (number in box 9)" and other instructions that simulated if statements or changed previous instructions.

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

Tekopo posted:

Yep, the instructions were of the sort "add (number in box 5) with (number in box 9)" and other instructions that simulated if statements or changed previous instructions.

That can be sort of typical for graduate scheme jobs. For the interview for my first job, I had to write a card sorting/merging algorithm in pseudocode. I was bored so I also wrote it in Java (it was subsequently used as a model answer :smug: ). There was also some system flowchart stuff. It was the kind of place which hires people regardless of whether or not they've programmed before as long as they have a numerate degree - they've had philosophy graduates successfully apply there. Which is fair enough, but they were pretty spotty about providing a programming mentor to people. That said, the worst horrors I saw there was from someone who supposedly did programming at uni. Hardcoded connection strings in the markup portion of asmx pages.

Every other interview I've had since then has been heavily .NET/SQL/design pattern focussed, with some logic puzzles and Maths thrown in.

Lurchington
Jan 2, 2003

Forums Dragoon

tef posted:

unless you're expected to do a whole slew of client facing work, a dress code is a sign you may be writing middleware.

My company's dress code is 'clean clothes; no sweatpants'

That said everyone we've interviewed in the last year wore a suit, so I'm usually of the opinion that unless you just don't own a suit that fits you right, it's probably the best first impression you can go with.

Thel
Apr 28, 2010

Lurchington posted:

My company's dress code is 'clean clothes; no sweatpants'

That said everyone we've interviewed in the last year wore a suit, so I'm usually of the opinion that unless you just don't own a suit that fits you right, it's probably the best first impression you can go with.

I would wear a Hawaiian shirt and shorts every day at your company.

On a not-unrelated note I don't have a suit, never have. I guess my next best bet is black pants/light dress shirt/tie and a decent jacket?

shrughes
Oct 11, 2008

(call/cc call/cc)
I have a suit, the last time I wore it was at a funeral. Are you going to remind me of my relative's death just to get a job?

csammis
Aug 26, 2003

Mental Institution
Even if you're not interviewing or working at banks it is my opinion that every man should have a suit tailored to fit just right because it is a fine loving feeling :cool:

Thel posted:

I guess my next best bet is black pants/light dress shirt/tie and a decent jacket?

Sure, that works. Just to put this out there in the sample set: my typical interview wear is khakis, button-down shirt with no tie, and a sport coat.

Lurchington posted:

My company's dress code is 'clean clothes; no sweatpants'

That said everyone we've interviewed in the last year wore a suit, so I'm usually of the opinion that unless you just don't own a suit that fits you right, it's probably the best first impression you can go with.

This pretty much sums up my company too.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

shrughes posted:

I have a suit, the last time I wore it was at a funeral. Are you going to remind me of my relative's death just to get a job?

Wear a tux and remind yourself of a wedding instead

HondaCivet
Oct 16, 2005

And then it falls
And then I fall
And then I know


Wow I did not realize this thread was here or I would've made some posts sooner . . . I graduated in December with a degree in mechanical engineering but late in my degree I decided that I hated ME and loved CS. I took a bunch of CS classes alongside my ME ones and got through data structures before I ran out of time. Am I really dumb for trying to go for entry-level dev jobs? These interviews sound mostly like material I've seen/could maybe brush up on but they sound scary as heck. :ohdear:

Chasiubao
Apr 2, 2010


HondaCivet posted:

Wow I did not realize this thread was here or I would've made some posts sooner . . . I graduated in December with a degree in mechanical engineering but late in my degree I decided that I hated ME and loved CS. I took a bunch of CS classes alongside my ME ones and got through data structures before I ran out of time. Am I really dumb for trying to go for entry-level dev jobs? These interviews sound mostly like material I've seen/could maybe brush up on but they sound scary as heck. :ohdear:

A lot of companies call their developers software engineers for a reason ;) Didn't you have to learn some programming in first year Engineering or something? I'm sure a mech would be fine as a dev.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Chasiubao posted:

I'm sure a mech would be fine as a dev.

Most MechE programs will require some matlab poo poo and that's pretty much it, like physicists there are very many that have to code in something 'real' to get poo poo done but the output is an abomination that cries out to heaven for judgment but the good apples tend to be pretty dang good

HondaCivet
Oct 16, 2005

And then it falls
And then I fall
And then I know


That's how I got into it initially, my program required everyone to take the same intro to programming course that the CS majors had to take. But then after that I went through as much of the CS curriculum as I could. I got through discrete math, intro to computer engineering and data structures. Didn't have time for algorithms unfortunately. So you guys think I'd be fine?

TasteMyHouse
Dec 21, 2006

Chasiubao posted:

A lot of companies call their developers software engineers for a reason ;) Didn't you have to learn some programming in first year Engineering or something? I'm sure a mech would be fine as a dev.

I know a professionally employed MechE who knows nothing from his curriculum. He is mathematically inclined, and he's teaching himself programming from the MIT open courseware sites.

So, MechEs can be programmers, but sure as hell not from their curriculum.

HondaCivet
Oct 16, 2005

And then it falls
And then I fall
And then I know


TasteMyHouse posted:

I know a professionally employed MechE who knows nothing from his curriculum. He is mathematically inclined, and he's teaching himself programming from the MIT open courseware sites.

So, MechEs can be programmers, but sure as hell not from their curriculum.

Yeah, definitely. After that CS class we never touched programming again in any serious way except for PLC.

Also: Good for your friend for expunging all that terrible poo poo from his brain and putting something useful in instead. :v:

kimbo305
Jun 9, 2007

actually, yeah, I am a little mad
I'm actually gonna interview someone today that has no formal programming training and thus can't claim any particular language experience. He's done some projects that, assuming they work, show that he can program and figure out a language as needed, but we'll see how this interview goes.

I would say for at least a large portion of entry level jobs, a fast learnercould pick up what you needed to know during a training period. The question is how to identify that ability during the interview process.

aux
Oct 25, 2010
I'm not really a fan of questions that can be answered in less than a minute using Google. I'm also not a fan of questions that are so vague that could have literally thousands of correct answers.

Is there somewhere in between, because those are really the only 2 types of questions I ever get asked?
Ive been asked to implement some algorithm, maybe once in 3-4 years of interviewing, maybe I just live in a horrible horrible area for software developers.

aux fucked around with this message at 15:03 on May 23, 2011

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde

aux posted:

I'm not really a fan of questions that can be answered in less than a minute using Google. I'm also not a fan of questions that are so vague that could have literally thousands of correct answers.

Is there somewhere in between, because those are really the only 2 types of questions I ever get asked?

Regarding the first type, google doesn't always give the right answer. Additionally, unless you're applying for a job which requires a computer science background, you should possess some base level of knowledge.

Regarding the second, you should either seek clarification, or realise that yes, there are lots of correct solutions, but one or two are probably better / best compromises out of the lot. Requirements gathering, and realising when you've got to pick the best out of a bad lot are two important aspects of programming. It's also a good exercise in showing the interviewer how you think.

Axel Rhodes Scholar
May 12, 2001

Courage Reactor

I'm looking for problem sets / practice questions for a slightly non-newbie programmer; I'm through to a final round with a notoriously difficult company, for a non-junior position, and I've got about a week to cram more stuff into my brain. I'm already fine with data structures, algorithms, big-O, all that junk, I just need to practice coming up with solutions to problems. Especially if dynamic programming is called for but the problem is not just another knapsack/edit distance problem. Anyone know a good set? Facebook puzzles seem pretty good, I guess, but they're mostly pretty easy to reduce down to "problem I've seen before except then it was called graph partitioning/knapsack/whatever".

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!

dazjw posted:

I'm looking for problem sets / practice questions for a slightly non-newbie programmer; I'm through to a final round with a notoriously difficult company, for a non-junior position, and I've got about a week to cram more stuff into my brain. I'm already fine with data structures, algorithms, big-O, all that junk, I just need to practice coming up with solutions to problems. Especially if dynamic programming is called for but the problem is not just another knapsack/edit distance problem. Anyone know a good set? Facebook puzzles seem pretty good, I guess, but they're mostly pretty easy to reduce down to "problem I've seen before except then it was called graph partitioning/knapsack/whatever".
Are you doing topcoder problems?

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug
I went on a pretty horrific interview for a C# senior dev job today.

Here's a list of the things that the company doesn't do:
- Project planning
- Source control
- Unit testing
- Continuous integration
- Cross-training

Here's what they do do:
- Let former developers keep part of the code-base hostage
- Release poo poo whenever
- Get random tasks assigned from management
- Make lots of excuses about why they can't institute change

The technical assessment part of the interview was equally unimpressive. I was asked 3 things:
1) Write an algorithm to reverse a string on the whiteboard. This is actually a good interview question; I ask the same thing when I'm interviewing folks.

I think I blew the guy's mind on this one; I used the LINQ Reverse() method.
I had to explain what LINQ was to the interviewer, which led to an explanation of extension methods, which led to him asking me to do it again, the "normal" way.

2) Make a class "A" with a constructor
3) Make a class "B" and have it inherit A.

I'm 99% sure I'm going to get an offer, and I'm 100% sure I'll be politely refusing.

No Safe Word
Feb 26, 2005

Why would you use LINQ to answer that question?

Usually the point is "without <language>'s built-in method for reversing things what would be a simple way of doing this task?"

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.

Ithaqua posted:

The technical assessment part of the interview was equally unimpressive. I was asked 3 things:
1) Write an algorithm to reverse a string on the whiteboard. This is actually a good interview question; I ask the same thing when I'm interviewing folks.

I think I blew the guy's mind on this one; I used the LINQ Reverse() method.
I had to explain what LINQ was to the interviewer, which led to an explanation of extension methods, which led to him asking me to do it again, the "normal" way.

2) Make a class "A" with a constructor
3) Make a class "B" and have it inherit A.

I'm 99% sure I'm going to get an offer, and I'm 100% sure I'll be politely refusing.
If that's what they ask senior devs, what do they ask the junior ones? "Please write a program that outputs 'Hello, world!' to the screen."? So sad.

Theler
Aug 8, 2009
When is the right time for a future CS grad to start sending out resumes? For example if I was graduating in December and looking to start a job in January would applying for jobs during August/September be considered too early?

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.

Theler posted:

When is the right time for a future CS grad to start sending out resumes? For example if I was graduating in December and looking to start a job in January would applying for jobs during August/September be considered too early?
I graduated in April and started looking in September.

Edit: As in, the September before graduation.

Cicero fucked around with this message at 16:58 on May 27, 2011

shrughes
Oct 11, 2008

(call/cc call/cc)

Theler posted:

When is the right time for a future CS grad to start sending out resumes? For example if I was graduating in December and looking to start a job in January would applying for jobs during August/September be considered too early?

I graduated in December and started looking in January.

TasteMyHouse
Dec 21, 2006

shrughes posted:

I graduated in December and started looking in January.

which january -- the one before you graduated, or the one after?

IIRC didn't you have a grad school app that went through late or was that someone else?

shrughes
Oct 11, 2008

(call/cc call/cc)

TasteMyHouse posted:

which january -- the one before you graduated, or the one after?

IIRC didn't you have a grad school app that went through late or was that someone else?

That wasn't me, I didn't apply to grad school. The one after.

Axel Rhodes Scholar
May 12, 2001

Courage Reactor

Orzo posted:

Are you doing topcoder problems?

Oh, thanks, I hadn't thought of that. Run through a few already and they seem like good practice. Forgot I even had a JRE installed.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

No Safe Word posted:

Why would you use LINQ to answer that question?

Usually the point is "without <language>'s built-in method for reversing things what would be a simple way of doing this task?"

Well, I wouldn't loop through the characters in a string and build a new string in production code, I'd use .Reverse(). If I had someone do it that way in an interview, it would lead to some chatting about LINQ, lambdas, etc. I'd follow up with "given a List<int>, get everything greater than 5" or something like that.

shrike82
Jun 11, 2005

Ithaqua posted:

Well, I wouldn't loop through the characters in a string and build a new string in production code, I'd use .Reverse(). If I had someone do it that way in an interview, it would lead to some chatting about LINQ, lambdas, etc. I'd follow up with "given a List<int>, get everything greater than 5" or something like that.

To be honest, that's a pretty odd answer to give during an interview.

umbrage
Sep 5, 2007

beast mode
If I'm hiring someone, I'm going to be looking at how well they can integrate into the established workflow and programming culture, no matter how lovely it is, over whether they know the latest and greatest. LINQ is neat, but it's for a very specific mindset and fairly specific problem domains. If you just came in on your first day and started throwing it around in a shared codebase, that's time commited to
  • Have to explain to every other developer what LINQ is
  • Have to wait on them to learn it
  • Have to explain it to them again
  • Have to debug their mistakes when they attempt to update your code
  • Have to debug their misinterpretations when they attempt to refactor your code to something they can understand without spending their evenings reading Essential LINQ
I mean, clearly the shop you interviewed with is not good, at all, and you should refuse an offer, but don't let that excuse the possibility that your attitude about using LINQ was poor.

It comes across as, "When all I have is a hammer, everything looks like a skull," and the shop's dysfunction is a bit of a strawman. You are eventually going to find a shop where the coders are good, but just don't have the time/desire/need to learn LINQ, and then you just look like a uni-tasker who can't adapt. You should have a lot of tools in your toolkit, from basic concepts up to modern API knowledge. This was the time to show deep knowledge of basic concepts.

Did the job posting even mention LINQ as a required or even desired skill?

Adbot
ADBOT LOVES YOU

Milotic
Mar 4, 2009

9CL apologist
Slippery Tilde
LINQ and lambda calculus have been around for nearly four years now and are a massive productivity boost - even if you don't use LINQ to SQL, LINQ to XML etc. Quickly iterating over, filtering and manipulating enumerations is not a "fairly specific problem domain" in .NET - certainly not in business applications. Yes there is a training/learning cost. But your developers should be continually learning poo poo and you save money in the long run by increasing velocity and reducing trivial bugs.

Also the job was for a senior developer - a senior developer should be providing thought leadership on stuff / giving people a kick up the backside. Freezing your codebase at .NET 2.0 capabilities is a very bad idea. One of the best things about .NET/C# is that Microsoft spend a lot of time thinking about the things developers spend the most time writing boilerplate on or trying to work around. And then they come up with some good stuff to solve it. Occasionally they completely balls it up (WCF), but usually not.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply