http://www.perlmonks.org?node_id=538278

bioMan has asked for the wisdom of the Perl Monks concerning the following question:

I'll gladly take any and all abuse for this topic because I'm trying to help my son.

The disclamer: I'm not attempting to place his application here or beg for a job. I'm trying to get information on how best to advise him with his job search.

The problem: My son graduated from a good university with a degree in computer programming. He learned to usual number of real and professor invented programming languages. He has a good GPA. The university taught him to create a resume that looks like a single slide from a PowerPoint presentation, and their job placement sux! Basically he has placed his resume on Monster.com, and the only companies to contact him are looking for programmers with real-world experience.

The questions: How do I advise him on how best to present himself to a potential employer? Where do I tell him to look for a job? Are there things he can do post-graduation to make himself a better prospect?

Thank you, most sincerely,

Mike

Update: I want to thank everyone for their kind help and suggestions. This sure is different from the way I look for a job!

I know about the low pay. I once worked at a job for 4 months without pay for the chance they would pay me eventually. My wife wasn't too happy about that ;)

Replies are listed 'Best First'.
Re: (OT) Programmer Job Search How-to
by pboin (Deacon) on Mar 21, 2006 at 20:16 UTC

    During the search period, your son needs to be busy writing OSS. Patches, documentation, etc. will all buy him some good 'street cred'.

    This is one of the neat win/win things about OSS. He gets credibility, the community gets a few patches and maybe some better documentation. Depending on the work, it could even be part of a portfolio and would certainly be resume-worthy.

    I would be *very* interested in a candidate who had spent time productively helping others this way.

    Update: I struck 'helping others', because it sounded like working on OSS is purely altruistic, and I don't think that's actually correct. Everybody gets a benefit, even the author, so it's far from selfless. As a matter of fact, I find it completely acceptable to do it for selfish reasons (self-education, self-enrichment, improve employment prospects, search for glory, software *exactly* how you want it, whatever floats your boat.)

Re: (OT) Programmer Job Search How-to
by perrin (Chancellor) on Mar 21, 2006 at 20:25 UTC
    He should look for jobs, not wait for them to come to him. The http://jobs.perl.org/ site is a good place to look.

    To compensate for his lack of real world experience, he should work on open source projects, especially ones with public mailing lists. I have hired people in the past based partly on their mailing list posts (found on Google) and largely on the sample code they submitted.

Re: (OT) Programmer Job Search How-to
by tilly (Archbishop) on Mar 21, 2006 at 22:17 UTC
    Several tips.

    First he has to accept that he is starting at the bottom of the totem pole. Internship has been suggested - that is a good idea. When I was in his position, I took a job with a churn and burn consultancy. My boss started by doing QA. Another coworker started with help desk. None of these were very rewarding jobs, but they were jobs in the right field. If you're good, you can move up from there.

    Secondly he has to reassess his own position in the programming hierarchy. He may think that his GPA and alma mater mean that he is a hotshot programmer. The odds are very high that he's wrong. He has probably never worked with a significant code base. He lacks real world experience. He's going to have to learn some basic lessons the hard way. And all of these factors make him less valuable for potential employers.

    And third, he absolutely must do something other than the big online job boards. It is easy to waste a lot of time on Monster et al. But before doing that, read this article. All of the big job boards combined are responsible for less than 10% of job placements. But virtually everyone puts their resumes there. What are the odds that yours will stand out?

    But what else? A number of people have mentioned open source work. I agree with that as a long term strategy. First of all because it gets your name out there, and some code out there. But secondly because you're going to get valuable feedback and experience which will help you improve. (Most working programmers just stagnate after a fairly short while. They may not think they are stagnating, but they are. Open source work is a way to avoid that trap.) However that won't help him in the short term. Because it takes time for that virtuous cycle to start working for you. If he had been doing it through college, he'd be fine now. But he didn't and he isn't.

    Another important long-term strategy is to start a continual process of self-improvement. For instance he could read Code Complete. Or learn another language. Or pick up a technology. And when he finishes, pick something else to do. After a while this will add up. Unfortunately this is a long-term process, and in the short term it won't help him much.

    That doesn't mean that he shouldn't start the long-term strategies now. Eventually he'll need to do them, and there is no time to start like the present. Plus he has more downtime now than he will later. (Though not as much as he might think.)

    But what can he do for the short term? Here are some ideas.

    1. He should try to figure out what kind of job he thinks he can get, and find out how to enter that job market. For instance pursue the intern angle.
    2. Network. For instance go to a perlmongers meeting, or a Linux user group. When he goes there, he should not just hang out. Try to make good use of his time. For instance he can go with the goal of trying to find the name of a good headhunter. (Yes, they are slime. But they are helpful slime.)
    3. Improve that resume. Resume's are important. And it isn't obvious how to write them. When I first had to do a resume, I started by reading a couple of books on how to write resumes. I picked a style that I thought might work, wrote it, then showed it to people I trusted, like my wife and brother. Then rewrote it multiple times based on feedback. It was a lot of work, and I think it was worth it.
    4. Follow a schedule. It is easy to just get depressed during a job search. After all you aren't getting a lot of positive feedback, and you've got a lot to be depressed about. But if you set a schedule for yourself, you can keep yourself busy in a productive way. For instance you might decide to go to the library on Monday morning to get books on job hunting, spend Monday afternoon going through job ads in the paper, spend Tuesday morning reading a book on job hunting, and schedule a get together with someone who is a programmer for Tuesday evening to pick his brain about what he did.
    5. Network some more. He presumably knows people from previous years. Try to track some down, get their advice about what has worked for them. Don't be shy, people generally like to help. Particularly if you're asking for something they can give with little commitment on their part, get it.
    Oh, and make sure that he gets out a little and doesn't get depressed...

    Good luck.

Re: (OT) Programmer Job Search How-to
by zer (Deacon) on Mar 21, 2006 at 20:56 UTC
    volunteering to help out volunteer organisation is a good one. If they are right out to lunch with their database you can fix that up quit neatly for them. There is always something you can do for them. Even set up a cgi website for them. Volunteer organizations are always looking for help and cant afford or always get the top of the line realworld experiance.

    another way could be with setting up your own private consulting business. Take odd jobs until you get hired. Small businesses could be the target.

Re: (OT) Programmer Job Search How-to
by tirwhan (Abbot) on Mar 21, 2006 at 20:45 UTC

    Like others in this thread, I would suggest he participate in open source projects to get some real-world experience under his belt. At the very least it will give him some extra lines to put on his CV and some code which he can point to for reference. Also, since participation in such projects is mostly done via public mailing lists, prospective employers can get an idea of how he works together with other team members, which can be an important factor in the hiring decision.

    I also think he should not be put off from applying for a job if he thinks he doesn't quite have all the qualifications. By this I do not mean he should disregard requirements which are essential to the job (applying for a Java job without ever having written any Java is not a good idea) and even less that he should lie about his qualifications. But job ads are often written by HR (or even worse, job agency) droids, who have certain keywords imprinted into their forebrain, a job ad that doesn't ask for "extensive experience" just does not seem complete to them. Once you get to the actual interview with the people making the decisions you find that lack of experience may be tolerable if it's compensated by a keen desire for learning and skill at what one has learnt already. He should be prepared to answer questions like "All your co-workers have n years of experience in the field, how do you expect to keep up" at the interview, but that's no impossible task. And at the worst he'll get interview experience which can be valuable for finally getting the right job.


    All dogma is stupid.
Re: (OT) Programmer Job Search How-to
by dragonchild (Archbishop) on Mar 21, 2006 at 23:00 UTC
    To further jump on the bandwagon, my last 7 job offers came about in part due to my CPAN code. My current job pursued me purely because of my CPAN code. OSS is the best advertisement a programmer can have because:
    • You now have code samples which many interviewers are looking for. Until I started doing CPAN stuff, I didn't have any code samples because everything I'd done was owned by my employer at the time.
    • If your name is attached to important projects, you gain importance. Let's say your son managed to get a device driver into Linux. Or, maybe he rewrote a subsystem for Firefox so that it worked on OSX better or fixed some major porting issues for OpenOffice on Win64. These are huge feathers in the cap and prove that he has "real-world experience".
    • I don't know about you, but I've experienced more politics in the OSS world than in the business world. Why? Everyone is doing it for love, not money. Doing something for money means that you're more willing to eat crow and shut up. If you're doing it for love, you're more passionate about the topic. This means that module maintainers have to be approached gingerly if you're going to get major work done. Getting reworks done shows some good political acumen.

    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: (OT) Programmer Job Search How-to
by swampyankee (Parson) on Mar 21, 2006 at 21:25 UTC

    In general, his resume shouldn't be more than one page; a new grad will rarely have enough relevant information to create a multi-page resume (there are exceptions to this, but the key is "relevant").

    If his school's placement service stinks, he should try (among other places):

    • Faculty members in his department. Some -- especially adjunct -- will have contacts in the Real World
    • Newpapers, preferably those from largish cities near where he wants to work.
    • Corporate (and government) web sites. Isn't Lockheed in Georgia?
    • Your state Dept of Labor (or its equivalent; the department handling unemployment compensation) almost certainly maintains a list of employers who are searching for all sorts of employees.

    How to present himself? Depends on the employer. Lockheed will probably want someone a bit more corporate than, say, an advertising agency. The various shibboleths apply: don't lie about background, don't admit to anything that cannot legally be asked (religion, political affiliation, ethnicity), show up on time, bathe, wear nice clothes, make sure that everything in resume is spelled correctly, that there are no misused words, eschew LeetSpeak, etc. When the interviewing manager says "what do you think of /COBOL|Fortran|Algol/i?" don't answer "it's for morons!".

    emc

    " The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents."
    —Nathaniel S. Borenstein
Re: (OT) Programmer Job Search How-to
by superfrink (Curate) on Mar 22, 2006 at 02:45 UTC
    Hi Mike.

    First of all I recommend the book "What Color is Your Parachute" by Richard Bolles. A new edition comes out every year but a copy a couple years old will probably be fine.

    The focus near the beginning is "X,Y,Z are not effective ways to find a job but A,B,C are". Later chapters are about finding the job you want. In short:
    • figure out what you want to do (eg programming)
    • figure out what field interests you (eg medical science)
    • figure out how a (programmer) can contribute to (medical science). Interview working professionals to find this out!
    • figure out where you want to work (eg Georgia)
    • figure out what companies in (Georgia) could use your skills and operate in the field of your interest. Make a list. Ask your local librarian! Librarians are people with magic skills when it comes to finding information.
    Aside: when you get the chance ask a librarian how much work was involved in becoming a librarian.

    Many jobs come from small companies (eg under 10 people). Many companies do not advertise. If someone shows up at the door with skills ready to be applied and they know something about the company there is a good chance they will get hired.

    Small companies are good to do this with because they don't have big Human Resource departments to filter people through. Often you will get to talk with the person who has the power to hire you. "Cold call" at 8:30 or 5:30 or lunch time because hard working owner/managers will be there but receptionists, etc will not be in the office.

    Have him put together a portfolio of work that he has done. I have a printed version (from when I graduated, it's a bit out of date). A version burnt on to CD-ROM that he can leave with people would be good. A similar idea is putting examples of his work up on a web site. Include the URL in emails, cover letters. He should try to make it easy for potential employers to find information about him. Hopefully positive information. ;)

    Projects outside of school/work are valuable. They shows when someone is interested in writing code and that he probably has more experience than someone who does not write code in his spare time. If he doesn't have this kind of experience yet then he should start doing it (but of course don't put off looking for work).

    A related book about how to be a valuable person in a programming company is "My Job Went to India" by Chad Fowler. This book is not directly about finding a job but a couple things it mentions echo what has already been said about being involved with open-source projects.

    Best of Luck.
    Chad

    Update:PS: I am not Chad Fowler. I did read his book last week though. :)
Re: (OT) Programmer Job Search How-to
by ptum (Priest) on Mar 21, 2006 at 21:08 UTC

    Your son may wish to pursue an internship rather than a regular job, if lack of experience is the primary problem. Many companies take on interns, work them like dogs and pay them a tiny salary -- but in exchange, the intern acquires some real-world experience and usually gains a few skills (not to mention a potential later job-offer). Many students just out of school have the luxury of accepting a low salary for a time ... this route may be acceptable to your son and is substantially more palatable than being unemployed or taking a job that doesn't give him any valuable experience.

    Feel free to message me privately about this for specific internship suggestions.


    No good deed goes unpunished. -- (attributed to) Oscar Wilde
Re: (OT) Programmer Job Search How-to
by Otogi (Beadle) on Mar 21, 2006 at 21:55 UTC
    He should add to the resume all the large projects he worked on during his studies it will show his ability to design and innovate on his own even if he is a new graduate. He should definatly participate in the open source community while he looks ( and during his employment of course) and take the time to build his skills. Just Graduating from university means you have not really been introduced to the latest technologies and you always need to update your knowledge.
Re: (OT) Programmer Job Search How-to
by kwaping (Priest) on Mar 21, 2006 at 21:00 UTC
    Is he looking for a Perl job? If so, how capable is he? If he's a really good coder, I'd recommend trying to create one or more CPAN modules. When I've reviewed resumes in the past, I've always put CPAN authors on the top of the pile.

    ---
    It's all fine and dandy until someone has to look at the code.

      At the moment he's not looking for a Perl job. I know more Perl than he does :( I'll have to get him hooked on Perl.

      Mike

Re: (OT) Programmer Job Search How-to
by adrianh (Chancellor) on Mar 22, 2006 at 10:24 UTC
    My son graduated from a good university with a degree in computer programming. He learned to usual number of real and professor invented programming languages. He has a good GPA.

    Unfortunately while it'll give your son a whole bunch of useful information, degrees aren't that much help to employers when it comes to picking out recruits. I'm sure your son knows several people who graduated with him that got vaguely decent GPAs and yet everybody knows are incompetent a--holes. Unfortunately employees know this too ;-)

    Don't get me wrong - degrees are great. I'm glad I did mine many moons ago. It provided me with a whole bunch of useful stuff that I still use today. It just wasn't a whole lot of use in getting me a job :-)

    The university taught him to create a resume that looks like a single slide from a PowerPoint

    That sounds better than many resume's that cross my desk. One page of relevant material is way more likely to catch my attention than four pages of irrelevant guff. He'll also get bonus points for knowing how to communicate well.

    Are there things he can do post-graduation to make himself a better prospect?

    ++ for all who suggested getting some evidence that you can actually code. Whether that is through OSS work, volunteer work, internship or whatever.

    Pointers in the resume to work-topic related blogs, technical mailing lists you contribute too, etc. also all win points.

    The other thing is to network like buggery. Unfortunately the best time to do this is before you graduate :-) Universities are full of clever folk who go into industry.

    Hopefully he'll have friends he graduated with who have got jobs. Talk to them. Offer some free work to get some experience. The two biggest things that will get you work are personal recommendations and proof of work in the "real world". He should make those his priorities.

      I knew things would be different for my son, which is why I asked for advice. My experience in biology was that the more education you got the better. Of course post-graduate education is more a matter of being slave labor and teaching yourself how to use the library to find relevant information. Post-graduate work also meant that you were expected to have a resume that looked like a small book to prove you were working your a** off.

      Everyone's comments and advice have been most useful. I wish I had done this earlier so I could have begun preparing my son for what he needed to do while he was still in school.

      Unfortunately his last big project was with a professor collaborating with a government agency to create an interface to databases and applications relevant to their needs. He was working with two other students, one of whom was the requirements expert. That person quit after a couple of weeks and the other programmer quit a little later leaving my son as the only person responsible for the project. He also had to deal with about two years of legacy code and needed to back translate the code to determine what it was doing. In other words a cluster ... The professor wasn't of much help either. So I guess he really needs to start doing some coding to prove what he can do.

      Thanks again for all the advice.

      Mike

      The other thing is to network...

      I'm really glad the next word in that sentence was "like" and not "with" or "by", because that's still illegal in some of the more primitive jurisdictions these days. :-)
Re: (OT) Programmer Job Search How-to
by Melly (Chaplain) on Mar 21, 2006 at 22:50 UTC

    Pretty much iterate what everybody else has said.

    I'd put in an emphasis on getting some real world experience - the charity organisation is a good one (in the UK I'd recommend the national health service - they always need cheap, good staff).

    Tom Melly, tom@tomandlu.co.uk