Slashdot Mirror


Why the New Guy Can't Code

theodp writes "'We've all lived the nightmare,' writes Jon Evans. 'A new developer shows up at work, and you try to be welcoming, but he can't seem to get up to speed; the questions he asks reveal basic ignorance; and his work, when it finally emerges, is so kludgey that it ultimately must be rewritten from scratch by more competent people.' Evans takes a stab at explaining why the new guy can't code when his interviewers and HR swear that they only hire above-average/A-level/top-1% people. Evans fingers the technical interview as the culprit, saying the skills required to pass today's industry-standard software interview are not those required to be a good software developer. Instead, Evans suggests: 'Don't interview anyone who hasn't accomplished anything. Ever. Certificates and degrees are not accomplishments; I mean real-world projects with real-world users. There is no excuse for software developers who don't have a site, app, or service they can point to and say, 'I did this, all by myself!' in a world where Google App Engine and Amazon Web Services have free service tiers, and it costs all of $25 to register as an Android developer and publish an app on the Android Market."

115 of 948 comments (clear)

  1. Experienced only? by Pharmboy · · Score: 5, Insightful

    This reminds me of the old expression "I can't get the job because I don't have any experience, but how can I get experience if they don't give me a job?"

    Yes, on your own, but it is still saying "don't hire someone directly out of school" without considering that there are some advantages to this, such as being able to integrate someone into your system, before they have had the chance to develop "bad habits".

    --
    Tequila: It's not just for breakfast anymore!
    1. Re:Experienced only? by TheRaven64 · · Score: 4, Interesting

      Experience can be gained on non-job tasks. Quite a lot of the people who contribute to open source projects that I organise are in university. When they graduate, there's a body of code that they can point to and say 'I worked on this'. There are also public commit logs so that people can look at them and see exactly what they did, and sites like Ohloh.net that let people quickly see their total contribution. If anything, this is better for a recruiter than experience on the job, because most employers won't allow you to show code that you wrote for them to your next potential employer...

      --
      I am TheRaven on Soylent News
    2. Re:Experienced only? by bunratty · · Score: 4, Insightful

      I was doing programming projects for years before I ever took any sort of computer class. If a potential programmer can't show any work they've done outside of the classroom, they're almost certainly not ready to code for a living.

      If an interviewee really can't show any work, perhaps a good idea would be to give them a few simple Google Code Jam problems and have them pick one to solve. Just watching them write down some pseudocode would show whether they have the ability to think for themselves, and if they can actually write a working solution in a common programming language, or better yet, the language they'll be using on the job, then of course they can program!

      --
      What a fool believes, he sees, no wise man has the power to reason away.
    3. Re:Experienced only? by mikael_j · · Score: 5, Interesting

      I think the problem is that a lot of people, no matter how skilled and dedicated, may not have had any summer jobs or internships (at least around here those are very hard to come by) that led to them taking part in the creation of "real" applications as well as not really have any "finished" applications to show off (as in, they may have dozens or hundreds of little apps but you rarely want to show an interviewer that 900 line perl script you wrote that has half a dozen required and undocumented parameters and does something extremely specific to your home computing environment.

      I was actually in that sort of position after college, I ended up working tech support for over a year because I couldn't find a "real job", the reasons for why I either didn't get an interview or why they didn't find me interesting post-interview were split between no reason given, "You're not quite what we're looking for" and "Please try again when you have at least three years of experience, the ad might've said 'entry-level' but we really meant we were looking for someone with a few years of experience...".

      --
      Greylisting is to SMTP as NAT is to IPv4
    4. Re:Experienced only? by kestasjk · · Score: 2

      I have to agree.. If you went through years of school and never wrote anything by yourself for people other than yourself are you really going to enjoy developing software anyway?

      --
      // MD_Update(&m,buf,j);
    5. Re:Experienced only? by ShakaUVM · · Score: 2, Informative

      By the time I got my degree, I had a variety of projects I did for school and for fun that I could show off. Bayesian. If people don't have a portfolio, they're lazy. Either because they can't be bothered to put together a portfolio, or because they haven't done anything at school except sit like a bump on a log. (Never understood that phrase...)

      Any student can work on:
      1) Open source projects
      2) Mods for games
      3) Websites for whatever interest
      4) Useful utilities to make their own coding projects faster. I wrote a patch for VIM that did code folding the way I wanted it done, for example
      5) Small programs for their own hobbies (I wrote an Axis & Allies combat odds calculator once while, uh, drunk as an undergraduate) ...or as TFA suggests, a mobile app.

      There's plenty of places where people of even the smallest curiosity will be able to find something to do that they can point at on a job interview.

    6. Re:Experienced only? by biryokumaru · · Score: 3, Interesting

      Applications you've made because of a school project will not count.

      That's stupid. As an EE, a buddy of mine and I made a spiffy wireless sensor system which we presented at a conference. We did the project all on our own without any direction from any professors and received a $5000 grant from an independent organization interested in publishing our work. And we did it all for 6 credits worth of independent undergraduate research classes, too. Just because you get college credit for a project doesn't mean it isn't a real project.

      --
      When you're afraid to download music illegally in your own home, then the terrorists have won!
    7. Re:Experienced only? by Fuzzums · · Score: 5, Insightful

      We hire inexperiences developers regularly. They're called JUNIOR DEVELOPERS and they require extra time. That's why they make less money than a medior or senior developer.

      --
      Privacy is terrorism.
    8. Re:Experienced only? by dkleinsc · · Score: 5, Insightful

      The thing is, most employers already follow this rule. As someone who's career started in 2004, the first 3 years of it were extremely difficult because almost everybody in the industry needed 3 years of full-time development experience on the resume before they'd even talk to me. And of course, these same employers have the audacity to say "We can't find any good young developers!" as if making it difficult-to-impossible for anyone to join the industry (oh, and if they're large enough for age discrimination laws to apply, acting on that sentiment is illegal) would have no effect. I've gotten over that hump, but that was by taking any job that came my way, being willing to work 70 hours a week for about $7 an hour, and I'm sure having recruiters lie a bit to get my foot in the door.

      And the reason for all this isn't hard to figure out: This "don't hire anyone without experience" is a pretty smart rule if one employer does it, but a really really dumb rule if every employer does it. In addition, because it takes 3 years for the negative effects of this to really sink in, the system looks great for a while. Basically, everyone wants the experienced demonstrably-capable programmers, but wants the responsibility of giving them basic practical experience to fall on somebody else. To do otherwise would require the vision and the funding to think about a picture bigger than "my company this fiscal year".

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    9. Re:Experienced only? by drinkypoo · · Score: 5, Insightful

      Nobody wants to train anybody any more. They want to be able to hire and fire at will and they know that they are not capable of fostering loyalty when they feel no responsibility to their employees. There's no point in spending money to train someone who is just going to go somewhere else, and that's what they will do.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    10. Re:Experienced only? by Anonymous Coward · · Score: 2, Insightful

      Yeah, there's nothing wrong with hiring someone straight out of school, just so long as you understand they're likely to be completely inexperienced and in need of training. If you're hiring someone completely inexperienced based on certificates and degrees and then expecting them to "get up to speed" quickly, then the problem is you: your expectations are ridiculous.

      Don't try to save money by hiring inexperienced people and then complain that they're inexperienced. It can often be good to have people of varying levels of experience working on a project-- the company gets cheap labor that can take care of some grunt work, the new guy gets experience, the project gets a fresh perspective, and the senior employees get the experience of training someone new. The problem is that you need a good manager who can assign appropriate roles and set realistic expectations.

    11. Re:Experienced only? by atlasdropperofworlds · · Score: 2

      I don't think that is anywhere near fair. Some kids tackle their projects with zeal, going well above and beyond what was expected and required. I've hired and continue to hire such students when they graduate, and they are *always* very successful.

    12. Re:Experienced only? by Vectormatic · · Score: 5, Insightful

      i do enjoy coding a lot, as in i cant think of anything i'd rather do for a living. But in my free time, i can think of thousands of things i'd rather spend my time on, so i hardly have any hobby-projects, certainly nothing that i would use to show off at a job interview.

      Making your hobby into your job is a sure-fire way to lose it as a hobby by the way, all the managerial crap that comes with a work environment is not something you want to asociate with your hobby

      --
      People, what a bunch of bastards
    13. Re:Experienced only? by kestasjk · · Score: 2

      Coding full time does mean you spend less time coding as a hobby of course, but the idea that you can go into coding full time having only written academic stuff that you had to write is really misplaced. If you say you enjoy coding and are good at it, yet you don't have any code you want to show off, I just don't think you would be worth hiring.

      --
      // MD_Update(&m,buf,j);
    14. Re:Experienced only? by stewbacca · · Score: 4, Insightful

      All good ideas...for people with tons of free time. When you get a job doing this stuff, you get 8-10 hours a day to do it. I'm hard pressed to think of any time outside of my work hours that I have 8-10 hour blocks of time to do stuff for fun.

    15. Re:Experienced only? by mgessner · · Score: 2

      You're right... his statement was too generic.
      Projects you did for an ASSIGNMENT should not count, unless it's "Come up with something new and revolutionary" and there's been no suggestions by the prof.
      I agree with you... if you're doing an independent study or research project, and it's something you did all by yourself, it counts.

      --
      "Sometimes the truth is stupid." - Lawrence, creator of Prime Intellect
    16. Re:Experienced only? by Fuzzums · · Score: 2

      We're not a large company, but big enough to be able to spend time educating the juniors. They are productive within 2 - 3 weeks. But at junior level :)

      --
      Privacy is terrorism.
    17. Re:Experienced only? by xMrFishx · · Score: 2

      So you're one of those types who has a lot of knowledge but won't spread it to others capable of learning and instead will just keep it to yourself til you retire. Good job! Post on your real account.

    18. Re:Experienced only? by NoSleepDemon · · Score: 2

      During my degree in third year our 'big project' was to create a playable game from scratch. We ended up building our own graphics, physics and AI systems and made a space combat sim (we were all huge Freespace enthusiasts). That third year project with screaming lazors and surround sound sure as hell helped land us entry level positions at various software houses. A friend of mine also got into a company this way - he wrote a rippling water demo that utilized the PS2's vector processors and a one pass algorithm that allowed him to generate an almost unlimited number of waves without slowing the system down.

      So obviously I call bullshit on this guy's 'don't hire people without real world experience' line as well.

    19. Re:Experienced only? by drinkypoo · · Score: 2

      The converse is that new hires don't want to do anything utterly, horrendously and mind-numbingly boring - like we all had to do when we started. Everyone wants to do cool projects when they start, but some are angry they don't get to on their first day and don't adapt well. Impatience works both ways.

      Sure, I think there's plenty of that, but it's clear from job descriptions that companies want to hire someone and NOT have to train them into their process.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    20. Re:Experienced only? by beelsebob · · Score: 2

      Not only that, but the real reason for their code being bad is actually rather simple. It's a matter of coders being perfectionists, even when it comes to simple matters of style. Another man's code will always look bad, especially when he's the new guy and isn't yet using the same styles and conventions as you. Hell, your code will always look bad - all developers are constantly unhappy with their code.

      Put that together with the fact that developers tend to be harder on other devs than on themselves, because it's not already in your brain as to why you made certain decissions, and which code you know is bad, but you just haven't touched up yet.

      I covered this in my blog.

    21. Re:Experienced only? by Ephemeriis · · Score: 4, Interesting

      All good ideas...for people with tons of free time. When you get a job doing this stuff, you get 8-10 hours a day to do it. I'm hard pressed to think of any time outside of my work hours that I have 8-10 hour blocks of time to do stuff for fun.

      Exactly.

      It's all well and good to tell people they ought to have prior experience... And that they ought to be coding on OSS projects or something in their spare time... But spare time is something I've just now discovered - at the age of 34.

      There's a reason why they consider 12 credits "full time" (at least here in the US) - if you're taking classes that are even remotely challenging you'll be putting several hours of work outside of the classroom into every single hour of work in the classroom. And then you throw in a job on top of that... Doesn't leave much time for OSS projects.

      Then I graduated, and got a job at Electronics Boutique, because nobody would hire me in anything even remotely IT-related. It was part time, hourly work... Which meant absolutely no benefits, a schedule that would change wildly from one day to the next, and no sick time. I was constantly dropping everything to cover for someone. Had to take every hour I could get to make ends meet.

      Then I grabbed a second job, because EB wasn't working out - taught things like Microsoft Word at a local community college. Prepping for class... Teaching the class... Office hours... Grading... All in addition to working at EB.

      Then I finally got a job in IT. Worked for one of the local repair shops for a while. Quickly moved through the ranks from bench technician to lead network engineer (a fancy title to make up for the lack of pay). I don't know how much overtime I put in there... Came in early, worked through lunch, worked late, came in on the weekends...

      My current job is the first one where I can actually leave work at 5:00 on a routine basis. It's the first one where I don't wind up working weekends on a routine basis. It's the first one where I actually have some time to myself at the end of the day. Time I could spend doing some OSS coding...

      Except that my days of writing software are long behind me. I've got experience now, but it isn't in software. I've wound up on the sysadmin side of things. Yes, I write scripts fairly frequently... But I sure as hell couldn't be trusted to do anything substantial.

      And I graduated with a Computer Science degree that was very heavy on programming. I originally intended to write code. But nobody would hire me. The local repair shop only hired me because they figured I could probably replace a HDD without drooling all over it first.

      --
      "Work is the curse of the drinking classes." -Oscar Wilde
    22. Re:Experienced only? by Ephemeriis · · Score: 2

      We hire inexperiences developers regularly. They're called JUNIOR DEVELOPERS and they require extra time. That's why they make less money than a medior or senior developer.

      Yup.

      They get on-the-job training, so they learn how to do things right and they have the experience to get a decent job later on.

      You get some cheap (relatively speaking) labor to crank out the simple/repetitive stuff.

      --
      "Work is the curse of the drinking classes." -Oscar Wilde
    23. Re:Experienced only? by Homr+Zodyssey · · Score: 5, Interesting

      I agree with Vectormatic. Just because its my job which I enjoy and I'm good at, does not mean I'm going to sit around doing it for free. If I have extra time on nights/weekends to do some coding, I'm going to bill for it.

      I've been a developer for 13 years, at a half-dozen jobs. I've never been asked for a code sample, and I wouldn't have one to provide if I were.

    24. Re:Experienced only? by Ephemeriis · · Score: 4, Insightful

      Nobody wants to train anybody any more. They want to be able to hire and fire at will and they know that they are not capable of fostering loyalty when they feel no responsibility to their employees. There's no point in spending money to train someone who is just going to go somewhere else, and that's what they will do.

      Very true.

      Folks are treated as interchangeable parts. Hire somebody to fit some role, and you expect them to do their job on day 1. If they aren't working out, fire them and hire someone in to do the job they weren't.

      Used to be that skilled labor was the backbone of our economy... Folks who didn't necessarily have college degrees or anything fancy like that, but who'd been doing their jobs long enough that they actually knew what they were doing and were worth more because of it. You could actually stay with a single company for a while, learning as you went, getting raises and promotions along the way.

      These days you're lucky if you work in one place long enough to learn where the restroom is. And if you want a promotion or a raise, you've got to go get hired somewhere else.

      --
      "Work is the curse of the drinking classes." -Oscar Wilde
    25. Re:Experienced only? by xaxa · · Score: 2

      i do enjoy coding a lot, as in i cant think of anything i'd rather do for a living. But in my free time, i can think of thousands of things i'd rather spend my time on, so i hardly have any hobby-projects

      That alone might stop Google hiring you.

      My hobby project's are generally making changes to existing open source software, where I want an extra feature, but since graduating I've not wanted to spend so long in front of a computer in the evenings/weekends so they've stagnated. (I'm ill today, and might feel more like coding.)

    26. Re:Experienced only? by toriver · · Score: 2

      Applications you've made because of a school project will not count.

      Why not? Because someone else provided the specifications? Isn't that what corporate software development is built around? Not to mention that school projects are done in teams, so your contribution to that team can show how well you will work in a dev team? Soloist codemonkeys do not good employees make.

    27. Re:Experienced only? by xaxa · · Score: 2

      I thought good colleges ding you for going "above and beyond" the requirements...or at least they should.

      That would be ridiculous. The best people in my class at Imperial College were the ones who did what was required, then did it again in Haskell, then made it into a distributed multiplayer network game or whatever.

      Sure, they might "waste" 10% of time at work doing something tangentially related to the task, but it's probably useful, and you'll get 200% of the work in the rest of the time.

    28. Re:Experienced only? by Tanktalus · · Score: 3, Interesting

      It all depends. When I first got out of school (B Sc Elec Eng), I coded at work, and I coded at home. Later, I got married, and the coding at home started to drop off, but not completely. Now I have three kids, and the for-fun coding has dropped to near, but not quite, zero. However, I don't think that my day job had anything to do with it - if I were doing Electrical Engineering, my for-fun coding would still have dropped to near zero, if not actually zero. It's just a matter of having other events in life that readjust your priorities.

    29. Re:Experienced only? by stewbacca · · Score: 2

      Well, scope creep is far more expensive than lazy ass slackers developing to the requirements.

    30. Re:Experienced only? by Count+Fenring · · Score: 4, Insightful

      It's the inability to "start low" that people are complaining about, actually. The position actually being discussed is this: "Software jobs have a higher barrier to entry than is reasonable - even entry-level jobs require multi-year experience, which is unreasonable."

    31. Re:Experienced only? by JustOK · · Score: 5, Insightful

      Saying you can do surgery full time with only the experience and training you got in medical school is really misplaced. If you say you enjoy doing surgery and being a doctor, then surely you must do some of it simply as a "hobby".

      --
      rewriting history since 2109
    32. Re:Experienced only? by Nursie · · Score: 4, Insightful

      That's ridiculous.

      Some of the best engineers I've worked with don't program in their spare time. Hell, one or two of them went for prolonged periods of time without even any home internet access, because they had their fill of technology during the week.

      Zeal and out-of-hours interest in coding are good things, but if you make them your main criteria you'll miss out on some very good people.

    33. Re:Experienced only? by stonewallred · · Score: 2
      You are a moron to a large extent.

      I am a very good tech, have several licenses for different professions in my state and own now two successful businesses, one full time, HVAC/R; and one part-time, Substance Abuse Assessments for people charged with DUI.

      In my time off, neither of them are something I do for "fun".

      And I am not "stagnated' in my career or knowledge in either field. Being that both require CEUs and due to the fact that I am a person who takes pride in my skills, so I attend any training courses available within my time constraints.

      If you think the only way to advance your career or skills is to do the same thing in your "off time" as you do when getting paid, you must be one boring, miserable excuse for a human being.

    34. Re:Experienced only? by kannibal_klown · · Score: 5, Insightful

      I've been at my current job for 10 years, coding. I'm supposed to work from 8 to 4:30 but it usually turns into 8 to 5:30 as well as having to check emails in the evening. All of my apps are behind the company's firewall so I can't show them off to anyone.

      Meanwhile I'm also a 2nd-level admin for our servers and web apps. Meaning at least a couple of times during the month I have to do something to the server over the weekend, get a support call at 3AM in the morning, test things after a server move, etc.

      As much as I like coding, after 10 years of the above I'll be honest... I don't have any personal projects of my own to show.

      The above takes too much of of day/week/etc as it stands. I really don't want to have to sit behind my computer and then do a personal project on top of everything else.

    35. Re:Experienced only? by bluelip · · Score: 2

      Required projects don't show passion.

      --

      Yep, I never spell check.
      More incorrect spellings can be found he
    36. Re:Experienced only? by DrgnDancer · · Score: 2

      It's nice that you tear apart his grammar, while at the same time screwing up your quote tags so as to make your post far less readable than his. Gosh you'd almost think no one is perfect. Also you have have several dangling participles. (Before anyone comments, yes, there probably will be grammatical errors in this post. That just reinforces my point. This is an Internet forum post, not a cover letter or engineering document).

      Going on to the main topic: You know what? I'm good at what I do. I can say that as objectively as possible in a career field that lacks any real objective criteria for "good". I have a fairly senior level position, with a good company. They like me and my work well enough to offer a substantial raise to keep me when I got another offer. I get fairly regular contact from recruiters, and when I follow up I get interviews and even offers more often than I don't. I also really love my job. I love being able to play round on computers the likes of which would stagger most people to think about, and make them do things that people don't realize they can do.

      You know what else? I do that eight or nine hours a day. Sometimes ten or twelve on a bad day. I do it everyday, even the days that I'm not really feeling it. That's way more time than I spend on any hobby, any other area of interest, my wife.. hell that's more time than I spend sleeping. I'm not doing it when I get home. Period. Not unless I get a wild hair up my ass and decide that something really needs to be done. If that makes me a bad engineer, a bad employee, well you better talk to my boss. He seems quite happy with my terrible work habits.

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    37. Re:Experienced only? by pavera · · Score: 2

      lawyers at least get 0 training in law school about the actual practical practice of law. Lawyering is very much like CS in this regard. The CS curriculum I went through provided 0 real world training in a) source code management, b) software design/engineering (IE how to build maintainable code), c) IDE/Team development, d) continuous integration/build systems.... This is very similar to law school, you learn all the theory of the law, but you don't learn anything useful about how to efficiently file law suits, efficiently prepare documents, manage clients, or their expectations... Without these skills a lawyer is useless in the real world, just as a CS grad is useless without the practical knowledge of the systems I listed, which school does not teach at all (or at least did not 10 years ago maybe things have changed?)

      That is why lawyers spend the first 3-5 years of their careers working 80 hour weeks and making relative peanuts compared to senior lawyers and partners.... I'd bet that is why doctors spend the first years of their careers doing a residency, also making peanuts, and working insane hours. Some things require experience to learn well, software design I feel is one of those things, I'm only just now (6 years into my career) feeling like I can reliably build really maintainable, readable code on the first try. Unless school starts making you build a single project over 4 years, that you have to maintain, and add features to, and build on... that is the only way to learn to build maintainable code... Build a project and maintain it, and figure out "oh, I made a bad decision there... that made it so I had to re-write half the project to add feature X", and learn from that mistake so you make less bad decisions in the future... you just have to have experience with it to learn how to do it. If only companies would implement an apprenticeship/residency/junior associate program that mirrors lawyers/doctors then we'd have something. Burn out the lazy/not dedicated, promote the really good ones quickly, and stop acting like all devs are created equal, cause we're not.

    38. Re:Experienced only? by Peeteriz · · Score: 2

      I've been coding full-time for ~10 years, but there's nothing that I would be able to show to another employer, as the apps are held within previous employers.

      By headcount, a majority of developers work in internal projects in large non-IT corporations, the public web projects, startups and software sold to consumers are much more visible, but ultimately the smaller half of programming industry.

    39. Re:Experienced only? by Cederic · · Score: 2

      By the time a person reaches 40 he/she will be doing fine.

      By the time a programmer hits 40 they're either stuck in a rut or progressed out of programming for a living.

      Don't bother telling me that's an entirely unfair generalisation, because I know already. It is however sufficiently accurate to describe 98% of programming jobs.

      Almost nobody pays continually increased rates for programming roles as you gain experience. People get pay rises by moving into management, architecture, consultancy; not by programming.

      It's a young man's game, and I've seen no evidence of that changing since Steve McConnell published 'Orphans Preferred'.

    40. Re:Experienced only? by jvillain · · Score: 4, Interesting

      My favourite was the web. Mosaic just came out when I was in tech school. When I hit the job market 2 years later they were looking for web developers with a minimum of 8 years experience in web development because that is what their policy was for every thing else. You still see lots of that, especially when working with open source software. Requirements for more experience than the project has been around. Clueless. And the worst of them are the head hunters. There is one where I live that will not put any candidate forward that doesn't have an MCSE even if the position is for a Linux admin or Solaris etc. Because apparently the MCSE is what "professional" administrators have. The fact that I was running load balanced Linux clusters years years before you could even get certified in Linux makes their heads explode. It just doesn't compute.

    41. Re:Experienced only? by stephentyrone · · Score: 2

      Except that you can't "do surgery full time with only the experience and training you got in medical school", which is why (in the US) surgeons go through a 5-7 year residency after medical school (often followed by a fellowship), during which time they work their asses off for less than my intern makes. After that point, they have a large body of work to prove their ability, and are able to get paid according to their skills.

      I would be completely thrilled to hire someone fresh out of graduate school and work him 80 hours a week for 50k a year (after a year, he'd either be up. How many junior engineers would put up with that? I don't think you realize how easy we have it by comparison to surgeons.

    42. Re:Experienced only? by Firehed · · Score: 2

      Don't mistake scope creep for planning ahead. Maybe the spec only calls for a user-facing feature, but a good developer can recognize that it also needs a place in the admin panel or else that same developer is going to spend the next six months manually editing rows in the database because the support team can no longer do their jobs. Some may consider that scope creep*, I consider that not shooting yourself in the foot, and it's something I hugely value when interviewing people.

      * Strictly speaking, they're not wrong. But smart coders will actually think about what the spec is trying to accomplish and realize that it's incomplete. It's the difference between blindly implementing feature requests and actually understanding what people are trying to do and solving the real problem.

      --
      How are sites slashdotted when nobody reads TFAs?
    43. Re:Experienced only? by Glonoinha · · Score: 2

      But smart coders will actually think about what the spec is trying to accomplish and realize that it's incomplete. It's the difference between blindly implementing feature requests and actually understanding what people are trying to do and solving the real problem.

      And really, really good software engineers know that the approach to doing this is the written PCR - if the spec's as written don't fully meet the business requirements (or so the developer feels), it's his duty as a professional software engineer to inform the business that the original (agreed upon) spec's are incomplete via a Project Change Request, get them to sign off on the impact to the project (cost, scope, timeline, testing and QA, documentation, release date, etc..) Once the business (the people paying for the project) sign off in agreement, that developer is free to write the technical specs on the new functionality and have it reviewed in context by the business and other development members, then implement it.

      It's the difference between a cowboy hacker going off on his own writing code he feels like writing and coming in weeks late and over budget, and a software engineer hitting his new date within his new budget (because part of the PCR was an agreed upon change in timeline and budget.) I've been both - cowboy hacker is fun, but professional software engineer keeps you in the good graces of the guys cutting checks.

      --
      Glonoinha the MebiByte Slayer
    44. Re:Experienced only? by shmlco · · Score: 2

      "Most people don't have time or a even a reason to be writing code while they are in school..."

      If you're a photographer, you take pictures. If you're a writer, you write. If you're a developer, you code. If you don't have enough passion or interest in the subject of your major to actually do those things, then I might suggest looking for another major...

      The world needs more passionate people, and fewer drones...

      --
      Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
    45. Re:Experienced only? by ub3r+n3u7r4l1st · · Score: 2

      Exactly. There is another way to say it if you want to look you are not doing it for your paycheck:

      "On my free time, I develop software on the application of social justice."

      That sentence alone, especially with the "social justice" moniker, buys the heart of many grad school admission committees.

    46. Re:Experienced only? by mikael_j · · Score: 2

      Sounds like you had plenty of time to develop an app, or build a web site, or contribute to an OSS project. Could have done the same during school. 'Course, that could have cut into the social scene, or limited the number of nights you could spend playing Halo.

      First of all, I never played Halo. When I first saw it I dismissed it as yet another mediocre FPS. Also, if that was your way of implying that I was some sort of "bro" who spends my time playing Xbox games and "kicking back brews" then please try again.

      Also, I did write code, from age 8 up until the present I have written plenty of code in a wide variety of languages. What I have not done though is publish the majority of it. The vast majority of it just wasn't worth publishing since I didn't sit down and think "I want to market something to the masses, what kind of application could appeal to the mass market?", I usually just wrote code to "scratch an itch".

      --
      Greylisting is to SMTP as NAT is to IPv4
    47. Re:Experienced only? by CycleMan · · Score: 2

      Scope creep is terribly expensive. From my experience, it very often comes from the users who do not understand the cost of the programmer's time and the impact to the delivery schedule as a result. If the programmer himself determines that he can add features and still meet schedule, that's the kind of scope creep I can support. Yes, he had better meet all the requirements and follow the directions, but if he has time to add something that says "wow," then he has creativity, innovation, and discipline. Those are hireable traits.

    48. Re:Experienced only? by Xest · · Score: 2

      Except many people are extremely nervous in interviews, and wont possibly be able to show off their ability under such conditions.

      A better option is to alert candidates that you will be e-mailing them a problem a day or two, or even a week (depending on the size of the problem you want to set) before the interview and to come with a solution and that they will need to explain the solution they came up with. It's not perfect but at least then they can work in an environment they're comfortable and show you their best work. I've seen some very very good developers struggle to solve problems in situations where they're that nervous, and it's not the same as working under pressure due to time constraints either so doesn't demonstrate an ability to work under pressure even.

      The problem with throwing out a problem in the interview is you either make it so simple to cater to the fact people are nervous such that it wont be of any value anyway, or you make it hard and risk losing some of the better applicants who simply aren't comfortable in interview situations. Doing the problem outside the interview I've found to be very effective- you'd be suprised how many decide to pull out because they know they couldn't solve it, and if someone solved it for them they couldn't blag an explanation in the interview.

      I do a two stage interview, which I make candidates aware of before they come for the first one. The first interview I do in a very informal manner, sat on comfy sofa chairs, and really just try to get to know the candidates, make them feel at ease, but importantly try and sell the job to them, and it is here I give them the problem and then a week later they come for the second interview with their solution which they explain through.

      I feel when I've done my job well- making them want the job by making them feel at ease with me as an interviewer and selling the job to them, then those that then really like the role and company come forward with some really excellent problem solutions, and those who don't want the job or really can't do the job and were hoping for an easy ride don't waste my time or theirs further after the first interview. It's effective so far, and since we moved from traditional single formal interviews I've found it far easier to pull in really really high quality candidates.

    49. Re:Experienced only? by teh+kurisu · · Score: 3, Insightful

      My problem is that, while I'm perfectly good at the technical side of building a website, art and design is not my forté, and I'm not confident that I could build a website that would make an interview panel sit up and take notice. In fact, I'd be worried that my perfectly functional website that nonetheless looks like ass might be detrimental to the outcome of my job application.

      The problem as explained in the article seems to be that the HR department isn't in tune with the needs of the company or IT department, and sending them advice to check that the candidate has a website is going to result in a lot of candidates with pretty but kludgy websites getting jobs at the expense of candidates with well-designed but ugly sites.

      Perhaps it would be better to make sure that somebody from the IT department is on the interview panel.

    50. Re:Experienced only? by AmiMoJo · · Score: 2

      I have tried to use open-source code I wrote in my free time to get jobs and it doesn't work. The HR guy calls you up and asks what commercial experience I have. I tell them "none, but I have lots of open source code to my name and I can provide samples" and then they quickly lose interest. Their client wanted two users experience in the industry and they are not going to go back to them with some guy who does it as a hobby.

      I have started billing myself as self employed. I sell some of the gear I make so now I can claim I have a few products to my name and provide on-going commercial support for them. It seems to work better with the HR guys but it is too early to tell if it will get me any interviews.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    51. Re:Experienced only? by ultranova · · Score: 2

      Experience can be gained on non-job tasks. Quite a lot of the people who contribute to open source projects that I organise are in university. When they graduate, there's a body of code that they can point to and say 'I worked on this'.

      So basically you need to work for free to qualify for getting a job in software industry? I think you just identified the heart of the problem ;).

      Also, it's impossible to identify "top 1%" of people, and in any case, your company is not in the top 1% of prestige or salary, so why would the top 1% be willing to work for you? Making the requirements needlessly high means you only get people who are capable and willing to bullshit themselves past them.

      Seriously, settle for average, and you get average; aim for excellence without being willing to pay for it, and you get cynical conmen.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  2. Even with a few projects... by inflex · · Score: 2, Insightful

    Even with a few Open-source projects under your belt for others to check out you might still be a crappy coder but at least they've got more chance to see what they're getting into.

  3. So... by zero.kalvin · · Score: 4, Insightful

    If you don't have experience we won't hire you ? I might be naive, but isn't by getting a job you get the experience? Yes I do agree that you don't hire someone who just got out of college to code for the next super secret OS, but you can't expect everyone to be the that good right away.

    1. Re:So... by mikael_j · · Score: 3, Insightful

      This means they will have done some coding for open source or made a website for something. Be it the church or their baund or their local pub or whatever.

      No it does not mean that. They may very well have a hundred or more pet projects in version control at home but have never once done anything for anyone else. I've known several developers who have had no interest in showing off what they've done other than as a sort of "hey, look at this!" among their peers (peers = other geeks, not mommy or the neighbors), they were perfectly good developers who had no "published" software or sites by the time they left college and most of what they had at home wasn't really the kind of stuff you'd show an interviewer (because to the interviewer it would be a bare-bones prototype of an app with only one or two pieces properly implemented which of course was the point to begin with, to attempt to write those parts and tacking on the rest of the app out of necessity, I know I've written a few of those in C/C++ back when I was in high school, little 2D "games" that were really just code I'd copied from other games I'd written so I could test something like my new map editor and map format, had I shown that one to a potential employer it is very likely that the interviewer would've been very unimpressed since it wasn't a complete program from his/her point of view).

      --
      Greylisting is to SMTP as NAT is to IPv4
  4. Why is this a nightmare? by hughperkins · · Score: 5, Interesting

    Firstly, why is this a nightmare? Who wants extra competition?

    Secondly, "technical interview" is a misnomer. They're actually "potential colleague" interviews. Who is going to pick someone who is smarter than them, or who is going to give them competition for promotion?

    Those who get through technical interviews are either smart enough to bluff to the interviewer that they're not quite as smart as the interviewer, but an ok guy to hang out with; or are genuinely not as smart or talented as the interviewer, but are an ok guy to hang out with.

    Quick tip: when you attend a technical interview, answering the questions correctly doesn't get you the job. Being amazed at how much the interviewer knows does.

    1. Re:Why is this a nightmare? by giorgist · · Score: 5, Interesting

      Who is going to pick someone who is smarter than them, or who is going to give them competition for promotion?



      As the rule goes ... A class managers, hire A class people.
      B class managers hire C class people.

      A class managers do not feel threatened, so they hire the best there is. The result is a great workplace.
      B class managers on the other hand want to make sure their staff is dumber than them selves, so they make sure they hire C class staff.

      So the rule is, if your boss is a moron ... you should be worried.
    2. Re:Why is this a nightmare? by Kjella · · Score: 2

      Somehow I've never found that to be very accurate. The "managers" love strong "doers" because they get projects done and solve problems quickly covering for the manager's incompetence and making him look good, while requiring a completely different skill set and interests. The danger is whoever has your title with "Senior" in front of it or if you have that, then "Chief" or "Lead". They know those are the positions you will be gunning for next, the natural step up.

      --
      Live today, because you never know what tomorrow brings
    3. Re:Why is this a nightmare? by stewbacca · · Score: 4, Interesting

      I'm a lead. I like my two worker bees. They are both better than me at everything technical, but neither could be a lead (yet). I don't feel threatened one bit, even though I know both of them are smarter and technically more competent than me. Plus, most organizations don't replace leads without a reason, so unless I go to another position, my two guys won't get my job. If I lead like I were in fear of my job, I'd be a terrible lead.

  5. No room for the new guy by cronius · · Score: 4, Insightful

    I usually say that it doesn't matter what you know, what matters is how fast you learn. Someone who you can teach and tell how to do things once, and they actually understand the message and do it right from then on is much more valuable in the long run then someone who has a (short and) static merit list in my opinion.

    --
    Life is Reality
  6. Evan, the best programmer evah by Anonymous Coward · · Score: 5, Insightful

    There is no excuse for software developers who don't have a site, app, or service they can point to and say, 'I did this, all by myself!' in a world where Google App Engine and Amazon Web Services have free service tiers, and it costs all of $25 to register as an Android developer and publish an app on the Android Market."

    There is no excuse for self-proclaimed software authorities who don't know that software development covers much more than just Web-related or mobile apps. I've been developing software since before the Web was invented and I still don't have a website, I don't write apps for Android and there's no service on the Internet that I can point to and say "I did that all by myself!" I'm a systems programmer and I make a nice living writing code for embedded systems that make it possible for this Evan guy to post his ridiculous rants on the Internet.

    1. Re:Evan, the best programmer evah by ElusiveJoe · · Score: 2

      Programming is not art or something. It's like asking a car mechanic for his "portfolio" of repaired cars.

    2. Re:Evan, the best programmer evah by stewbacca · · Score: 2

      I have 15 years of experience working on Top Secret programs for the government. Um, how exactly do you propose I show you my portfolio? Fortunately for me, I've been able to get three jobs in the past 5 years based on my statement that I can't show you the actual work but I can tell you what it is I made and how I made it.

    3. Re:Evan, the best programmer evah by russotto · · Score: 2

      How is writing code for Android not up your alley? Or are phones not considered embedded systems?

      Having not done it myself, I can't say for sure, but I'd guess writing an app for Android isn't all that different from writing an app for Windows or MacOS; it's basically application programming, not embedded programming. Just because it's on a phone doesn't make it embedded, nowadays.

  7. Fair enough, if you need an urgent job done by Lemming+Mark · · Score: 5, Insightful

    If someone who's clever enough and can program is still a drag on productivity then it sounds like a problem of technical management in providing appropriate tasks, guidance and training. If you're in need of urgent productive programming (and / or you're a small start-up - *maybe*) then, yes, hire someone with substantial experience so you get returns quickly. Otherwise, it's your job to train them in stuff they might not know. Industry used to be responsible for training and educating workers appropriately beyond their academic career.

  8. New guys do not get senior pay. by Smoodo · · Score: 5, Insightful

    New guys do not get senior pay. People with experience usually command higher wages.
    You can get people out of school fairly priced to their abilities. That fair price can be significantly under what an accomplished senior engineer will make.

    The best question is, "Who are you fishing for and why?"

    Hopefully your company is willing to spend the coin for the experience implied by this article.
    If not, your company may see the time slow down as worth it. From an investment side, management must consider timing of future cashflows and likelihood they will arrive (risk). Slow and steady can win the race, despite how frustrating it can be to 'bring someone else up to speed.'

    1. Re:New guys do not get senior pay. by Antisyzygy · · Score: 2

      Too bad human beings do not have the level of foresight, let alone managers that get to party and drink beer all through college because their classes are so easy. That is why my generation has the most unemployed educated people for the last 80 years or so (maybe more). It sucks being racked up with student loans, then every job you want gets taken by someone that has experience, this leaving you unemployed and unable to even start you life.

      --
      That brings me to an interesting point, / . is just "the ramblings of socially-inept, technology-literate news-mongers".
  9. Re:'Don't interview anyone who hasn't accomplished by PhrostyMcByte · · Score: 2

    I think his whole point is that the barrier to entry is now so low that college and even high-school kids can easily have a number of high-quality apps out by the time they're ready to get a job.

    This is a good way of filtering out people who're book smart but not really motivated or enthusiastic about it.

  10. code sample by Weezul · · Score: 3, Insightful

    Isn't this old hat? Doesn't everyone ask for a code sample?

    I feel however that 'I did this, all by myself!' isn't the best metric.

    I'd rather hire the kid who's code sample consists of fixing 5 memory leaks in 5 different open source libraries. He'll write solid code.

    I'd rather not hire as a "coder" the kid who's website took him 40 hours in photoshop, several hours configuring Drupal, and another several hours writing a Drupal extension that should've taken him 20 min. He might be more artist than programmer.

    In fact, that's a pretty good interview tactic : Ask them in advance to find & fix a memory leak in some open source C library so they can explain it at the interview. Hint : Find a crap library with many leaks.

    --
    The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
    1. Re:code sample by Jeremi · · Score: 2

      I'd rather hire the kid who's code sample consists of fixing 5 memory leaks in 5 different open source libraries. He'll write solid code.

      I'm not sure I buy this. Debugging code and designing code are two different skill sets. Granted, you usually pick them up together, but it certainly be possible to be quite skilled at running valgrind and parsing its output, while at the same time having little or no idea of how to put together maintainable non-spaghetti code yourself.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
  11. Hungarian Notation by TheRaven64 · · Score: 5, Insightful

    Wow, a footnote devoted to a dig about Hungarian Notation, with a link to Wikipedia, and a display of complete ignorance of the subject. The Wikipedia article that he went to the trouble of linking to, while deriding the inventor of the notation, tells you that there are two forms, Apps Hungarian and Systems Hungarian, and no doubt goes on to tell you that the person that he is deriding invented Apps Hungarian. The point of this notation is to include units in variable names. For example, you might prefix a length with m or ft to indicate the units, or an index with row or col. It's then completely obvious that an expression like mHeight -= ftDistance is wrong. This is a very sensible convention and eliminates some very expensive yet simple to fix bugs. The author of the article calls it 'probably the dumbest widely-promulgated idea in the history of the field', which makes me quite glad that I don't work with him.

    He's probably thinking of Systems Hungarian, which is what happened when the systems group at Microsoft got ahold of the idea and started prefixing things with their types (language types, not semantic types), which is completely redundant information.

    --
    I am TheRaven on Soylent News
    1. Re:Hungarian Notation by TheRaven64 · · Score: 2

      Sun's Fortress language actually includes the concept of units. You can define the units of a variable, and define implicit conversions between units (e.g. from metres to feet), and have a hard error when there is no implicit conversion. You can do the same thing in C++ by subclassing integers and overloading cast operators, but it's a bit horrible.

      --
      I am TheRaven on Soylent News
  12. Talent is a difficult thing to measure by erroneus · · Score: 4, Insightful

    There are definitely some people out there who are annoyingly incapable and inept. Cert chasers and the like don't even realize they are what they are -- they were sold on the belief that if they attend and complete classes, that they will somehow have ability and knowledge. (I think I will take a class on weghtlifting and compete in Mr. Universe. or something...) Worse, I have never seen one of these people "become" a skilled and seasoned professional later on.

    Success invariably hinges on a person's ability to think, learn and understand in the ways needed for their profession to be effective. Those are things that are difficult, if not impossible to measure by someone who doesn't have an in-depth understanding of the materials themselves. And yet, all too often, the people who are in charge of hiring such people are the very people who are completely unqualified to make such assessments. (Of course, this idealism ignores that politics can get many people around the requirements of skills, knowledge and understanding.)

    Lack of shame is another problem that these unqualified employees display... or is lack of shame OUR perception? I know I would feel shame if I inserted myself into a situation where I was not qualified. But maybe that's just me and a bunch of other like-minded geeks here on slashdot. (Then again, when I insert my opinions here and someone with greater knowledge calls me an idiot, I don't often feel much shame... though some form of hate or anger results at times.)

    I guess what I am getting at is that no matter what level you or another are at, someone else will be better or worse. There's a great thing about humans, as it turns out, though -- we are good at teaching each other things -- from what I have learned recently, that seems to be the "one thing" that humans have that other animals don't -- and we have the capacity to build on knowledge from our predecessors. But this knowledge is important for growth -- people with academic backgrounds have their place. ("Relevance" of academic knowledge is another matter though.)

    I definitely identify with the problem and the solution(s) depends on the individuals with the problems. Sometimes "giving them enough rope" is the best answer. Other times, coaching them over their deficiencies is the best way. It's always a tough call.

    1. Re:Talent is a difficult thing to measure by starfishsystems · · Score: 2

      Your description is right on the mark for the particular pathology of the unskilled and unaware. I've had some additional correspondence with David Dunning about whether unawareness implies denial. His view is that while denial is certainly a possible adjunct, it's not strictly necessary for unawareness. Simple ineptness would also be sufficient. Your idea about lack of humility may be similar. That said, I think that anecdotally we can almost always find some aspects of denial and irresponsibility in any situation where a person actively promotes his competence in skilled areas where in fact he has no skill. These aspects are often well disguised, which leads me to believe that there is more than simple ineptness at play.

      I have a colleague who fits this description perfectly. He's not a bad guy, but very slow to act and incompetent when he does act. (The situation prevails because management is loathe to intervene. Never mind why. It's a subject for another discussion.) It's been interesting to watch the progress of my own adaptation to working with this guy. I've seen myself go through several different phases, including constructive engagement, didacticism, praise and criticism, exclusion, and ultimately, congenial amusement.

      Ethically, I feel that this progression was the right way to cope with the challenge of working with an incompetent colleague. I can recommend it. You have to give the person the benefit of the doubt, but not indefinitely. You have to be willing to encourage and educate, but not indefinitely. Work needs to be done. At a certain point, having exhausted all other alternatives, you have to give up. It's exceedingly important to proceed compassionately, and to keep management informed of these developments. To complete the story, I can report that ultimately, everyone is now bypassing this guy, and the awareness of the liability is slowly working its way up the chain of command. Most importantly, we didn't let our exasperation become toxic. We've tried our best, and nobody has been hurt. It's now up to management.

      My observation is that, sometimes, that's the very best you can do. Ordinary professionals are moving along a gradient of skill throughout their career. Of course, as you say, therefore we will find ourselves somewhere along that gradient with greater and lesser people around us. It's incumbent upon us to learn from each other and teach each other. However, I disagree that professional success is invariably about professional effectiveness. There is a lot of parasitic behavior in our species. Some people do very well being "unskilled and unaware", even though we correctly regard such behavior as pathological. A very different incumbency is upon us for coping with such people.

      --
      Parity: What to do when the weekend comes.
  13. Re:'Don't interview anyone who hasn't accomplished by TheRaven64 · · Score: 2

    The barrier to entry hasn't been particularly high for a long time. In the '80s, most computers came with developer tools. If you were interested in programming, you probably wrote a few little games or utilities, and you may have released some as shareware. You might even have kept the cheque from the one person who ever registered it...

    --
    I am TheRaven on Soylent News
  14. OK theodp, link YOUR portfolio by gatkinso · · Score: 2

    I, for one, would like to take a look.

    --
    I am very small, utmostly microscopic.
  15. Re:Move along, sexists writer. by MojoRilla · · Score: 3, Interesting

    No, I've managed and worked with many incompetent woman coders. I've also managed and worked with good women coders. They are just a much smaller percentage of the work force.

  16. Trouble Is, Most Programmers' Work Can't Be Shown by theodp · · Score: 4, Insightful

    Unfortunately, unlike an artist or musician or copywriter, most programmers' finest work isn't intended to be publicly shown, since it may be regarded as a trade secret. Which puts both employers and coders in a bad position. And while a personal website may be useful to demonstrate certain talent, it won't help showcase work in proprietary languages for which one may be seeking employment.

  17. Re:True story bro. by bongk · · Score: 2

    Probably not the case, but I could see as an interviewer asking this question not to see the interviewee's answer, but to see the interviewee's response to a conflict situation. Its actually a great and creative way to see how they'd react (do they get frustrated/angry, do they take a constructive approach to resolving the conflict, do they just accept it and not push back at all?) Great insight to get about someone during an interview.

  18. So arrogant! by ElusiveJoe · · Score: 2

    You heard that people can completely change their field of work throughout in life? It's like those music elitists saying "if you didn't start learning musical instruments at the age of four, you will never achieve anything". This is bullshit.

  19. Neither Windows nor Mac came with a compiler by tepples · · Score: 2

    In the '80s, most computers came with developer tools.

    And in the 1990s, they did not. Neither Windows nor classic Mac OS came with a compiler; one had to buy a copy of CodeWarrior or Turbo C++ or whatever they called it back then, often at inflated prices comparable to those of modern-day Microsoft Visual Studio Professional unless your school happened to be in a compiler publisher's academic discount program.

  20. silly by Charliemopps · · Score: 2

    When you take a new guy, immediately stick him on your most critical project and then start bitching about his code and re-writing what he does, what's really going on is you're being a bunch of drama queens. I'm not sure how groups of programmers got like this but I see it all the time and it's ridiculous. Management doesn't want to offend you by telling you you're acting like a bunch of stuck up bitches on your periods but that's exactly what you're doing. Knowing the syntax of the language you're coding in is not the only thing going on at work... knowing the ins and outs of the company is at least 1/2 the job and they're not going to know that sort of stuff for months. "OMG Pete is trying to hit the ODBC on the corp server on port 3412! What a rube!!" or "He pulled the employee table down from the exchange server instead of using the Emp_Agent table on oracle3!!!"

    Just because you and the rest of your hen house have been working together for 4 long years and have your little click doesn't mean you have to treat the new guy like shit. You were a retard once as well. Put him on non-critical projects for a while, let him figure out how YOU do things, figure out who are the right people to ask questions to so he can avoid the dickheads and after he proves himself let him work on the big stuff.

  21. Re:If not experience, then what? by stewbacca · · Score: 2

    What metric do you use to determine which candidates will make good junior developers?

    I like the "90-day-trial-period" metric, personally.

  22. Re:Hosting costs by vlm · · Score: 2

    developing websites and apps is basically free.

    For a web site, you need a domain and hosting. Firesheep has made HTTP obsolete for any site that takes contributions from its users, so now you need an SSL certificate. Internet Explorer on Windows XP doesn't support SNI, without which name-based virtual hosting for SSL sites is impossible, so you need an IPv4 address. Those aren't exactly free, especially now that IPv4 addresses have officially run out.

    As for an application, not all kinds of applications run on Android, and there isn't a single market that serves both AT&T phones and Archos tablets.

    Developing a website (that practically no one uses, and makes no profit) is basically free. Not sure if you need a SSL cert to not accept money from your users that don't exist. My domain plus XEN/KVM'd "shared dedicated host" for an entire decade is still cheaper than the fee for one single credit at the local university, and is far more educational.

    The flaw in your description, is if utter newbie applicant could make a large, successful, profit generating business with no cash investment, why would Mr. Utter Newbie apply for a menial entry level job? Mr. Utter Newbie should be selling his incoming generating platform to you for $1B, not selling 40/hrs/week of code monkey time.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  23. What is your proudest accomplishment... by i_ate_god · · Score: 5, Interesting

    ..as a programmer?

    That question is one of the best filtering questions around.

    --
    I'm god, but it's a bit of a drag really...
    1. Re:What is your proudest accomplishment... by urusan · · Score: 3, Insightful

      I think this is a good question, but I'm having a little bit of trouble answering it and I think this demonstrates a weakness of this particular question.

      I'm a relatively new programmer, just out of college working at my first job. I have several past programming accomplishments that I could choose from, but I'm sort of ashamed of all of them. Why? I've been getting better and better as time goes on, so when I look back at my past work I'm extremely critical. My previous work sucked compared to my present work. That's not to say my past work wasn't valuable, as I had to work on these previous projects to learn what I know now. Also, my past work isn't objectively bad (or so I've heard from others). However, when asked this question I sit there and think about it for several minutes and eventually it becomes "what am I least ashamed of?" rather than "what am I proudest of?". I'm also tempted to answer with something like "getting through school" (which I am actually proud of due to all the hard work I put into it, and I see as programmer related)...but I bet this is one of the worst possible answers to give a recruiter.

      I'm like an artist who has trouble putting together a portfolio because I want to sweep my entire learning process under the rug, but has little to no present work to stick in the portfolio. Even worse, anything I do now will probably end up being heavily criticized by my future self, putting me back in the same boat. I think it is likely that many skilled programmers that are just getting started have this issue, as programming is a creative endeavor and I see this all the time in other creative endeavors. It's sort of the inverse of the Dunning–Kruger effect...whereas the incompetent can't tell how awful their work is, the competent see all the itty-bitty problems in their work in gruesome detail. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect

      The weakness of this question is that it is not orthogonal. It is testing for skill, self-confidence, and a lack of perfectionism all at once. Unfortunately, slightly low self-confidence and a high degree of perfectionism can be positive attributes in a worker (as long as these attributes aren't so extreme as to be crippling). Too high a degree of self-confidence can lead to interpersonal conflict...or can lead to the situation where the person wastes a ton of time trying to do something themselves when it could have been easily resolved by talking to someone else. A degree of perfectionism prevents sloppy work being passed off as sufficient and leads to a constant drive for improvement (though of course it can also lead to irrational decisions about putting effort into something long after the law of diminishing returns kicks in).

      It's still a good question, but you need to make sure that you account for people who would deal with this problem poorly precisely because they are skilled, otherwise you might let a gem slip through your hands.

    2. Re:What is your proudest accomplishment... by wrook · · Score: 2

      As someone who used to hire people, I think you're best off pretty much saying what you just said. "I'm not really satisfied with what I've done so far. I still have a lot to learn and I've made good progress, but I think the best is yet to come." A good interviewer will follow up with a question like, "Please talk about a time when you noticed a problem with your coding and found a better way to do it".

      Sometimes a group is looking to hire a "star programmer" right out of university. If you are feeling at all unsure about your abilities, you probably aren't going to handle the alpha-dog mentality that such a group will likely have. When I was right out of university, I was a "hotshot asshole programmer". I worked on a "hotshot asshole team". We were brutal with each other, but we had egos the size of Mount Everest. It was fine and in some respects you can learn quickly that way. Later I managed to shed the ego (mostly) and learn from other people.

      I don't get that from you. You're going to work well on a team that wants to develop you. It's a much harder fit, but potentially you can grow faster. You're ability to accept your current position is your strength. But it will only manifest itself as a strength on the right team. Remember that *you* are filtering too. Find the right employer for you.

  24. Re:'Don't interview anyone who hasn't accomplished by TapeCutter · · Score: 5, Insightful

    If you want to get a job programming, but have never written any software that you've published, then you are probably not worth hiring

    This is just plain crap, I've been programming for almost 30yrs, proffesionally for the last 20. I don't have any published code to show anyone at an interview, and never have. The stuff I write in my own time is mainly so I can learn something new, once I have the gist of it I usually throw the code away. I've also interviewed ~100 programmers over the years and if you can't tell if someone knows their stuff just by talking to them for 5-10min, then I suggest you don't know yours.

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  25. The Real Problem: Degrees Without Side-Work by zoomba · · Score: 4, Insightful

    I think a lot of comments are lashing out at the "Don't Hire Inexperienced Developers" concept without really thinking about what's being said in the rest of the article.

    What the author is really saying is "Don't hire developers fresh out of school who have nothing to show for themselves except coursework."

    Why is this so important? It's important because it shows two things:
    1) The developer only has theoretical, academic knowledge of programming
    2) The developer isn't passionate about developing.

    The first is a huge problem for any company hiring said developer. I don't know a single instance where what I have encountered in the working world matched closely at all to how my textbooks or professors told me things "should be". The mental shift required between school and work is large and can be very difficult to overcome for many.

    The second point is a critical thing to consider especially if you're a small company or a startup. A-level developers and other IT folks are passionate about what they do. They have side projects. They have little tools and such that they create to help solve whatever task they're focusing on at the moment. Coming out of school with absolutely nothing beyond class assignments is a strong indicator that the developer is only interested in the bare-minimum requirements to get by. That's not to say they're not talented, just that they're looking for a 9-5 job where they're in at 9:00 and out at 5:00 and aren't interested in going the extra mile. These guys are terrific coders for large companies where there's a lot of maintenance type work to be done. They're productivity vampires though for small companies that need every member of the team to be highly efficient and high producing.

    The article points out how easy it is to have side projects. To turn out a little app on a website or on a mobile platform that you can point back to and say "I did this."

    To those who argue that there's just no time in a 4 year degree to do side projects like that... Where the hell did you go to school? Did you have a full-time 40hr/wk job totally outside of CS/IT during the same period that left you with only enough time outside of class to sleep? If MIT students can get through in 4 years and manage massively complex pranks, contribute to OSS projects and still graduate with high grades, what's everyone elses excuse?

    1. Re:The Real Problem: Degrees Without Side-Work by zoomba · · Score: 4, Insightful

      It's not about success or failure of the app that's important really, it's the fact that it exists that tells people something.

      Fact is, everyone fails. A lot. In fact, I am more leery of hiring someone who has never failed over someone who has. That first crash is the hardest, and the later it comes the more disastrous to the person it can be. You learn more from failing than from succeeding etc.

      It's about saying "I did this!" It doesn't have to sell a single unit. The existence of the thing shows effort, initiative, and experience outside of the classroom.

    2. Re:The Real Problem: Degrees Without Side-Work by zoomba · · Score: 2

      *sigh* As I've pointed out in follow-up comments, it's not about working beyond 40 hours. It's a bare minimum mentality that is possibly hinted at by a college grad who did nothing beyond their coursework. It's the unwillingness to extend themselves beyond what is absolutely required. Getting through college with just a set of grades but no personal projects, no extracurriculars, no volunteer work, nothing beyond the paper is a potential red flag that the person might not be interested in going above and beyond.

      The most effective, amazing developer I know gets his shit done in 40 hours a week. But sometimes when things go off the rails, he puts in the extra hours needed to get everything back on track. When the need arises, he puts in the extra work. My issue isn't with effective 40hr/wk developers, my issue is with any worker who hits 40 hours and won't go an inch beyond. Getting to 22/23/24 (or whenever you graduate) as a programmer then going out into the world to find work, and not having anything except classwork to talk about, does not show well.

    3. Re:The Real Problem: Degrees Without Side-Work by zoomba · · Score: 2

      Yes, there's a point of diminishing returns. Absolutely. I hit that wall myself many times in college.

      And yes, course loads can get down-right evil. And commuting time can be a killer for some.

      I'll gladly concede that your second year left you no free time. But what about 1,3 and 4? Summer terms? While you obviously had far less free time than most, are you saying you had 80+ hour weeks every week for four solid years?

      I may appear to a bit dismissive to time concerns, but I've always been leery of people who claim they have no time. I heard that a lot in college from folks who were out partying every night and most weekends. Who made trips home every other week, and spent entire summers on vacation. I hear "I have no time" and it immediately translates in my head to "I'd rather be doing something other than X."

      Personally, I squandered many opportunities for personal projects in college. But it wasn't because I didn't have the time to do them, it was because I wanted to do something else more (sleeping, drinking, dating, playing Frisbee etc.). Most people aren't honest with themselves over the difference between "time" and "priorities"

    4. Re:The Real Problem: Degrees Without Side-Work by pavera · · Score: 2

      As a developer who got my first job (and many subsequent ones) based on the strength of my side projects, I have to completely disagree with this mentality. If you're a good developer, you can build good side projects in very few hours. Sure when you first start one, it might consume a few weekends, or mean some late nights, but in general the side projects I take on are in the range of 1-2 weeks of crazy work, and then maybe "Oh it would be nice if it did X, I'll spend 2 hours next week adding that feature".

      It goes back to people claiming a CS degree is a 100% endeavor. While I was in school, most assignments took me a couple hours, and I was generally given 1-2 weeks to complete them. There were some assignments that were more difficult and took 100% effort for the length of the assignment, but only a few. I had plenty of time to build side projects, start a small company with a couple other students, build some custom business apps for clients. during this time I had a life, met my wife, dated her, skied regularly, golfed regularly, travelled some, went to concerts, in short had a life. Today, I still have side projects, I work 40 hour weeks most of the time, sometimes I'll put in extra hours at work when its necessary, and yes, some weeks I'll work 70 hours because I'll have an itch, and decide its time to build something... then 2 or 3 weeks later the itch is scratched, and there is something built that solves at least a small problem, then its back to 40-50 hour weeks like normal, and maybe I spend a couple hours a week for another 2-3 weeks adding a few features, or cleaning up the side project... but it doesn't become a full time job.

  26. Hiring someone straight out of college is OK ... by perpenso · · Score: 2

    Hiring someone straight out of college is OK. Doing so does not necessarily violate the "accomplished something" rule. When I interview recent grads I always as about their personal projects, things unrelated to work or class assignments. I sometimes have to pry info out from them. They are embarrassed by how trivial the projects look and think they are not worth mentioning. They don't understand that I am not really interested in how involved the project was, rather I am looking for any kind of project they did on their own to satisfy a personal need or curiosity or just to have fun. The mere fact that they got something working for their own amusement, curiosity or need indicates they are part of the minority who went into programming because they have a genuine interest in the field rather than part of the majority who went into programming because someone told them it was a good career path.

    Regarding the value of college itself. I certainly agree that someone can be self taught, however the person that will on their own read university level computer science material across a broad range of topics is exceedingly rare. Additionally, completing a degree demonstrates that a person has the temperament to finish what they start, even if it is a long boring bureaucratic process. When a project is long and has unglamorous components such a temperament is valuable.

  27. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  28. Re:let me know how that works out by stewbacca · · Score: 2

    I'm guessing your lack of capitalization and punctuation skills were involved.

  29. Mistake not to mention personal project ... by perpenso · · Score: 2, Interesting

    I did write lot of stuff for my enjoyment. still, the assembly bump mapping demo doesn't really seems to me a good thing ti show off. also, it doesn't run on windows. or linux, for that matter.

    You are very mistaken. When interviewing recent grads I explicitly look for things people have written for their own curiosity or amusement. To me that separates those who have a genuine interest in programming from those who only look at it as a good career path. Your mistake is common, I often have to dig these projects out of interviewees. When hired they were shocked to learn they were preferred over a 4.0 student who never wrote anything except for class assignments. FWIW, my year+ project staffed with such individuals was delivered on time with only a few weeks of "crunch time". The product (molecular modeling and visualization) received good reviews and few bugs were discovered when it got into the hands of customers.

  30. Rethink reluctance to show hobby projects by perpenso · · Score: 2

    i do enjoy coding a lot, as in i cant think of anything i'd rather do for a living. But in my free time, i can think of thousands of things i'd rather spend my time on, so i hardly have any hobby-projects, certainly nothing that i would use to show off at a job interview.

    Please rethink this reluctance, see http://developers.slashdot.org/comments.pl?sid=2134962&cid=36063020.

    1. Re:Rethink reluctance to show hobby projects by perpenso · · Score: 2

      you do have a good point, and i do not hesitate to tell people at an interview that i sometimes code as a hobby, but i hardly think my hobbyed up ray-casting engine, or asteroid clone show off my strong points as a coder, they were fun to do, but not exactly my best quality work.

      I understand, I am guilty in that respect too. Personally I just have the interviewee describe their personal projects, I don't ask to see the code. I think a back and forth chat about how things were implemented/coded is more revealing than reading the code. The only code I look at is code written as part of the interview process.

      I realize others may do things quite differently but then again an interview process should be a two way street. How the company conducts the interview and what they consider important may indicate whether or not that may be a good place to work.

  31. testing the wrong skill set by jbolden · · Score: 2

    The "show me something you wrote independently" tests for:

    a) Experience working on your own thing in isolation and a desire to do so.
    b) A genuine love of programming, seeing it as trying to get a job in your passion.
    c) The ability to use easy tools fluidly.

    Now those are good characteristics for a start-up which is who the article is written for. But all of those are negatives in many enterprise jobs.

    Isolated opinionated programmers are a definite determent in enterprises quite often. You want enthusiasm but not passion in most workplaces. You often don't want to test for easy tools, but the ability to use hard tools. Complex applications are orders of magnitude more confusing than simple android applets.

    And finally the Microsoft brain teaser type problems are basically a computer IQ test. They are testing for:
    i) Do you know basic computer science
    ii) Are you smart.

    You can fix skills deficits in employees. Generally you can't fix (i) or (ii), though with younger programers you can sometimes fix (i). You will fight those problems everyday forever. Quite often in programming you can construct two algorithms to solve a problem with times like: n^2 + 25n + 100, 1000n + 20000. If you hire the Android guy you often get the n^2 solution since it works so much better on test data sets.
     

    1. Re:testing the wrong skill set by OrangeTide · · Score: 2

      I almost always go for n^2 solutions. They are usually the fasted to implement and usually use less memory, and when I only have to scale to n=100 or so, it's not really a big deal. In kernel land we take these short cuts all the time. I'd rather spend my time optimizing something to be O(n) or O(1) when n is huge.

      --
      “Common sense is not so common.” — Voltaire
    2. Re:testing the wrong skill set by jbolden · · Score: 2

      I agree its not a big deal for n=100, that's why I mentioned test data sets. On the other hand n=10m is not uncommon in business programming. My working definition of "system's programming" is "when the constant term matters".

  32. Re:'Don't interview anyone who hasn't accomplished by cyber-vandal · · Score: 2

    Thank you for saying what I was thinking. Just because you don't feel like developing some shit app in your free time doesn't mean you're not a great developer in work time. If I was interviewing I would have to wonder what kind of well-rounded person would spend all their free time doing the same stuff they do at work and would worry that they lacked the requisite social skills to work in a team.

  33. Re:'Don't interview anyone who hasn't accomplished by jeep16 · · Score: 2

    I have to agree. In my 20+ years of engineering for a small company I wrote a lot of code, but none of it is mine to share.
    Also to those suggesting open source - beware - I recently applied for a job and the application asked if you had done anything to disqualify you from working for them - eg: open source or personal software development! (I believe their concern has something to do with their intellectual property policy.)

  34. Re:Good metric for junior developer by perpenso · · Score: 3, Insightful

    Those who have written something for their own amusement or curiosity, something not part of work or a class assignment.

    Are interviewees permitted to bring in their own laptop computers on which to demonstrate "something [written] for their own amusement or curiosity"?

    For me, no. I don't want to see the code. I want to have a conversation about the code. How were things implemented, what problems came up, anything particularly cool about the implementation, what was fun, what was not fun? I think the conversation is more revealing, code can be someone else's. Or if written purely for your own amusement it might be crudely slapped together and not truly representative of a person's professional efforts.

  35. Elitist self-serving fluff piece by a nondeveloper by Ironpoint · · Score: 2

    These articles are popping up at a rate of one per week now. Usually, the author is trying to portray themselves as an expert in the field of software development by relentlessly bashing a strawman army. For instance this guy, John Evans, is complaining about developers, but it appears he is an author trying to do some self promotion.

    Before someone starts attacking nameless developers, perhaps they should list their own qualifications. The author is trying to write a controversial piece to drive traffic. He writes "Certificates and degrees are not accomplishments" which is clearly meant to insult 99% of professional developers, 1/3 of whom have advanced degrees. Fellow bloggers need to start demanding credentials whenever one of these articles shows up from someone clearly not working in software. And by working in software, the gold standard is being paid by someone else to produce code over many years.

  36. Re:Watch more MBAs by St.Creed · · Score: 2

    Actually, in The Netherlands more and more IT-professionals with enough experience to make it work, become freelancer. Better pay, more control over your own life, but also a few downsides ofcourse (if you don't like uncertainty, acquisition, talking to people or doing bookkeeping, it's not for you). The thing that makes this possible is comprehensive and general health care + insurance that doesn't discriminate between normal and self-employed people (which is the major inhibitor in the US, as far as I've understood).

    So what is left for bigger companies are NOT the people with experience, but (a) the juniors and (b) the experienced people who can't be bothered to do bookkeeping or acquisition and (c) people who can't compete. Trying to hire experienced and good developers in NL right now is almost futile - they just aren't there. So a company that won't hire juniors will eventually run up the wall OR has to increase its wages a lot.

    --
    Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
  37. Re:Necessity of SSL by Cederic · · Score: 2

    There's a very big difference between 'user accounts' and 'static web pages'.

    CGI scripts don't need user accounts.
    Sessionless web games don't need user accounts.
    Loan repayment calculators don't need user accounts.
    Data transformation services don't need user accounts.

    But hey, I'm biased, I went for my first job interview with evidence of the MORPG I'd helped write and was helping admin. Which was hosted on its own Sun box, in 1994, despite not charging to play, not advertising, not relying on patronage.

    Maybe things are different these days, but please, don't pretend you can't write a web application without needing user accounts and/or SSL. It makes you look silly.

  38. It's hard to see work by Animats · · Score: 3, Interesting

    I once ran an employment ad "Send us a thousand lines of C++ that you're proud of". Very few people submitted code. Lots of excuses, though. What I was looking for in code, incidentally, was proper paranoia. This was an embedded project for a large machine, and I wanted to see conservative code that would clearly not do bad things. I actually sent one application back with "Your application has been received. Your first buffer overflow is on line 22. Thank you for your interest."

    I once encountered an applicant who claimed to be an experienced C++ programmer, and sounded convincing. I sat him down at a computer, demonstrated how to type in, edit, and compile "Hello World" in that environment, and asked him to code something. Anything. He got stuck at "int main...".

  39. Delete "New Guy" by npsimons · · Score: 3, Insightful

    Replace "New Guy" with "applicant" ("experienced" or otherwise) in the title and you will basically have something that tech company interviewers have been noticing for a while:

    Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can't write code at all. I repeat: they can't write any code whatsoever.

    The article is good reading, and links to the even more controversial supposition: a large percentage of people *cannot* be taught to program. Highly recommended reading; both of those links would make for good slashdot fodder, if they haven't been posted already.

  40. Ask them to code in the interview by Sarusa · · Score: 2

    Although hardly anyone seems to do it because they think an interview is all about schmoozing, there's no excuse for not asking the interviewee to code in the interview.

    It doesn't have to be anything fancy. Even a bubble sort or sorted list insertion is sufficient to weed out most of the candidates. You'd be amazed at how fast the guy who talks a good talk crumbles when you just ask him to write a simple for loop on the spot. You're a c++ 'expert' and you can't even write a for statement, much less get the logic correct? If you can whip out the STL version, fair enough.

    Now if s/he tells me 'I wouldn't use a bubble sort here, I'd just call qsort()' that's also a good sign. Okay, here's the qsort() parms in case you've forgotten them (very easy to do) - write me the sort with the attendant comparison function. Now give me some code to print the sorted array (we'll make them write a for loop one way or another). Now, why might you actually use a bubble sort instead of a qsort? There are higher level concerns, but at least the covers the 'can you code?' bit.

  41. Apprentice? by Haxx · · Score: 4, Informative

    Apprenticeship is dead. How dare someone with a degree and a few certs look for a job.

  42. The new "White men can't jump" by Provocateur · · Score: 2

    Tap onto his other skills then. If he can read code, so much the better. "Listen, we need a guy to jump right in and document all that we've been working on here. I'm glad you came in when you did. You can hit the ground running compared to the last guy." It sort of puts him in his place for acing all the questions, with a dash of tact thrown in for good measure. What he does next determines his future in your company.

    1-OMG Sure! I'll get right on it! (He sees it for what it really is, and is eager to thank the gods on this twist of fate. This would make him ideal to face or work with users or deal with customers)
    2-He flounders and stalls (Watch him dig into this hole and sweat his way out; gets you off the hook because he will wind up over comitting himself, albeit at great risk to the project.) Give him a quick test like, would you be able to code a DVD player app with what we have. (just an example, could be something that ought to take a page of code or so.) You'd then be forcing his hand to make some sort of admission
    3-He might use it as an out e.g. I've found another opportunity someplace else and I'm taking it.
    4-You find out he's armed. Just kidding, to see if you were reading through this.

    But you get the point.

    --
    WARNING: Smartphones have side effects--most of them undocumented.
  43. Design over coding by GLOACAI · · Score: 2

    In the interviews I've performed I've only been interested in coding experience as a demonstration that they can pick up other languages as needed for a project (yay for having 10+ languages floating around at my work site that i'm aware of). What I more drill them down on are design decisions. In given a problem why do they pick one language, algorithm, or architecture and why they made the decision? Most of the experienced programmers we've turned away we're talking about their major code upgrade projects were to switch to a modern language but couldn't provide a better reason to make the switch than the old language was out of date. DON'T go to an interpretive language for a near real time application if the supporting architecture isn't going to support the added overhead.

  44. Re:Watch more MBAs by CodeBuster · · Score: 2

    You probably wouldn't know this, being from the Netherlands, but here in the United States it's not just the health insurance that makes freelance software development difficult, but rather a little known section of the US Federal Tax Code: Section 1706 of the Tax Reform Act of 1986. This law, which was originally supposed to curb certain tax practices at IBM, has had the unfortunate side effect of making it practically impossible to work as a professional individual independent software developer here in the United States. Basically, unless you form a company with at least three developers, where you are all employees of this company, and then do contracts with other companies through your company; the Internal Revenue Service (the tax collector here in the US) could go after your clients by saying that you were actually their employee and not an independent contractor (i.e. they owe the IRS payroll taxes, social security, medicare and the like). This is why almost every professional software developer here in the United States is an employee of a company and not an independent. Just one more small example of how stupid US tax policies make US companies and workers less competitive. BTW: This section of the law was originally written by a liberal New York Democrat, Daniel Patrick Moynihan, who wielded it as a blunt instrument to offset changes to the tax code involving Americans working abroad. So lawyers and doctors can be independents here in the United States, but not software developers or IT professionals. It's fucking stupid really, but that is what I've come to expect from the American left; when it comes to fixing or growing the US economy, they've all got rocks in their heads.