33

What does an employer expect from a new graduate who has just finished University and has no prior experience at all (neither as a summer intern nor as anything else)?

I'm a college student, majoring in Computers, planning to be a Java programmer when I begin working.

  • 2
    Do you mean "what qualities do we look for before hiring" or "what do we expect after hiring" ? – kevin cline Aug 23 '12 at 20:23
  • 2
    The answer to this will vary by industry. In terms of computing/software development, you can expect your employer to be looking for 1) a solid understanding of fundamental CS principles (algorithms, data structures, concurrency, etc.), 2) solid problem-solving/critical-thinking skills, and 3) enthusiasm for the company and/or its product(s). Point #3 is pretty universal. Points #1 and #2 are more specific to the software industry. – aroth Aug 24 '12 at 1:21
  • I know you said you plan on becoming a Java programmer, but I think it would be good for some clarification: What do you mean by "majoring in Computers"? Computer science (more theoretical), computer science (more practical), Programming (solely in Java?), etc, etc... – Izkata Aug 24 '12 at 18:20
  • 1
48

You don't specify if you mean what to expect in looking for a job or in your first job. I think others have discussed the first point, so I am going to answer the second point.

  • First, we expect you to come to work and do your job. We expect you tell us in advance if you are not going to come to work. That seems really obvious, but some of the young people I have had experience with (not necessarily only developers) didn't seem to grasp this. They generally got fired if they didn't change their ways. Yes salaried means you don't have to work exactly 40 hours, but it doesn't mean you can get by with working only 10 either. I can remember one sales guy we hired who thought he could stroll in at 10, take a two hour lunch (not even with a potential client) and leave by 2:30 or 3. He didn't last long. Yes there is some flex, but when you are new, it is best to check with your boss about how much the organization will tolerate. Some places people come in at ten or 11 and stay until late in the night, other places need and expect people there by 9. Learn what your organizational norms are and live with them until you have a track record of accomplishment. You can ask for more flexibility when they know you will deliver.

  • We expect you to tell us if you have nothing to do.

  • We expect that, as the most junior person on the staff, you will get a lot of the most boring, least complicated work. (I mean really, if I have a task that must be done that no one particularly wants to do am I going to give it to the guy who makes 125K or to the new guy who makes 50K?) How you handle that will tell us whether to give you more interesting assignments. Expect that once you pass the boring test, the assignments can be much harder than what you did in college. It is not unusual to feel out of your depth.

  • We expect you to follow company coding standards, use our source control, check in work frequently to source control, follow our software development process, use the tools we are using unless you get permission (Or are told that people can choose their own tools), document your work using the prescribed documentation if there is any. There are reasons why we have all these things - they make it easier to manage complex projects. Cowboys who do what they want and ignore the company needs don't last long.

  • We expect you to have questions and to ask them. But we expect you to learn from those answers and not keep asking the same question repeatedly. We expect you to be able to generalize answers from one situation to the next.

  • We expect you to fill in timesheets and to do it on the schedule we requested. If we charge to clients, timesheets are critical to being able to manage the client expectations of how much money they are going to owe us this month and how well we are doing at billing our time. This is particulary true for support time which may be limited. Suppose client A has authorized 300 hours of support time this month and developer b doesn't bother to fill in his time sheet on time. By the end of the month we may go over the hours and have to eat the costs because we didn't know about that 80 hours developer b was going to charge from the beginning of the month. Had we known, we would have put some projects off or asked for more hours. Companies are not fond of eating costs. In fact, they can get right cranky about it especially if you cause it to happen multiple times.

  • We expect you to be part of a team. That means you don't own the code, there will be decisions you will have to implement that you don't agree with and others may change your code or require you to do so after a code review. It also means that people should make time to help each other out and answer questions. It means we expect people to pitch in sometimes and do things outside their job description for the good of the whole project. Sometimes that includes making copies of a Power Point presentation for the client meeting.

  • Expect that the code base will be much more complicated than any examples you had in school. They tend to use straightforward examples in school, the real world is often a messy mix of ten years of business rule changes and technology changes (that may only be applied to items that need changing for other reasons). Expect that data is far more important than you ever thought it would be.

  • Expect that you will hate the code base and wonder why these people did such a lousy job. Please try to remember that we often designed parts of this system before cool tool XYZ was available and the techniques used may have been the best available at at the time. Most of us don't have time available (and most companies aren't willing to accept the risk of new bugs) to change working code just because some new cool thing has come out. And oh yeah, some of that ten year old code was written when we were juniors and didn't know as much as we should have. We cringe when we see it too. But refactoring is a business choice not just a development choice.

  • Expect that people will not listen to your wonderful new ideas until you have proven yourself. That means by successfully delivering software using the current system.

  • Expect that older developers actually often do know more than you do. Expect that you will have to deal with them even if they don't and that you will not be allowed, for the most part, to only deal with your age peers.

  • Expect that you have very much overestimated your skill level. Most junior people do. Expect that when you have ten years experience, you will cringe at that code you wrote back then too! Just like the rest of us.

  • Expect that your manager and the project manager (if it is a different person) have a right to know what progress you are making and even to see the code in progress. They have to report to various people too. We don't want to see you playing for three weeks and then pulling an all-nighter to punch out some code at the last minute. Well at least the competent PMs don't want to see that. We expect you to actually make some progress every day and to tell us or show us what that was. YOUr days of procrastinating until the day before the deadline should be over.

  • We expect you to try at least some to figure out the answers to your questions. We are busy and don't want to tell you something that ten seconds of Googling would have found. People will be more receptive to questions that are specific to the product or business domain you are working in rather than syntax.

  • If we have written requirements, we expect the product you give us back will fulfill those requirements. If the requirements don't make sense, we expect you to push back and ask questions. If they are missing key information, we expect you to tell us that too. But in the end, when all the questions are answered (even if you personally don't like the answers), we expect that you will deliver what we asked you to deliver.

  • I think that your answer may be seen as offensive by new graduates, but basically most of it is correct, even if this is a bit of stating the obvious. However, I think that some universities and engineering school prepare the students in a better way that the one you imply here when you say "They tend to use straightforward examples in school". – Sylvain Peyronnet Aug 23 '12 at 22:05
  • 11
    Funny, I never saw any university that used examples that would come remotely close to the complexity of a live enterprise project that has gone on more than a couple of years. We have thousands of database tables and millions of lines of code. Who teaches that level of complexity? And when schools are trying to teach a concept, they do tend to simply so that the concept is clear and not add in all the complexities of do this if it is clienta and if it is clientb and the month is February do that, and if you use this technique you will bring the production database to a screaming halt, etc. – HLGEM Aug 23 '12 at 22:14
  • 2
    I am aware of at least two different schools in Paris, France where students contributes on projects with 500K+ lines, with assembly code, C, C++, interface with database, 3-tiers architecture, etc. Of course, this kind of projects spans on several years, and several courses. I also know an engineering school that mixes software and hardware development, together with maths stuff, for instance to build drones or this kind of cool things. – Sylvain Peyronnet Aug 23 '12 at 22:21
  • 3
    +1. At least someone laid out the expectations in the clear! These are usually "assumed" - ASSUME = ASS:U:ME :) – PhD Aug 24 '12 at 7:23
  • 1
    @SylvainPeyronnet - If anyone would view this answer as being offensive then they are not cut out for this field. This answer is very good and isn't even borderline offensive. – Donald Aug 24 '12 at 16:35
5

As a hiring manager myself, who has recently changed jobs that has me dealing with new graduates more than ever, I have found a few things that I expect.

  1. I expect the new grad to have some experience. This doesn't necessarily mean that it has to be corporate or professional experience. I want to see that the grad has personal side projects of his own, that aren't related to school either. Ideally I would like to see code samples on something like GitHub as well.
  2. I would also like to see some degree of passion. This ties into having personal side projects as well. If you are the type of person who gets ideas and actually goes out and tries to build them, then you are even closer to the type of person I would want to hire. If it's not working on your own projects then contributing to open source software would also be a plus.
  3. I would have reasonable expectations for a new grad starting out their career. Meaning, I know that the grad wouldn't be perfect, but I would want to see a recent grad asking solid questions to get acclimated with the new position. The grad should also utilize their peers once hired to start gaining insight and experience. I also expect them to start writing code, even though it may not be the most exciting work to start with.
1

Being a Summer Intern at a startup myself, I hope I can bring a couple of things to the table.

First things first...

Learn your company's environment(like flexible/perfectionists), start digging their official background(like business process, connection with other companies). They might help you at certain points of time(when you don't want yourself to feel odd among the colleagues).

You should be good with grasping the concepts easily, as they don't want to end up the whole day make you understand things. You should learn to be on your own. You are all by yourself. You should prove yourself that you are capable of taking part in the deciding factors of a company.

You should be bold enough to point out the mistakes if they do any, but only when you are sure about it and when you can strongly back up your point with reliable reference/resource.

You will be highly expected to get yourself involved in the company's business process, that will make them think its worth of hiring you.

They need you to be very active, passionate enough.

Employers expect you to be not just straight, but flexible too wherever/whenever needed. Also you would be expected to have personal experiences on programming or whatsoever it concerns.

Keep your schedule. Always mind your words as they are the key factors to judge you.

To summarize, you should be worthy of being hired.

  • 3
    "You should be bold enough to point out the mistakes if they do any....". No. As a new guy, you don't 'point out mistakes' because you're probably the one with the mistake. What you DO do is ask a well formed question. "I see we do 'X', and I was wondering if we could try doing 'Y' instead. 'Y' would seem to have some advantages." – Jim In Texas Aug 24 '12 at 15:21
  • @JimInTexas I agree with you. The approaching way is much more important than our point being right. Thanks. – Lakshminarayanan Guptha Aug 25 '12 at 7:09
0

All I expect from my new starts without experience is:

  • enthusiasm
  • willing to work
  • willing to learn
  • willing to follow company and team processes and procedures
  • not expecting to work on something earth shatteringly amazing from the outset
  • knowledge of your knowledge and limitations

You will be surprised how difficult it is to find people like this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.