As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/
Options

Interview for a software position

SpawnbrokerSpawnbroker Registered User regular
edited May 2010 in Help / Advice Forum
Hey everyone! So I have been contacted about an entry level programming position and I'm going to be interviewed soon. They're doing a phone interview first, and I'm assuming an in-person interview if I do well.

So here's the help/advice part: What can I expect from the phone part, and after that the in-person part? Will they ask me to write pseudocode? Is there anything I should brush up on before this to prepare? I'm not necessarily nervous, I just want to cover all my bases.

Just to be clear, yes I'll be wearing a suit, yes I'll avoid all the stuff you should avoid at interviews. I know how to interview for an office job; I don't necessarily know what to expect interviewing for a software job.

Any advice?

Edit: Hmmm, I should probably be a bit more specific. The office I'll be working for writes software for financial companies. This is not a gaming job, and it's in the northeast. That should tell you a bit more about it.

Steam: Spawnbroker
Spawnbroker on

Posts

  • Options
    Steel AngelSteel Angel Registered User regular
    edited May 2010
    Good luck. Companies on the east coast seem to be taking advantage of a large labor pool right now and are being picky.
    What can I expect from the phone part, and after that the in-person part?

    You'll be asked about some of the experience you've put down on your resume or asked to talk about some of the projects you've worked on. You'll be mentioning what languages, frameworks, etc. you did these in while discussing them.

    You may also get some basic comp sci or math questions on the phone. Nothing terribly complicated, but it weeds out the field a bit.
    Will they ask me to write pseudocode?

    It's quite possible. Other possibilities include some math or analyzing code that's provided. Sometimes all three.
    Is there anything I should brush up on before this to prepare? I'm not necessarily nervous, I just want to cover all my bases.

    There is a huge range of questions you might be asked depending on what the company feels is important. Know programming terminology, the kind of stuff you learn in a data structures class. That bit has at least been consistent.

    Steel Angel on
    Big Dookie wrote: »
    I found that tilting it doesn't work very well, and once I started jerking it, I got much better results.

    Steam Profile
    3DS: 3454-0268-5595 Battle.net: SteelAngel#1772
  • Options
    soxboxsoxbox Registered User regular
    edited May 2010
    It depends a lot on the quality of who is interviewing you. If they're good, they'll probably ask you to talk through some form of problem solving exercise, and you'll probably be able to just talk through that with a little bit of pseudo-code to help keep everybody on the same page.

    DO NOT profess to know something that you don't. If somebody says that they know something, I WILL ask them specific questions on it, and if they can't answer those, then they're out the door.

    If you don't know something that you need to answer a question, rather than "i don't know" or muddling through the answer, tell them what you'd do to get that information.

    For example, if they ask you how to create a database index (they probably wont unless you've said you know sql), don't just jump into: "Ummmm.... insert index from? on? ummm... tablename... column names... does unique go here?" - say, "I haven't done much database administration, so i'd need to check the syntax - I'd probably have to google 'create index syntax mysql', but it's something like this... (and then do you muddled attempts after that).

    soxbox on
  • Options
    DhalphirDhalphir don't you open that trapdoor you're a fool if you dareRegistered User regular
    edited May 2010
    My company has hired a few programmers recently, and I sat in on the interviews, and really the biggest thing is as soxbox said...if you don't know something, admit that you don't know it, explain exactly how you'd go about finding the information. No one really expects you to be able to do everything from memory, thats why they make programmer reference books.

    Dhalphir on
  • Options
    SkyCaptainSkyCaptain IndianaRegistered User regular
    edited May 2010
    Even though it's going to be a phone interview, prepare yourself as if you were going to a face-to-face interview. That means showing, shaving, and grooming. Make yourself neat and presentable and dress the way you would for a face-to-face interview. Suit, tie, dress shirt and slacks with polished shoes. This will really help you be professional over the phone and get you into the right mindset for an interview.

    SkyCaptain on
    The RPG Bestiary - Dangerous foes and legendary monsters for D&D 4th Edition
  • Options
    Shazkar ShadowstormShazkar Shadowstorm Registered User regular
    edited May 2010
    though i've not applied to too many software things, usually the phone was personality/fit questions, with maybe a short problem solving thing
    then at the actual in person interview there was some more in depth challenges, had pseudocode once, more general problem solving/design stuff in others (wasn't really applying to programming positions so..)

    Shazkar Shadowstorm on
    poo
  • Options
    Shazkar ShadowstormShazkar Shadowstorm Registered User regular
    edited May 2010
    like study up your data structures maybe, helped me once

    Shazkar Shadowstorm on
    poo
  • Options
    virgilsammsvirgilsamms Registered User regular
    edited May 2010
    Take in some code you're proud of to show them if they ask.
    Be ready to talk about things you've developed before and some of the decisions you made.
    Brush up on topics like version control, test driven development, agile methodologies, design patterns, current trends in software development.
    You don't have to know every language, but knowing the strengths and weaknesses of the main ones will help.

    virgilsamms on
  • Options
    ImprovoloneImprovolone Registered User regular
    edited May 2010
    Know about what the company has been doing and ask them questions about it.

    Improvolone on
    Voice actor for hire. My time is free if your project is!
  • Options
    Moses555Moses555 Registered User regular
    edited May 2010
    If a person from HR is interviewing you, the questions will probably be more personality oriented, while a technical interviewer will be, of course, more technical. I've heard that when a non-technical person asks technical questions, they are more interested in hearing that you are excited or passionate about technology than in the specifics of how you write code.

    Other important points to consider: Keep the audience in mind. Smaller companies have a lot more leeway to get creative in interviews. I find that large companies will more often have boilerplate questions like "Tell me about a time when you worked with a team, and how you interacted with that team."

    If it is a big company, try looking up info about how they interview candidates.

    Moses555 on
    Bear down, Chicago Bears!
  • Options
    PerpetualPerpetual Registered User regular
    edited May 2010
    Dhalphir wrote: »
    My company has hired a few programmers recently, and I sat in on the interviews, and really the biggest thing is as soxbox said...if you don't know something, admit that you don't know it, explain exactly how you'd go about finding the information. No one really expects you to be able to do everything from memory, thats why they make programmer reference books.

    Extremely important for programming jobs, but also holds true for other knowledge-worker positions.

    Perpetual on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited May 2010
    Personally, I'd ask them how they work on code as a large team and use that to my advantage too. IE, if they say they use SVN or GIT, give them a little information on how you know how to work with them.

    ... And it may also help you decide if you don't work for them if they use like TeamServer or something.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    CelestialBadgerCelestialBadger Registered User regular
    edited May 2010
    Software companies love to ask weird logic puzzle questions. It's to test your logical thinking, probably. I'm rubbish at logic puzzles.

    e.g.

    http://en.wikipedia.org/wiki/Bridge_and_torch_problem

    CelestialBadger on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited May 2010
    I always hate redonkulus puzzles like that, because they have little to do with developing business applications. It's one thing to design a protocol to be highly efficient while minimizing time and cost, it's another thing to transfer business logs to the processed folder trying to meet a deadline.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    exmelloexmello Registered User regular
    edited May 2010
    If you're fresh out of school and just did a major project, be prepared to talk about that experience.

    In my interview after 30 minutes face to face, I was put in a room with a machine and given a quick ASP.NET assignment. I actually couldn't get anything to work, but they had been watching me the whole time over a VPN connection and loved the way I did troubleshooting and error handling. My interviewers burst back into the room after 30 minutes and exclaimed "You did great!" and I was like wuh ... huh?

    Unless your interviewer is a Computer Science nerd who cares overly about binary tree level-order iteration, you will probably make more of an impression if you can express that you know what really matters to businesses. Things like phased implementation, testing, knowing that 90% of good code is error paths. That kind of stuff.

    exmello on
  • Options
    solsovlysolsovly Registered User regular
    edited May 2010
    I was asked how to create a sample output they handed me. I said I don't know but here are some ideas I have on it. After the interview I asked how they created what they showed me. Their answer was "We don't know either, but we were hoping someone else would". Still got the job.

    solsovly on
  • Options
    SpawnbrokerSpawnbroker Registered User regular
    edited May 2010
    solsovly wrote: »
    I was asked how to create a sample output they handed me. I said I don't know but here are some ideas I have on it. After the interview I asked how they created what they showed me. Their answer was "We don't know either, but we were hoping someone else would". Still got the job.

    Yeah I got asked something weird and probably unsolvable too. Here it is:

    Say you're working on a piece of software, and your division function stops working. Anything to do with division (this includes modulus, square root, etc.) no longer works. How would you write a function that takes in 2 floating point numbers (A and B) and returns a third floating point number (C) that is A divided by B?

    Spawnbroker on
    Steam: Spawnbroker
  • Options
    Bigtoy_JBigtoy_J Registered User regular
    edited May 2010
    I have interviewed a number of folks for entry to mid level programming positions. I love to ask questions that test the following:

    - Basic logic/reasoning.
    - An understanding of recursion.
    - Identify the "problems" in a piece of code. (Did the applicant bring their own pen to mark my example? If the applicant got them all I ask to see if they are sure or unsure.)
    - How well does the applicant work through a very difficult question. (Sometimes I make the problem very difficult with the knowledge that an answer will most likely not happen in the time allotted.)

    Bigtoy_J on
    Love George Bernard Shaw quotations.

    Also, I can count to "boat".
  • Options
    bowenbowen How you doin'? Registered User regular
    edited May 2010
    solsovly wrote: »
    I was asked how to create a sample output they handed me. I said I don't know but here are some ideas I have on it. After the interview I asked how they created what they showed me. Their answer was "We don't know either, but we were hoping someone else would". Still got the job.

    Yeah I got asked something weird and probably unsolvable too. Here it is:

    Say you're working on a piece of software, and your division function stops working. Anything to do with division (this includes modulus, square root, etc.) no longer works. How would you write a function that takes in 2 floating point numbers (A and B) and returns a third floating point number (C) that is A divided by B?

    D:

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    3drage3drage Registered User regular
    edited May 2010
    Tech/Programming interviews are as wide a variety as you can come by.

    Sometimes it's a big game of Jeopardy where they try to stump you with trivial information that you can easily google. Sometimes they just want to see how you fit in with others and whether you are a team player. Often times they want bodies for cheap and don't really care what you know as long as you can put up with odd, long hours and terrible pay.

    The tech world is like a box of chocolates.

    3drage on
  • Options
    EtheaEthea Registered User regular
    edited May 2010
    solsovly wrote: »
    I was asked how to create a sample output they handed me. I said I don't know but here are some ideas I have on it. After the interview I asked how they created what they showed me. Their answer was "We don't know either, but we were hoping someone else would". Still got the job.

    Yeah I got asked something weird and probably unsolvable too. Here it is:

    Say you're working on a piece of software, and your division function stops working. Anything to do with division (this includes modulus, square root, etc.) no longer works. How would you write a function that takes in 2 floating point numbers (A and B) and returns a third floating point number (C) that is A divided by B?

    You implement a long division function. The trick to the question is that they are looking for you to notice that it can be done recursively(i think).

    Ethea on
  • Options
    AngelHedgieAngelHedgie Registered User regular
    edited May 2010
    Software companies love to ask weird logic puzzle questions. It's to test your logical thinking, probably. I'm rubbish at logic puzzles.

    e.g.

    http://en.wikipedia.org/wiki/Bridge_and_torch_problem

    Actually, that's fallen out of vogue, because they're not good assessments.

    AngelHedgie on
    XBL: Nox Aeternum / PSN: NoxAeternum / NN:NoxAeternum / Steam: noxaeternum
  • Options
    SpawnbrokerSpawnbroker Registered User regular
    edited May 2010
    Ethea wrote: »
    solsovly wrote: »
    I was asked how to create a sample output they handed me. I said I don't know but here are some ideas I have on it. After the interview I asked how they created what they showed me. Their answer was "We don't know either, but we were hoping someone else would". Still got the job.

    Yeah I got asked something weird and probably unsolvable too. Here it is:

    Say you're working on a piece of software, and your division function stops working. Anything to do with division (this includes modulus, square root, etc.) no longer works. How would you write a function that takes in 2 floating point numbers (A and B) and returns a third floating point number (C) that is A divided by B?

    You implement a long division function. The trick to the question is that they are looking for you to notice that it can be done recursively(i think).

    Yeah, I'm not real sure how to implement long division without having division working though, that was the issue I was having.

    Spawnbroker on
    Steam: Spawnbroker
  • Options
    EtheaEthea Registered User regular
    edited May 2010
    Ethea wrote: »
    solsovly wrote: »
    I was asked how to create a sample output they handed me. I said I don't know but here are some ideas I have on it. After the interview I asked how they created what they showed me. Their answer was "We don't know either, but we were hoping someone else would". Still got the job.

    Yeah I got asked something weird and probably unsolvable too. Here it is:

    Say you're working on a piece of software, and your division function stops working. Anything to do with division (this includes modulus, square root, etc.) no longer works. How would you write a function that takes in 2 floating point numbers (A and B) and returns a third floating point number (C) that is A divided by B?

    You implement a long division function. The trick to the question is that they are looking for you to notice that it can be done recursively(i think).

    Yeah, I'm not real sure how to implement long division without having division working though, that was the issue I was having.

    you can think of division as a large amount of subtractions, and tracking of the remainder.

    Ethea on
  • Options
    Bigtoy_JBigtoy_J Registered User regular
    edited May 2010
    BTW, one of the best sites I would go to to help "beef up" on ideas germane to the programming world:

    Joel on Software: http://www.joelonsoftware.com/
    Rands In Repose: http://www.randsinrepose.com/

    The Joel on Software site has a section called "New Developer" that I think anyone aspiring to make a career in software development should read.

    I also have to add that the stack overflow site http://stackoverflow.com/ is what I consider the go to place for software dev Q&A.

    Bigtoy_J on
    Love George Bernard Shaw quotations.

    Also, I can count to "boat".
  • Options
    bowenbowen How you doin'? Registered User regular
    edited May 2010
    Ethea wrote: »
    solsovly wrote: »
    I was asked how to create a sample output they handed me. I said I don't know but here are some ideas I have on it. After the interview I asked how they created what they showed me. Their answer was "We don't know either, but we were hoping someone else would". Still got the job.

    Yeah I got asked something weird and probably unsolvable too. Here it is:

    Say you're working on a piece of software, and your division function stops working. Anything to do with division (this includes modulus, square root, etc.) no longer works. How would you write a function that takes in 2 floating point numbers (A and B) and returns a third floating point number (C) that is A divided by B?

    You implement a long division function. The trick to the question is that they are looking for you to notice that it can be done recursively(i think).

    Yeah, I'm not real sure how to implement long division without having division working though, that was the issue I was having.

    I believe the solution is bit shifting, or using subtraction recursively. Most of them only work with integer values, and are very inefficient. Google how to implement a division operator, you'll see a few examples.

    The better question is why would you want to work for a company that would impose that on you instead of fixing the problem?

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    EtheaEthea Registered User regular
    edited May 2010
    bowen wrote: »
    Ethea wrote: »
    solsovly wrote: »
    I was asked how to create a sample output they handed me. I said I don't know but here are some ideas I have on it. After the interview I asked how they created what they showed me. Their answer was "We don't know either, but we were hoping someone else would". Still got the job.

    Yeah I got asked something weird and probably unsolvable too. Here it is:

    Say you're working on a piece of software, and your division function stops working. Anything to do with division (this includes modulus, square root, etc.) no longer works. How would you write a function that takes in 2 floating point numbers (A and B) and returns a third floating point number (C) that is A divided by B?

    You implement a long division function. The trick to the question is that they are looking for you to notice that it can be done recursively(i think).

    Yeah, I'm not real sure how to implement long division without having division working though, that was the issue I was having.

    I believe the solution is bit shifting, or using subtraction recursively. Most of them only work with integer values, and are very inefficient. Google how to implement a division operator, you'll see a few examples.

    The better question is why would you want to work for a company that would impose that on you instead of fixing the problem?

    bit shifting could work if you converted the numbers over to integer form first.

    The point of the question is to see how you process problems, and the reasoning you use to find an answer.

    Ethea on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited May 2010
    Clearly, but these types of problems show nothing in terms of practical skill, just on how some clever people memorize programmer trivia/puzzles or can think abstractly. They will serve almost no practical experience. I'd be more concerned if a person could open a file and read it, because, as Hedgie said, it's going out of style and the reason is it doesn't show you anything.

    I can't even count how many programmers are absolutely fan-fucking-tastic at brain-teasers but fail at simple algebra/loops/parsing/etc.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    EtheaEthea Registered User regular
    edited May 2010
    bowen wrote: »
    Clearly, but these types of problems show nothing in terms of practical skill, just on how some clever people memorize programmer trivia/puzzles or can think abstractly. They will serve almost no practical experience. I'd be more concerned if a person could open a file and read it, because, as Hedgie said, it's going out of style and the reason is it doesn't show you anything.

    I can't even count how many programmers are absolutely fan-fucking-tastic at brain-teasers but fail at simple algebra/loops/parsing/etc.

    Sorry I disagree. Asking a person to write out an algorithm for long division without using the built-in divide operator should be something any software developer could do.

    This isn't a trivia question, trivia question are stuff like "swap two registers without using a third." or "given 99 non duplicate values between 0 and 100 inclusive determine which number is missing".

    Ethea on
  • Options
    JHunzJHunz Registered User regular
    edited May 2010
    bowen wrote: »
    Clearly, but these types of problems show nothing in terms of practical skill, just on how some clever people memorize programmer trivia/puzzles or can think abstractly. They will serve almost no practical experience. I'd be more concerned if a person could open a file and read it, because, as Hedgie said, it's going out of style and the reason is it doesn't show you anything.

    I can't even count how many programmers are absolutely fan-fucking-tastic at brain-teasers but fail at simple algebra/loops/parsing/etc.

    Design questions aren't about skill. Design questions are to find out whether the person who are interviewing thinks in a way that is conducive to software projects, whether or not they actually know anything about the problem you are asking about.
    Once you have that subset of candidates, you refine them further by testing their actual technical skills. But weeding out people unable or unwilling to use their head is crucial in hiring for any position.

    JHunz on
    bunny.gif Gamertag: JHunz. R.I.P. Mygamercard.net bunny.gif
  • Options
    bowenbowen How you doin'? Registered User regular
    edited May 2010
    You can just as easily ask someone to open a tab delimited file, read it in, and process it. Or ask someone to use a circular buffer to store and retrieve data. Rather than pointless trivia and puzzles that solve nothing, and show you nothing.

    However, I digress. My advice is to walk the interviewer through the process, and how you'd implement it. Forgot about actually implementing it, or implementing it correctly. As long as you explain your though process and finish it off with a "... and I'll troubleshoot and test to correct the implementation to the point where it's usable." you'll be good, and you'll probably wow them.

    I'm glad trivia and puzzles are going the wayside.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    EtheaEthea Registered User regular
    edited May 2010
    bowen wrote: »
    You can just as easily ask someone to open a tab delimited file, read it in, and process it. Or ask someone to use a circular buffer to store and retrieve data. Rather than pointless trivia and puzzles that solve nothing, and show you nothing.

    I am starting to think you don't understand the reason why the question isn't pointless.

    Ethea on
  • Options
    bowenbowen How you doin'? Registered User regular
    edited May 2010
    Ethea wrote: »
    bowen wrote: »
    You can just as easily ask someone to open a tab delimited file, read it in, and process it. Or ask someone to use a circular buffer to store and retrieve data. Rather than pointless trivia and puzzles that solve nothing, and show you nothing.

    I am starting to think you don't understand the reason why the question isn't pointless.

    I just explained the alternative, and how it would be better.

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    EtheaEthea Registered User regular
    edited May 2010
    bowen wrote: »
    Ethea wrote: »
    bowen wrote: »
    You can just as easily ask someone to open a tab delimited file, read it in, and process it. Or ask someone to use a circular buffer to store and retrieve data. Rather than pointless trivia and puzzles that solve nothing, and show you nothing.

    I am starting to think you don't understand the reason why the question isn't pointless.

    I just explained the alternative, and how it would be better.

    You don't see how the division question has value so any further discussion is moot.

    Ethea on
  • Options
    khainkhain Registered User regular
    edited May 2010
    JHunz wrote: »
    bowen wrote: »
    Clearly, but these types of problems show nothing in terms of practical skill, just on how some clever people memorize programmer trivia/puzzles or can think abstractly. They will serve almost no practical experience. I'd be more concerned if a person could open a file and read it, because, as Hedgie said, it's going out of style and the reason is it doesn't show you anything.

    I can't even count how many programmers are absolutely fan-fucking-tastic at brain-teasers but fail at simple algebra/loops/parsing/etc.

    Design questions aren't about skill. Design questions are to find out whether the person who are interviewing thinks in a way that is conducive to software projects, whether or not they actually know anything about the problem you are asking about.
    Once you have that subset of candidates, you refine them further by testing their actual technical skills. But weeding out people unable or unwilling to use their head is crucial in hiring for any position.

    I don't know if people are hung up on the fact that the division problem has a stupid reason for existing, but it's not equivalent to the puzzles hedgie was talking about which are normally pure logic like the bridge and torch problem linked earlier. Question like the division one, or the other two examples bowen gave, are a way to test both knowledge of a particular topic and how you approach a software problem.

    khain on
Sign In or Register to comment.