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
Italian Stalin
Jul 4, 2003

You-a gonna get-a purged!

Ithaqua posted:

Don't worry, even useful CS courses generally don't really prepare you for real world software development. Maintainability, readability, and proper software architecture are arguably a lot more important in the Real World, and they don't teach that as part of CS.

Your goal for your first job out of school is to convince employers that you're not an idiot, you're willing to learn how to do things properly, and that you're able to work as part of a team.

This 100 times. Actual software development is far more about engineering your code to be maintainable, flexible, and readable than it is about finding the minimum spanning tree for a connected weighted undirected graph. You can be very good at computer science, algorithms and data structures, but horribly at software engineering. The worst software project I ever worked on was one where I was paired with a PhD. Most useless, incompetent developer I've ever met.

Adbot
ADBOT LOVES YOU

Mr. Crow
May 22, 2008

Snap City mayor for life
Made a post in the resume's thread but I figure this is more appropriate, can I get a gut check on my resume?

https://docs.google.com/open?id=0Bw4nCsfAuxyzUE9UbDRETXdwTm8

Think I can get interviews for out-of-state jobs or will I need to beef it up with some other stuff? I'm starting to learn android development because I'd like to try app development, but I'd also like to start looking for jobs now, rather than in a month or two when I'd feel qualified to put it on my resume.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Mr. Crow posted:

Made a post in the resume's thread but I figure this is more appropriate, can I get a gut check on my resume?

https://docs.google.com/open?id=0Bw4nCsfAuxyzUE9UbDRETXdwTm8

Think I can get interviews for out-of-state jobs or will I need to beef it up with some other stuff? I'm starting to learn android development because I'd like to try app development, but I'd also like to start looking for jobs now, rather than in a month or two when I'd feel qualified to put it on my resume.

Here's some feedback:
  • Put the skills section first
  • Be more specific in the skills section. You say in the work experience section that you have experience with ORMs and unit testing. Both of those are good things, and would make me put your resume in the "Potential" pile immediately. Drop names. Have you used Ninject for IOC? Put that you're familiar with IOC and Ninject.
  • On a similar note, put version numbers. You have TFS on there. Maybe my company is on TFS 2008 and you've never used it. You say C#. C# 2.0? 3? 4? 5? The more recent the better, obviously.
  • Too much passive voice.
  • In your work experience section, you don't once mention the technologies you were using for any of the projects you worked on. I have no idea if [Business] was a .NET shop, a Java shop, a Ruby shop, a Brainfuck shop. What language is [Application] built in?
  • How old is [Application]? How business-critical is it? How did the improvements you made affect the business positively?
  • I really don't like the way you worded this section, it just reads oddly to me:
    • Primary responsibility was implementing a unit testing framework and getting automated testing set up.
    • Essentially this involved getting the code into a testable state, by refactoring the code base and bringing it up to speed with modern technologies, techniques and design patterns (LINQ, MVP etc.).
    It would probably read better as something like
    • Refactored existing code to facilitate unit testing by implementing modern technologies, techniques and design patterns (LINQ, MVP etc.).

New Yorp New Yorp fucked around with this message at 04:24 on Dec 1, 2012

etcetera08
Sep 11, 2008

I am graduating with an English degree/CS minor (plus some other humanities minors :twisted:) in a few weeks and I just accepted a job offer in Austin. There is hope for those of you that don't have full CS degrees! Read about new technologies, work with concepts and frameworks that are in demand, and talk to people who have jobs in the field. I got three or four interviews just through personal contacts and at least one other one through a job fair at my school. There are jobs out there (and I'm in the midwest!)

Mr. Crow
May 22, 2008

Snap City mayor for life
Thanks for the feedback!

Ithaqua posted:

Put the skills section first
Before work experience? Or just before education? Seems odd to put it above experience but I guess it makes sense as well (see what I've got at a glance)...

Ithaqua posted:

Be more specific in the skills section. You say in the work experience section that you have experience with ORMs and unit testing. Both of those are good things, and would make me put your resume in the "Potential" pile immediately. Drop names. Have you used Ninject for IOC? Put that you're familiar with IOC and Ninject.
I actually have a question on this. I tried pitching IOC frameworks but long story short our CTO was against it (boss was for it). So I am familiar with IOC frameworks, know why they're good and why we SHOULD be using one, the popular ones etc. but haven't actually physically used any.

Should I mention I'm familiar with IOC frameworks and just leave it rather nebulous (and explain it during an interview) or don't mention it at all?

Ithaqua posted:

  • On a similar note, put version numbers. You have TFS on there. Maybe my company is on TFS 2008 and you've never used it. You say C#. C# 2.0? 3? 4? 5? The more recent the better, obviously.
  • Too much passive voice.
  • In your work experience section, you don't once mention the technologies you were using for any of the projects you worked on. I have no idea if [Business] was a .NET shop, a Java shop, a Ruby shop, a Brainfuck shop. What language is [Application] built in?
  • How old is [Application]? How business-critical is it? How did the improvements you made affect the business positively?
Good points.

Ithaqua posted:

I really don't like the way you worded this section, it just reads oddly to me:
  • Primary responsibility was implementing a unit testing framework and getting automated testing set up.
  • Essentially this involved getting the code into a testable state, by refactoring the code base and bringing it up to speed with modern technologies, techniques and design patterns (LINQ, MVP etc.).
It would probably read better as something like
  • Refactored existing code to facilitate unit testing by implementing modern technologies, techniques and design patterns (LINQ, MVP etc.).

Yea I was thinking that sounded a little weird but I wanted to differentiate the two. Mostly because I have less experience unit testing; the code needs to be refactored so badly it's literally impossible to unit test most of it, the majority of what technically is testable is going to be refactored and so there's only a small segment of the code that's actually got tests.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Mr. Crow posted:

Before work experience? Or just before education? Seems odd to put it above experience but I guess it makes sense as well (see what I've got at a glance)...

I'm interviewing candidates for a dev position. This means:
  • I'm probably down at least one dev (if it's a replacement slot, not a team expansion), so the business owners are already pissy that our sprints are delivering less stuff
  • I have an extra responsibility on top of my day doing team lead stuff and trying to bang out some code for the current sprint
  • God help us all if we have hard deadlines based on external sources that can't be changed

So basically, I'm really short on time, and I want to spend as little time looking at resumes as possible. Having a skill summary right at the top will let me go, "Okay, this guy knows C# 5, ASP .NET MVC4, and unit testing. That's what we're looking for!". Then I scan the work experience, make sure you have the amount of experience we're looking for, and that you don't have 6 jobs in a row that all lasted 3/6 months each (3/6 months being the standard probationary period). Then it's on to phone screening.

If I have an inbox with 20 resumes in it, I'm going to throw a lot of them out for little stuff because I just don't have time for 20 phone screenings. If I have 2, I'll probably give them both screenings even if they're both borderline cases, especially if the big boss thinks I have impossibly high standards.

Don't lie on your resume, either. If you lie and say you have a skill we really want, we're going to ask you about it.

Mr. Crow posted:

I actually have a question on this. I tried pitching IOC frameworks but long story short our CTO was against it (boss was for it). So I am familiar with IOC frameworks, know why they're good and why we SHOULD be using one, the popular ones etc. but haven't actually physically used any.

Should I mention I'm familiar with IOC frameworks and just leave it rather nebulous (and explain it during an interview) or don't mention it at all?

You're familiar with the concept and know that there are tools available to help implement it. That's enough. I personally skip the IOC containers until the application is complex enough to warrant it, then I go with ninject.

double sulk
Jul 2, 2010

Last week, I had an interview for a Rails position. I found it through SO Careers and I suppose the code samples I do have were acceptable enough to have a chance to come in after a phone screen. The interview lasted three hours, and during that time I met with a number of people, but I thought it was a positive experience. I was also able to complete the coding exercise(s) for the most part.

I wasn't offered the position, which isn't so much my concern; I didn't have a negative interview experience, and I was able to find a couple weak points I can improve upon (particularly involving databases). My concern is that although I was brought in, the company was somewhat small and they were ultimately looking for someone who was more immediately capable. As far as I understand, it wasn't so much that I didn't have potential, but that they didn't have the time or resources to take me on as an asset. I understand this, but I'm worried that this is strongly representative of Rails and many of the other pieces of similar tech, where pretty much every company is going to want someone who can just come in and do the work. I've mentioned it before that in my case, I'm in Philly, but looking at what companies in another place like NYC want, it appears to be more of the same.

I suppose my question is that short of "learn more and complete more projects," which is obvious, whether anyone has any advice. Even looking in other cities, it seems as if the "senior-only" mentality is spread across the board right now, if only just in smaller companies. Like I said, I had a good experience on the whole last week, though this instance simply didn't pan out.

Pweller
Jan 25, 2006

Whatever whateva.

gucci void main posted:

Last week, I had an interview for a Rails position. I found it through SO Careers and I suppose the code samples I do have were acceptable enough to have a chance to come in after a phone screen. The interview lasted three hours, and during that time I met with a number of people, but I thought it was a positive experience. I was also able to complete the coding exercise(s) for the most part.

I wasn't offered the position, which isn't so much my concern; I didn't have a negative interview experience, and I was able to find a couple weak points I can improve upon (particularly involving databases). My concern is that although I was brought in, the company was somewhat small and they were ultimately looking for someone who was more immediately capable. As far as I understand, it wasn't so much that I didn't have potential, but that they didn't have the time or resources to take me on as an asset. I understand this, but I'm worried that this is strongly representative of Rails and many of the other pieces of similar tech, where pretty much every company is going to want someone who can just come in and do the work. I've mentioned it before that in my case, I'm in Philly, but looking at what companies in another place like NYC want, it appears to be more of the same.

I suppose my question is that short of "learn more and complete more projects," which is obvious, whether anyone has any advice. Even looking in other cities, it seems as if the "senior-only" mentality is spread across the board right now, if only just in smaller companies. Like I said, I had a good experience on the whole last week, though this instance simply didn't pan out.

This sounds pretty typical. The same companies complain about employees moving on after a year, and treating the company like a stepping stone in their career.

Don't worry about it too much, keep looking and you'll find a good fit. You sound like your head is in a good place.

double sulk
Jul 2, 2010

Pweller posted:

This sounds pretty typical. The same companies complain about employees moving on after a year, and treating the company like a stepping stone in their career.

Don't worry about it too much, keep looking and you'll find a good fit. You sound like your head is in a good place.

In all honesty, their area of the market left a bit to be desired and they were somewhat vague about their actual products and what they do. I wouldn't have particularly minded if they paid acceptably and the work experience would have been valuable, but it's behind me and I'm not particularly bothered by it. At the very least, I heard back quickly, which I respect. I'm still concerned that the rest of the market is the same way, but there's probably not much I can do other than learn more stuff and hope I find a good fit.

Perhaps the one thing I'm confused about in general is that many job postings/companies seem to define junior developers as having at least 2-3 years of experience with what their stack uses. It also seems that literal entry-level positions either don't exist or aren't defined as such. At least I've had more luck speaking with good people through SO than anywhere else.

Pweller
Jan 25, 2006

Whatever whateva.
The whole dev industry is pretty messed up in terms of an employee's career development and experience. Once you've got your foot in the door, a junior developer could be someone with <2 years of on the job experience. Regular developer maybe someone with > 6 months experience, senior developer could be someone with > 2 years experience. That is hosed up. Smooth operators can get much, much further than they should and faster. This can be a good or bad thing for you and me depending how you look at it.

If you go into an interview and are confident with the tech they use, and are someone people would want to be around for long periods of time, you should be able to land a job you'll be happy in after a given number of attempts. I'd argue that job titles in this field are a very poor indicator of anything. If an opening says they want a "Senior Developer", it just means they want the type of person that can reliably field questions with authority from 'junior developers'. You can get there by focusing deliberately on something over only a month or two in many cases (edit: presuming you have experience in the 'business' and design of software development already).

Pweller fucked around with this message at 18:42 on Dec 4, 2012

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Pweller posted:

If an opening says they want a "Senior Developer", it just means they want the type of person that can reliably field questions with authority from 'junior developers'. You can get there by focusing deliberately on something over only a month or two in many cases (edit: presuming you have experience in the 'business' and design of software development already).

That's not necessarily true. Senior developer at some places means the same thing as "team lead," and thus requires some experience managing projects and architecting software.

A MIRACLE
Sep 17, 2007

All right. It's Saturday night; I have no date, a two-liter bottle of Shasta and my all-Rush mix-tape... Let's rock.

Pweller posted:

The whole dev industry is pretty messed up in terms of an employee's career development and experience. Once you've got your foot in the door, a junior developer could be someone with <2 years of on the job experience. Regular developer maybe someone with > 6 months experience, senior developer could be someone with > 2 years experience. That is hosed up. Smooth operators can get much, much further than they should and faster. This can be a good or bad thing for you and me depending how you look at it.

If you go into an interview and are confident with the tech they use, and are someone people would want to be around for long periods of time, you should be able to land a job you'll be happy in after a given number of attempts. I'd argue that job titles in this field are a very poor indicator of anything. If an opening says they want a "Senior Developer", it just means they want the type of person that can reliably field questions with authority from 'junior developers'. You can get there by focusing deliberately on something over only a month or two in many cases (edit: presuming you have experience in the 'business' and design of software development already).

Yep. I gave myself the title "Director of Engineering" at my current shop because I'm the only programmer. I only have ~2 years of experience but who cares!

astr0man
Feb 21, 2007

hollyeo deuroga
I am the most junior developer at my job but my title is still senior developer.

Uziel
Jun 28, 2004

Ask me about losing 200lbs, and becoming the Viking God of W&W.
I am also a Senior Developer. My title got upgraded as some type of Title audit due to length of time working at the company not as a developer specifically. At the time, I had only been a developer for a year and the rest of time at the time was tech support, etc.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Uziel posted:

I am also a Senior Developer. My title got upgraded as some type of Title audit due to length of time working at the company not as a developer specifically. At the time, I had only been a developer for a year and the rest of time at the time was tech support, etc.

I started as "Staff Programmer" and after about 9 months it got changed to ".NET Developer." The HR drones and/or department that prints the security badges are so drat clever that they thought the period was a typo (or they didn't notice it) so my badge says "Net Developer." I handle every aspect of software development here, and while technically the DBA(yes) has the final say on design decisions, he doesn't know enough about OOP or the .NET Framework to veto any decision I make that doesn't have to do with the database layer.

They could call me a software engineer, programmer, developer or architect and it would be accurate.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Che Delilas posted:

while technically the DBA(yes) has the final say on design decisions

:psyduck: That's ridiculous. Why does the DBA have authority over anything that's not directly related to the database?

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Ithaqua posted:

:psyduck: That's ridiculous. Why does the DBA have authority over anything that's not directly related to the database?

:10bux:

They just piled a bunch of duties onto him because they don't want to spend the resources for a proper development team.

Che Delilas fucked around with this message at 20:29 on Dec 4, 2012

Tres Burritos
Sep 3, 2009

I started programming for a small company with 2 other programmers (owners / bosses) and me. Now I'm at school and I've been shining up the ol' resume, I just make up my title depending on where I'm applying at.

My boss thought it would be funny to get me a business card (like I needed one) that read "Chief Software Architect". What we got from the printers was "Chief Software Assistant". He laughed his rear end off for weeks over that one. :v:

Mystery Machine
Oct 12, 2008
So, I've been having a lot of fun designing a website for someone. I've been using jQuery, which I just taught myself, to do it, and I've made it so that, using some simple scripts, she only needs to upload pictures correctly to her hosting, and the script does everything else for her (details aren't too important).

Anyway, I've found this kind of programming pretty fun. I'm still a student, but I was wondering, what kinds of jobs are out there that involve web scripting? I have a friend who told me it was a pretty dumb idea to want to get into stuff like this. Is that true? I'd love to keep learning more of this stuff, but I want to make sure I'm not learning a skill that could be easily exported out of country, or something.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Mystery Machine posted:

So, I've been having a lot of fun designing a website for someone. I've been using jQuery, which I just taught myself, to do it, and I've made it so that, using some simple scripts, she only needs to upload pictures correctly to her hosting, and the script does everything else for her (details aren't too important).

Anyway, I've found this kind of programming pretty fun. I'm still a student, but I was wondering, what kinds of jobs are out there that involve web scripting? I have a friend who told me it was a pretty dumb idea to want to get into stuff like this. Is that true? I'd love to keep learning more of this stuff, but I want to make sure I'm not learning a skill that could be easily exported out of country, or something.

I don't know what "web scripting" is, but web development is a very big field with a lot of jobs.

Knyteguy
Jul 6, 2005

YES to love
NO to shirts


Toilet Rascal

Mystery Machine posted:

So, I've been having a lot of fun designing a website for someone. I've been using jQuery, which I just taught myself, to do it, and I've made it so that, using some simple scripts, she only needs to upload pictures correctly to her hosting, and the script does everything else for her (details aren't too important).

Anyway, I've found this kind of programming pretty fun. I'm still a student, but I was wondering, what kinds of jobs are out there that involve web scripting? I have a friend who told me it was a pretty dumb idea to want to get into stuff like this. Is that true? I'd love to keep learning more of this stuff, but I want to make sure I'm not learning a skill that could be easily exported out of country, or something.

If by web scripting you mean working with jQuery as a web developer, you can find jobs pretty much exclusively working with jQuery. Straight Javascript is becoming really popular lately too, so I'd guess the outlook is probably pretty good. If you mean something like writing bash scripts, you would probably look into system administration.

A MIRACLE
Sep 17, 2007

All right. It's Saturday night; I have no date, a two-liter bottle of Shasta and my all-Rush mix-tape... Let's rock.

Mystery Machine posted:

So, I've been having a lot of fun designing a website for someone. I've been using jQuery, which I just taught myself, to do it, and I've made it so that, using some simple scripts, she only needs to upload pictures correctly to her hosting, and the script does everything else for her (details aren't too important).

Anyway, I've found this kind of programming pretty fun. I'm still a student, but I was wondering, what kinds of jobs are out there that involve web scripting? I have a friend who told me it was a pretty dumb idea to want to get into stuff like this. Is that true? I'd love to keep learning more of this stuff, but I want to make sure I'm not learning a skill that could be easily exported out of country, or something.

I'm not going to address whether or not `getting into web development is a good idea or not`, it's one of the fastest growing, most in-demand and highest-paying job markets right now so I'll let that speak for itself. I am going to give you a brief road map to learning `web scripting`.

Front end development IS fun! Get comfortable with Javascript, CSS, and HTML. Then learn what DOM stands for, make websites for people, read the jQuery documentation over, and over again. Then move up to Sass, and pick a javascript app framework to build web programs on. I like Angular and Backbone. If you want to save data beyond local storage you're going to need a server-side database, so you could start with Parse, which is like a server helper for Backbone.js, or be a total boss and write your own RESTful api in Ruby or Python or PHP or something else, connected to a MySQL or PostgresQL database, hosted on Heroku, Amazon Web Services, or whatever else is convenient for you. Cheers!

dizzywhip
Dec 23, 2005

Gotta check out those context clues, people...he/she is clearly talking about front-end web development. But yes, it's a big field that's getting bigger all the time and it's absolutely worth studying. Some programmers can be kind of elitist about it because they don't consider it "real" programming (which sounds like it might be the case with your friend), but ignore those people.

As for whether it's something that can be outsourced, I think that's less likely to happen than many other development fields because there's a lot of design involved in front-end development. Even if you're working with a dedicated designer, a lot of the small details are still going to be in the hands of the developer, and it takes a bit of creativity and design sense to do things properly.

Chasiubao
Apr 2, 2010


My colleagues are funny assholes who told me to, "Make him cry!" when I asked for advice about questions to ask during a phone screen :smith: I've screened before when not-in person, but in that case I had access to a virtual white board type setup so I could ask actual coding questions, but never a pure phone screen.

Anyone got any advice?

Mystery Machine
Oct 12, 2008
Thanks a load for the information! I think I definitely want to move into this direction. After writing unit tests for a bio-medical company, I'm in the mood for something more colorful and visual. Now to think of interesting website ideas so I can practice.

seiken
Feb 7, 2005

hah ha ha

Chasiubao posted:

My colleagues are funny assholes who told me to, "Make him cry!" when I asked for advice about questions to ask during a phone screen :smith: I've screened before when not-in person, but in that case I had access to a virtual white board type setup so I could ask actual coding questions, but never a pure phone screen.

Anyone got any advice?

Use real-time collaboration in google docs for a virtual code whiteboard? Or are you not allowed to do anything other than a pure phone screen?

shrughes
Oct 11, 2008

(call/cc call/cc)

seiken posted:

Use real-time collaboration in google docs for a virtual code whiteboard? Or are you not allowed to do anything other than a pure phone screen?

I recommend using something more etherpad-like and simpler, such as stypi.com.

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe

shrughes posted:

stypi.com

Oh poo poo this one is awesome! I was trying to teach my younger brother but all the ones we tried kept making GBS threads up and we finally resorted to using Google drive.

how!!
Nov 19, 2011

by angerbot

Chasiubao posted:

My colleagues are funny assholes who told me to, "Make him cry!" when I asked for advice about questions to ask during a phone screen :smith: I've screened before when not-in person, but in that case I had access to a virtual white board type setup so I could ask actual coding questions, but never a pure phone screen.

Anyone got any advice?

If you're going to ask coding questions, make them as straightforward as possible. Ask lots of smal, easy questions, rather than one big, convoluted problem.

Good:
write a function that takes two strings, and returns them concatenated together
write a function that takes a list of integers and returns the average value of the integers in the list
write a function that take in a list of strings, and returns those strings alphabetized
etc.

Bad:
write a function that takes a string and then returns the number of characters that are needed to make that string into a paneldrome. For instance "xyz" needs "yx" added to the end of it to be a palendrome, so it would return 2.

A good programmer will blast through the good questions quickly. A good programmer may not get the "bad" problem because that is not the kind of thing you do every day. Don't expect the interviewee to be at the op of their thinking game while in an interview setting. A bad programmer will stutter and stammer and not be able to solve anything. If you really want to give the applicant a complex 'thinking' problem, let them "take it home" and think about it for a while.

Safe and Secure!
Jun 14, 2008

OFFICIAL SA THREAD RUINER
SPRING 2013
Don't you mean "send them your product's source and give them three weeks to rewrite it into something more maintainable"?

Tres Burritos
Sep 3, 2009

Hah. I never noticed how!! getting a a new title.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Tres Burritos posted:

Hah. I never noticed how!! getting a a new title.

It's not accurate though. His advice won't get you fired because by following it you'll never get a job in the first place.

Pie Colony
Dec 8, 2006
I AM SUCH A FUCKUP THAT I CAN'T EVEN POST IN AN E/N THREAD I STARTED

how!! posted:

If you're going to ask coding questions, make them as straightforward as possible. Ask lots of smal, easy questions, rather than one big, convoluted problem.

Good:
write a function that takes two strings, and returns them concatenated together
write a function that takes a list of integers and returns the average value of the integers in the list
write a function that take in a list of strings, and returns those strings alphabetized
etc.

Bad:
write a function that takes a string and then returns the number of characters that are needed to make that string into a paneldrome. For instance "xyz" needs "yx" added to the end of it to be a palendrome, so it would return 2.

A good programmer will blast through the good questions quickly. A good programmer may not get the "bad" problem because that is not the kind of thing you do every day. Don't expect the interviewee to be at the op of their thinking game while in an interview setting. A bad programmer will stutter and stammer and not be able to solve anything. If you really want to give the applicant a complex 'thinking' problem, let them "take it home" and think about it for a while.

it doesn't take a good programmer to answer the first set of questions. an average one could easily answer them quickly. so you don't have any distinction between good and average. just because it is more representative of what you do on a daily basis does not make it a good qualifier of competence. hiring managers would rather hire someone that solve the daily problems AND be able to reason through a less frequent, more difficult problem.

it's probably more about how you present the second problem. given enough time, a good programmer should be able to answer it, but even he doesn't, it should still be an illuminating process for the interviewer to see the applicant's ability to process, reason, and work through a problem the applicant is uncomfortable with. it took me 5 minutes to come up with a solution under a no-pressure situation (which i think works) so given, say, 15 or 20 minutes with the problem, it would at the very least be informative for the interviewer.

code:
c02 :: (Eq a) => [a] -> Int 
c02 (x:xs)
    | f (x:xs) == True  = 0 
    | otherwise         = c02 xs + 1 
    where f = (\y -> y == reverse y)

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

how!! posted:

If you're going to ask coding questions, make them as straightforward as possible. Ask lots of smal, easy questions, rather than one big, convoluted problem.

Good:
write a function that takes two strings, and returns them concatenated together
write a function that takes a list of integers and returns the average value of the integers in the list
write a function that take in a list of strings, and returns those strings alphabetized
etc.

Bad:
write a function that takes a string and then returns the number of characters that are needed to make that string into a paneldrome. For instance "xyz" needs "yx" added to the end of it to be a palendrome, so it would return 2.

A good programmer will blast through the good questions quickly. A good programmer may not get the "bad" problem because that is not the kind of thing you do every day. Don't expect the interviewee to be at the op of their thinking game while in an interview setting. A bad programmer will stutter and stammer and not be able to solve anything. If you really want to give the applicant a complex 'thinking' problem, let them "take it home" and think about it for a while.

Having people code over the phone is a waste of time, and those aren't very good programming puzzles in any case.
The first one is trivial to the point of uselessness.
The second begs for someone to use their language of choice's built-in average method.
The third does the same thing, except with a built-in sort method.

If you ask them expecting them to write their own implementations, and they do, then you've successfully managed to find developers who reinvent the wheel unnecessarily, and I don't want those people working for/with me. If they don't, then you've found developers who are familiar with their language's standard framework, which doesn't mean a whole lot.

The goal of a phone screening is to minimize the time you have to deal with bad candidates while at the same time determining the applicant's level of skill. To that end, I start with a few no-wrong-answer softballs ("What's the latest version of the .NET framework you've worked with", etc) to get them over their nervousness, then I dive into some easy, fundamental questions. I have like, 5 or 6 of them. If they answer any of those incorrectly or seem like they're struggling, interview's over.

After that I jump around based on how well they're doing and ask some increasingly difficult questions and get a feel for how well they know the language, best practices, and tools. If they do well, it's time for an in person.

shrughes
Oct 11, 2008

(call/cc call/cc)
Ithaqua, when you bring people in for an in-person interview, do you ever find any that struggle with a question where they have to write actual code?

how!! posted:

A good programmer may not get the "bad" problem because that is not the kind of thing you do every day.

That depends on your standards.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

shrughes posted:

Ithaqua, when you bring people in for an in-person interview, do you ever find any that struggle with a question where they have to write actual code?

Of course! There are always going to be people who can talk a good game but can't deliver. I've noticed the problem occurs most with people who are from cultures that emphasize rote learning. They have the textbook answers to everything memorized, but don't actually know how to do anything with them.

shrughes
Oct 11, 2008

(call/cc call/cc)

Ithaqua posted:

Of course! There are always going to be people who can talk a good game but can't deliver. I've noticed the problem occurs most with people who are from cultures that emphasize rote learning. They have the textbook answers to everything memorized, but don't actually know how to do anything with them.

Depending on how often that happens, you might want to try on the phone screen asking a simple coding question or two using stypi or some other online collaborative editor.

edit: I've also found it to be a good tool on some non-coding questions.

Chasiubao
Apr 2, 2010


shrughes posted:

Depending on how often that happens, you might want to try on the phone screen asking a simple coding question or two using stypi or some other online collaborative editor.

edit: I've also found it to be a good tool on some non-coding questions.

I'm going to try stypi, thanks very much for the suggestion!

lmao zebong
Nov 25, 2006

NBA All-Injury First Team
So I've been following this thread for over a year now, and have posted in it once or twice while I've been studying computer science and posted my resume for review a couple months ago. I've gotten tons of advice from this thread and am very thankful for all the insight posted here. I'm now in the waning weeks of my last semester, and have really been ramping up the job search. I guess I just have a couple general questions about how to effectively job search online. I'm located in the Bay Area, and am leaning towards something in the East Bay like Oakland but wouldn't mind commuting via BART to SF.

I made the mistake of having my resume public when I posted it on Dice, and literally had 25+ calls from recruiters in a single day of me posting that information. I quickly took it off because having my phone constantly go off and multiple voicemails was something I didn't want to have to deal with every day, especially while I'm still taking classes. I have talked to a couple recruiters, but since my resume shows I worked on a successful mobile game they all want to pair me with companies in the gaming industry which I'm not 100% sure I want to do. Is it worth leaving my phone number available and trying to go through these recruiters to get a job? It's a pain in the rear end to have my phone blow up like that but I guess I might be missing out on an opportunity if I don't.

Other than recruiters, the way I've been looking for companies to apply to directly consists of searching Dice.com for jobs posted in Oakland or San Francisco, or googling phrases like "top software companies san francisco ca" or "list of software companies oakland ca" and then looking at the jobs posted on the few websites I come across. Is there an easier way? Parsing through job boards sometimes pointless with all the spam or companies looking for senior developers, and it's a bit hard to effectively find software companies through generic googling like that. Any advice?

Adbot
ADBOT LOVES YOU

double sulk
Jul 2, 2010

lmao zebong posted:

So I've been following this thread for over a year now, and have posted in it once or twice while I've been studying computer science and posted my resume for review a couple months ago. I've gotten tons of advice from this thread and am very thankful for all the insight posted here. I'm now in the waning weeks of my last semester, and have really been ramping up the job search. I guess I just have a couple general questions about how to effectively job search online. I'm located in the Bay Area, and am leaning towards something in the East Bay like Oakland but wouldn't mind commuting via BART to SF.

I made the mistake of having my resume public when I posted it on Dice, and literally had 25+ calls from recruiters in a single day of me posting that information. I quickly took it off because having my phone constantly go off and multiple voicemails was something I didn't want to have to deal with every day, especially while I'm still taking classes. I have talked to a couple recruiters, but since my resume shows I worked on a successful mobile game they all want to pair me with companies in the gaming industry which I'm not 100% sure I want to do. Is it worth leaving my phone number available and trying to go through these recruiters to get a job? It's a pain in the rear end to have my phone blow up like that but I guess I might be missing out on an opportunity if I don't.

Other than recruiters, the way I've been looking for companies to apply to directly consists of searching Dice.com for jobs posted in Oakland or San Francisco, or googling phrases like "top software companies san francisco ca" or "list of software companies oakland ca" and then looking at the jobs posted on the few websites I come across. Is there an easier way? Parsing through job boards sometimes pointless with all the spam or companies looking for senior developers, and it's a bit hard to effectively find software companies through generic googling like that. Any advice?

Don't use Dice. Don't talk to (their kind of) recruiters. I've been on that same path and it's simply a waste of your time.

If you are entirely capable of doing what you do (and I'm sure you are), get an interview to StackOverflow Careers, put your profile/resume together on there, and fire it away at job postings you're interested in. You'll find something, I assure you. I'm only moderately capable with Rails right now, and I've still been pushing my current project to my Github account as often as I reasonably can, and I've had more legitimate phone screens/interviews in the last three weeks than I've had in the last six months.

I also responded to a posting seeking a senior level developer just recently and still got a phone screen/future coding exercise for a potential junior opportunity if only because I have some samples to look at, and I'm actually using a service where the people looking at your qualifications are actual developers.

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