Slashdot Mirror


Getting Hired As an Entry-Level Programmer?

An anonymous reader writes "I received a state university degree in Computer Science. After graduation, I immediately took jobs in QA to pay the bills while waiting for other opportunities, which of course turned out to be as naive as it sounds. I've been working QA for several years now and my resume does not show the right kind of work experience for programming. On the whole I'm probably no better as a a candidate than a CS graduate fresh out of college. But all of the job postings out in the real world are looking for people with 2-5 years of programming work experience. How do you build up those first 2 years of experience? What kinds of companies hire programmers with no prior experience?"

17 of 540 comments (clear)

  1. You should have asked this a year before. by Lord+Kano · · Score: 5, Informative

    Internships are the way to go. A nice internship will give you some job experience. If you've been thinking about going back for your Master's degree, do that. And get an internship.

    LK

    --
    "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
    1. Re:You should have asked this a year before. by Ethanol-fueled · · Score: 5, Informative

      First, try to move up in your current job while your foot's in the door. Make your ambition known to your co-workers and elbow into other aspects of the job with the blessing of the other departments - this could be something simple like reviewing code on your own time and then offering friendly suggestions at work - but don't step on others' toes and don't come off as a prima donna unless you're VERY good at what you want to do.

      Do not ask your boss up front because s/he may be naive and order you not to try anything else(in which case you look for another job). After you schmooze around a bit while keeping your standard affairs in order, approach your supervisor(preferably with "attaboys" and testimonials from other department heads) and tell him/her you want to move up, then you provide evidence of your qualification. They LOVE to see how much money you can save them. If they're skeptical then offer to negotiate(i.e. work half of your day in QA, half in development or alternately ask for a 1-month "contract" to work for another department for the chance to prove your mettle). If the PHB says no and dosent offer you a raise to stay(heh, you may be so valuable in QA that they wouldnt move you no matter what your skills are) then look for another job.

      If you interview for another job then emphasize the reason why you're leaving - you're capable of more, tell 'em why, and you want to move up. Stress that you have the skillsets to be capable of learning what you do not know. Ambition looks good and even though QA isnt the greatest job, it shows that you're stable and humble enough to stick to a shit job as long as it pays the bills.

      Best of luck.

    2. Re:You should have asked this a year before. by Anonymous Coward · · Score: 5, Funny

      A good QA developer is just as necessary as a good developer. We all like writing original code, and it takes a special kind of person to write smoke tests, et al, for someone else's code. At my previous job, our product's QA department was just as important as our development department to get the monthly releases out on time.

      Top flight developers producing quality code don't need large QA departments. They've already written well-designed, bug-resistent code, unit tests, integration tests, and performance tests, all in the course of producing something that works (the first time).

      If you have to pay a phalanx of QA engineers to find bugs post-facto ("just as important as our development department"), you're doing it wrong. The bugs shouldn't have been there to begin with.

    3. Re:You should have asked this a year before. by Anonymous Coward · · Score: 5, Insightful

      Top flight developers producing quality code don't need large QA departments. They've already written well-designed, bug-resistent code, unit tests, integration tests, and performance tests, all in the course of producing something that works (the first time).

      This is one of the funniest things I have ever read. You're not being serious, right?

    4. Re:You should have asked this a year before. by wild_fire1979 · · Score: 5, Interesting

      Top flight developers producing quality code don't need large QA departments. They've already written well-designed, bug-resistent code, unit tests, integration tests, and performance tests, all in the course of producing something that works (the first time).

      If you have to pay a phalanx of QA engineers to find bugs post-facto ("just as important as our development department"), you're doing it wrong. The bugs shouldn't have been there to begin with.

      I assure you that I work with some of the best devs that are in the market right now. They are really good, but when you have to deal with millions of lines of code across a extremely complex system, bugs happen!!! :) Unit testing, code coverage tools, continuous build systems can just mitigate the effect not eliminate bugs. Even QAs just make sure that the quality is within acceptable parameters they can't eliminate them completely.

    5. Re:You should have asked this a year before. by weicco · · Score: 5, Insightful

      First, try to move up in your current job while your foot's in the door.

      Three years is the limit. If after three years you haven't managed to get raise or promotion apply for another job. Especially if your professional expertise is falling behind or soon you won't be able to get a job at all...

      Now if you manage to get a better job with better salary ... well, that's great for you! But remember that expectations rise and you need to show that you are worth it. It can be stressful compared to your old job.

      But if you can't get another job then there's some serious consideration to do. Maybe you are not that great worker after all?

      --
      You don't know what you don't know.
    6. Re:You should have asked this a year before. by Cynonamous+Anoward · · Score: 5, Interesting

      Are you a professor? or do you work in theoretical software practices? Have you EVER worked on commercial software? I work for a certain media co., on a certain well known video player. There are so many things that simply cannot be tested except by a human. Management is always begging QA and engineering to try and come up with ways to automate testing of these things, but no one ever gets anywhere.

      How can code analysis ever verify:

      * YUV->RGB color conversion (there isn't even a single right answer to this, it's subjective)

      * A/V Sync

      * Audio language selection (how do you write code to tell if the guy is speaking in french as opposed to spanish?)

      * GUI Widget alignment

      * Subtitle Placement

      The list goes on and on. Some of these things do have unit tests, but bugs pop up anyway, bugs which never could have been caught by any unit test. Some parts of our code lend themselves to unit tests (file parsers) and those sections are heavily tested. Other sections simply don't offer the opportunity for analyzing the results via code. All-in-all, a major update to the player can require over two months of QA by a team of 8 testers. This is in addition to the thorough unit tests you claim _should_ take care of all that.

      --
      "The GPL is viral by design, like any good religion."
    7. Re:You should have asked this a year before. by twoallbeefpatties · · Score: 5, Insightful

      And it's worth noting that many internships can turn permanent once you get out of school. "Oh, so, your internship is over. It's been nice having you. Hey, Steve, could you go put a new posting up for an intern on the website. Oh, by the way, also put up a listing for that second-rank programmer that needs a year's experience and preferably knows something about the kind of systems we use. Gee, where are we gonna find someone like that-- Oh, hey!"

      --
      Libertarians somehow believe that private businesses should be stronger than governments but weaker than individuals.
    8. Re:You should have asked this a year before. by Anonymous Coward · · Score: 5, Insightful

      I've been a QA person in the past and now I do some amount of development in addition to some research work, so I have some idea of what you're facing.

      My suggestions:

      Find a sympathetic programmer that writes code that you are testing for. Ask him/her to show you how to set up a development and debugging environment that you can test against.

      In particular, if you discover an intermittent bug, then find out how to set up a debug version of the environment to trap the bug as it is occurring. (That saves the programmer a lot of time trying to reproduce the bug.) Learning an IDE and/or how to debug and/or how to use a source code control system is a big step.

      Also, approach somebody about writing test code against the production code, i.e. "unit tests", "white box" testing. That helps you learn the API.

      Try to sit in on "Code Reviews" if your group does such things.

      Start reading as much source code as you can. You learn a lot from reading other people's code. In addition, you can sometimes spot errors in the source. The sooner a bug is found and fixed, the better off you are.

      Once you can start suggesting fixes to the errors you find, then you've demonstrated that you have developer skills in addition to being a good QA person. That combination is great, because you could become a developer who makes fewer mistakes than average.

      Doing all this shows initiative which is also a big plus.

  2. Repeat by HornWumpus · · Score: 5, Informative
    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    1. Re:Repeat by mooingyak · · Score: 5, Insightful

      There's a world of difference between a guy who's been doing help desk and a guy who's been doing QA. The responses to these two questions aren't going to be the same.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
  3. Contact your Universities Placement office by dubious_1 · · Score: 5, Informative

    Even though you have graduated, most Universities will help you find a job if you graduated from there. The jobs for entry level ( new graduate ) positions are not typically going to be posted on Monster, Hot Jobs, etc. since we look for those people at University Job fairs.
    I have been to many of these as a prospective employer, and there are always several Alumni who are there looking.

  4. Start coding by robogymnast · · Score: 5, Insightful
    Build up a small portfolio by contributing to an open-source project, or start your own, or code that cool project that you have been thinking about in your head from time to time. Do whatever you have to do to start writing some actual working code.

    Don't undervalue your QA experience either. QA experience means that you know how to test and debug, which is a rather large percentage of development. If you don't meet the requirements exactly, apply anyway, or look for jobs that mix QA and development, but make it clear that you want to move into a development role as soon as you are ready. Good luck!

    --
    unzip ; strip ; touch ; grep ; find ; finger ; mount ; fsck ; more ; yes ; fsck ; umount ; sleep
  5. Demonstrate competence by jmorris42 · · Score: 5, Insightful

    Unless you had a very good program in school, odds are you haven't actually written many real world programs. The stuff in school usually isn't finished programs, just enough to demonstrate the concepts being discussed.

    So join an open source project and do some real world programming. Learn how to finish the job, catch those return codes, use a version control system, track down bugs in non-trivial programs, work on getting the documentation to actually match the program, etc. Learn how to work in a real team. Be a big enough contributer that you can rightfully claim to be a major contributer so when a prospective employer follows up by looking at the credits, commit logs and mailing list traffic you aren't seen as inflating the record.

    --
    Democrat delenda est
  6. Three ways by jwhitener · · Score: 5, Informative

    There are 3 ways to get that first job:

    1. Know someone in the company
    2. Gain experience through personal projects and showcase it.
    3. Be extremely charismatic and up to date on the job's focus areas and especially the companies specific mission.

    Right out of college, with a degree in Anthropology, my first job was as a system analyst for a health care corporation.

    For years I had tinkered with computers, and kept somewhat up to date on modern programming techniques, enterprise systems, and had created several little programs that resided on public servers that I could show off.

    The interview was successful because I:
    A) Knew exactly what they wanted for that position.
    B) Researched the relevant "buzzwords" and lingo beforehand.
    C) Was generally easy going and relaxed.

    Despite having no formal education in computer science or programming, my obvious research into their business and corporate culture (thank you anthropology!) really showed well during the first encounter.

    People with technical skills are a dime a dozen (unless you are striving to get into some very abstract programming job), and usually, a hardworking, motivated person should be able to convince a interviewer that they are up for the challenge.

    Basically, apply for the job in front of you, do not apply for "a programming job". If you treat the job as something unique, do a little research on the company and their culture, and can "seem to be one of them", you are in.

  7. How I did it (MFA to Tech Support to Programming) by h4ter · · Score: 5, Informative

    I got a non-technical post-graduate degree and now I'm a programmer. Only took a couple of years to get my first programming job. Here's how I did it.

    First of all, I did as much programming as I could at my tech support jobs. Not all of it was company sponsored, but if I figured out something I could write that would help *me* do my job I would write it. I wrote all kinds of little things, and then I was able to truthfully add to my resume that I developed software.

    I was also going to user group meetings for the language I was using most and meeting people there. I ended up getting my first job (and all subsequent jobs, actually) through people I met at those meetings. At least for the language, city, and time I happened to be in, the meetings were filled with people who knew about more work than they could take. And the recommendations you can get there are worth "2-5 years of experience" on a resume.

    I'm currently helping my company's QA guy get some programming tasks so he can make the switch and give his job to some other poor CS grad. Is there anyone on the development team where you are that might help you out?

    There's one more option: recruiters. I know they're not great, and the jobs you get through them aren't all perfect, but there are some recruiters who can help you market yourself without the exact "2-5 years of experience" someone's looking for.

    One last thing: If you're any good at all you'll be way ahead of most people in this field. If you can get an interview, showing your abilities and desire to learn can be enough.

    Good luck.

  8. The right attitude. by Lafe · · Score: 5, Insightful

    I hire programmers.

    I hire entry-level programmers. For what it's worth, the last couple I've hired have been from India.

    I look for a couple of things when I'm hiring entry-level. The first is experience. I'm not talking about professional experience, you won't have any of that yet. But what have you done? Have you done an internship? What have you done in your spare time? What have you done on your own? Can you demonstrate useful skills? Can you debug a program?

    The first thing I'm going to throw you into if I do hire you is maintenance. Find a bug, fix a bug.

    It's about attitude. Technical competency will be low at your level... but do you know how to find out what you don't know? Do you know how to research a problem? Do you know how to find an answer off the internet? Do you know how long to work on a problem on your own, and when to ask for help? When I show you how a certain thing is done, can you watch me once, and then pick it up?

    Most programmers are bad at interviews. Most stink at writing resumes. So it's mostly going to be about other things. If you can make friends in the right circles. If you can get a recommendation from someone I've heard of. If you can show me that you have hunger and drive to get ahead... then I'll hire you in a heartbeat.

    I'll keep you on if you don't mess around, but dig deep into the problems you're given. I'll be delighted if you bug me for answers when you need them. I will gladly explain concepts if you'll gladly listen and run with what you've been taught.

    I only get so many openings per year. I've turned down folks for the wrong attitude most of all. I've turned down folks with professional experience if they kept a narrow focus and never ventured out of their comfort zones. I've passed on people who believe that programming is something like FrontPage, and that they shouldn't have to work hard, or understand much, to make a cool application.

    I guess, mostly, I look for people who would be programming something even if they weren't getting paid.

    Is that you?