Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I just got hired for my first programming job! I am 25 and have been using Java academically for 6 years.

Now that I have been hired I am nervous that my skills will not be what the employer expects. I am afraid I will be assigned to a project and have to ask lots of questions that my coworkers will feel are amateur.

Is this a rational fear? What were your first programming job experiences? What should I expect? What advice could you give me?

Thanks.

share|improve this question
14  
Don't worry. Most employers understand that there is a huge learning curve moving from academia into industry. I would be worried if you were not asking a lot of questions. –  Pemdas Apr 27 '11 at 1:27
    
    
In my opinion the best thing you can do is to ask! If there is an issue a quick question is more efficient than wasting hours while trying to figure something out. In the beginning you might ask a bit more, but after some time you will certainly be able to answer questions by "more experienced" colleagues. Nobody knows anything and no employer should expect that. Healthy communication is important for a company. –  johannes Sep 28 '11 at 14:02
add comment

8 Answers

There are too many things you can't learn in college. There are also many things that are specific to the company. In both cases, you have a choice:

  • either you ask your colleagues for explanation,
  • or you don't ask anything to anybody, and take the risk to make a mistake.

If I hire someone who doesn't have a professional experience, I would not mind if she asks lots of questions the first weeks or months. On the other hand, if she fears asking for help and wastes hours solving a problem that another developer may solve within seconds or makes stupid mistakes which could be easily avoided by someone more open to communication with peers, it will bother me much more.

Don't avoid questions. It is a good way to both learn things and socialize with the people you will work with. But:

  • Don't ask questions just to ask them.
  • Remember that other people have their own work to do and their own deadlines. They have other things to do than spending their time helping you for every task.
  • Don't expect other people doing your job (just like it is never welcome to ask on Stack Overflow to do your job).
  • Note that if you disturb a developer, she loses ten or more minutes to concentrate again. So don't ask questions if you can find yourself an answer within seconds on the internet.

Example of bad questions:

  • "Hey, I want to create an array like { 1, 2, 3, ... n-1, n } in PHP. Can you help me?" Here, you just show that not only you don't know how to use PHP documentation, but you don't even bother about searching Google or thinking for a moment. It's ok if you don't know about range method in PHP. It's not ok if you cannot find it yourself.

  • "I'm trying to implement plugins, but I don't know what CAS is in .NET Framework. Can you explain me what's this?" Yes, it's easier to ask for explanation, but what about searching Google for "CAS .NET Framework 4.0" first?

  • "Why are you forcing me to use version control? I always worked without it and I don't understand why would I need it now." Well, your colleagues don't have to explain why you must use it. First, it is a guideline of your company. You're not here to dictate how to work. Second, there are plenty of books, blog articles and answers on SE websites explaining why everyone must use version control. You just have to search.

Examples of questions which are welcome:

  • "I want to commit the changes to the version control, but there is a strange error message. It says: [...]. Maybe you know what's this?" Chances are your colleague have seen this message dozens of times before, so it's ok to ask this.

  • "I'm reading the page 9 of the requirements for this project, part 4.2.1, but I'm not sure: is it to me or to the database administrator to do this part?" It's better to ask, than to spend three days to do the work which is already done by the dba.

  • "I need to implement plugins, but after reading this and this, I still don't understand what is a sandbox and how is this related to security. Could you explain me this later when you'll be free?" You searched. You made an effort. You didn't understand. It's ok to not understand everything, and it would be better to ask for explanation rather than spending a weekend searching for it.

share|improve this answer
13  
I'd like to point out, that if the company didn't use version control, 99.9% of us here would support trying to "dictate how to work" and to get source control. –  whatsisname Apr 27 '11 at 3:18
    
"Why are you forcing me to use version control? I always worked without it and I don't understand why would I need it now." Answer: "Ok, you have a point. Work without it for a few months, on our large sprawling codebase while everyone else does use it, and we'll talk about it then". This issue will likely take care of itself. –  joshin4colours Sep 28 '11 at 13:29
1  
Don't ask questions just to ask them - agreed. But do ask questions to broaden your knowledge. If you don't do that you're not trying to learn. –  configurator Sep 28 '11 at 13:40
add comment

"The only stupid question is the one that goes unasked."

^ Seriously. Remember that.

If you've been in academics for 6 years, I'm assuming (and hoping) that you have a solid grasp on core engineering concepts. Unless you've gotten yourself in a bad situation with a terrible employer, they should be aware that being fresh out of school in your first job, you'll have a learning curve ahead of you and be expecting you to make mistakes along the way.

If your skills didn't match what the employer was looking for, they wouldn't have hired you. If they hired you even though your skills don't match what they're looking for, then you most likely don't want to work there anyway.

The more questions you ask, the faster you will become accustomed to your new work environment. Having said that, generally engineers don't like constantly being bugged as it takes ~15 minutes for them to get back in the swing of things. So, I'd maybe think about putting all of your relevant questions in an e-mail and sending them to someone in "the know" at the end of the day.

Some companies pair you up with a mentor, some don't.

share|improve this answer
    
+1, worrying whether your coworker is going to think a question is stupid or not costs time that could be spent asking the question and implementing. –  Nicholas Smith Sep 28 '11 at 10:29
    
+1, but one small note on the skills matching part. Sometimes an employer will hire an entry level person without the existing skills who shows good potential to gain those skills through training. In either case, the asking of questions ends up being the solution. –  Joel Etherton Sep 28 '11 at 12:13
add comment

Stop worrying so much. Nobody is world-class their first day.

share|improve this answer
add comment

My first programming job was taking over a website that was written in languages I did not even know. I was the sole developer and had no one I could ask for help. I was very scared I would not last long (if it wasn't for forums I probably wouldn't have). So what did I do? I asked a ton of questions on forums. Tons. I felt like I was asking so many "amateur" questions that I made my avatar "I'm stupid" (its still out there.. somewhere).

My point is, the fear is natural but you will get past it, and do ask a lot of amateur questions. Its the best way to learn. At least in my case it was, and still is.

Also when I was in my IT training in the military, they briefly glossed over every concept and said that "You will learn your job at you first duty station.. this is just so you are somewhat familiar with whatever that happens to be."

share|improve this answer
add comment

I'm a recent graduate from college as well and have been developing software professionally now for about a year now. You feared the same exact things I feared as well, so your not alone. I feel like I went through what you are describing here. The best advice I can give you is the following:

  1. Surround yourself with people smarter than you and willing to mentor. Be as polite as possible, read into people and figure out your alliances. Not everyone will be wide open for helping you out, but you will easily figure out who the "right people" are, and those you will want to make friends with.
  2. Ask questions as much as possible if you feel they are things Google can't answer.
  3. Realize there are many who haven't been to school in a while, and it's likely they may view you as a fresh mind for ideas. Don't be afraid to shoot ideas out, and don't be afraid to disagree with others.

It's a fine line, but you will find out where to cross it and where not to cross it. The best thing you can do is be enthusiastic to learn, surround yourself with people who know more than you do about software development, and

share|improve this answer
add comment

My first programming job was in a language and framework/platform that I'd never touched before (Visual C++/MFC, and I was educated in C on Unix with a bit of Java).

Moral of the anecdote: when you have no commercial experience, the first employer who takes you on usually sees you as more or less a clean slate. Looking back now, even if I had been hired for a C on Unix role, 95%+ of the learning curve early on in that first job would have been much more about soft skills, source control, office politics/management, and other such stuff which academic experience can't really prepare you for. On the technical side, they generally expect you to be very wobbly on your feet the first month or two - the shock to the system from the non-technical things alone is enough of a distraction. They know this, so they probably don't expect much.

MainMa has good advice: Basically just try not to bother people with the sort of questions that are easy to Google, and that should come with the territory for someone with 6 years of academic experience. A good rule of thumb is that generic programming knowledge should first be researched before asking, while internal company/domain specific knowledge is much safer to ask about after minimal digging.

share|improve this answer
add comment

If you ask dumb questions, but only ask once, then your peers won't hate you. But if you never learn, they will tell your boss to fire you.

Your sich is out of your control. Either you will be with good people who will want you to succeed, or you will be with evil who will want you to fail.

Try not to be nervous and just do what you can. And put in lots of extra work learning the language and the company apps.

share|improve this answer
add comment

When you do ask a question, make sure you:

  • Prepare before asking
  • Give the person you're asking time to come out of the zone
  • Try to make the other person feel clever

http://www.artificialworlds.net/blog/2011/02/12/how-to-ask-technical-questions-in-person/

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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