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?"

18 of 540 comments (clear)

  1. Get involved in an Open Source project by Nefarious+Wheel · · Score: 4, Insightful

    Get stuck into an Open Source project, find out how it works, dive deep. If it turns out you can make a contribution that has even reasonably broad acceptance, that will add to your credibility as a programmer. At worst, you'll be keeping up your currency in at least one field.

    --
    Do not mock my vision of impractical footwear
  2. 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
  3. 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
  4. Write test code by Smallpond · · Score: 4, Insightful

    The natural step from doing QA is writing the tests for QA: specs, scripting, network, database, there can be a lot involved.

  5. Is programming really for you? by xquark · · Score: 4, Insightful

    Ask yourself this, do you really want to be a programmer?

    Many people think its the "it thing" in IT, and that being a programmer and eventually an architect is the pinnacle of their career.

    The truth is most people will not make good programmers, they wont end-up enjoying what they do, and something as mentally straining and intensive as programming requires you to continually have a good/positive mindset to be productive and to churn out top notch solutions.

    I suppose this is the same for all types of careers - is it really for you?

    That said most people will undoubtedly tell you to do some open source, start some of your own projects.
    I have another suggestion, take your QA role, and ask yourself this: what tasks that you're doing now can be further automated, is there an area where something can be solved with a program?

    If you can find that area(s), and build the program(s) to solve those problem(s), then you're probably a good fit for programming, if you're the kind of person that needs someone to tell them any one of those things, then perhaps its not for you...

    --
    Arash Partow's Philosophy: Be a person who knows what they don't know, and not a person who doesn't know.
  6. Re:You should have asked this a year before. by plover · · Score: 4, Insightful

    A master's degree will certainly help, as will an internship, but those will take time and money to complete.

    Is it possible the development team you're working QA for is hiring? Do you have contact with the developers? Have you built a reputation as someone who catches the hard-to-find bugs and documents them well? I know I value a competent tester, and if one of the good ones came to me looking for a way up, I'd be putting in a good word for him with management. Social networking is a good place to find hidden opportunities, and if it's people you've impressed with your skills at work, so much the better.

    --
    John
  7. Re:You should have asked this a year before. by Ethanol-fueled · · Score: 4, Insightful

    I personally don't feel QA is a shit job, I was just using strong words to improve contrast.

    There's nothing wrong with having a stable job which has something to do with your degree.

    I blame our parents :) for telling us that a college degree will land us a badass job and a big-ass house right out of college when the unfortunate reality is that the fresh mechanical engineering graduate will take their first job as a hinge or pipe designer or that a CS grad will have to code lazy kids' homework assignments for hire!

  8. Re:You should have asked this a year before. by bishiraver · · Score: 4, Insightful

    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.

  9. 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?

  10. 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?

  11. Re:You should have asked this a year before. by Mad+Merlin · · Score: 4, Insightful

    Interships are probably a good option. I did a CS degree with Co-op (four 4 month work terms integrated with regular classes, but the degree only takes 1 extra semester, as you don't get summers off), and I had no trouble at all finding a job after graduating (above entry level even, or at least well above entry level pay scale). For me, the already existing relevant job experience was pretty valuable.

    Though, job experience isn't the end of the story, if you don't have job experience, you can still work on related stuff in your spare time. When I was applying for my one of my Co-op positions, I was able to show off Game! as something substantial that'd I'd already done, and that pretty much clinched the job offer. Game! wasn't something I created with the intention of putting on my resume, I just wanted to make a game, but it certainly turned out pretty well.

    So, code something you like in your spare time. If there's nothing that interests you that you want to develop, perhaps a programming job isn't actually what you want to be doing.

  12. Re:Simple by sjames · · Score: 4, Insightful

    At one time I would have been against that, but then I realized that most job postings are primarily a bunch of random bullet points HR tossed in that have little or nothing to do with the actual opening. That is, when they're not just wasting your time to inflate their folder of resumes 'just in case'. Then, of course, there's the postings demanding 5 years of experience in a 3 year old technology...

    When it comes down to it, if you can't quite do the job, it's not like they'll say anything if your next potential employer calls them. They'll verify your employment without further comment as a matter of policy, no matter how good or bad you were.

  13. 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.
  14. 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.
  15. Transfer within your current company? by il+dus · · Score: 4, Insightful

    Why not move from QA to dev in your current company? You (should) already know the product, so moving over internally will be a lot easier than switching to an entirely new place where, not only are you an entry-level developer, but you also don't know the product and the internal processes.

    --
    "I am Dr. Freud, but you may call me.siggy."
  16. 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.
  17. Re:You should have asked this a year before. by rfc1394 · · Score: 4, 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).

    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.

    If you really believe this, please tell me what company you work for, I want to short their stock for when the company's poor quality and shlock coded applications cause it to go bankrupt!
    (Only partially kidding)
    And you spelled "bug resistant" worng. :) (Yes, I know that's 'wrong' but one of the rules of the Internet is that spelling flames must invariably have a mistake in them!)

    --
    The lessons of history teach us - if they teach us anything - that nobody learns the lessons that history teaches us.
  18. 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.