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?


  • 16
    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
    Commented Apr 27, 2011 at 1:27
  • Related: programmers.stackexchange.com/questions/48100/…
    – Adam Lear
    Commented Apr 27, 2011 at 1:32
  • 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
    Commented Sep 28, 2011 at 14:02

8 Answers 8


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

  • 18
    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. Commented Apr 27, 2011 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. Commented Sep 28, 2011 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. Commented Sep 28, 2011 at 13:40
  • These are really good criteria, but I'd also add that some things that aren't worth asking during the workday may be perfectly acceptable to ask over lunch (if the company culture is such that people eat together and are OK with discussing work things). This prevents the additional context switch of answering the question.
    – autophage
    Commented Jan 23, 2018 at 14:47

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

  • +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. Commented Sep 28, 2011 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. Commented Sep 28, 2011 at 12:13

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


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


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.


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



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.


I'm a recent graduate from college as well and have been developing software professionally for about a year now. You fear the same exact things I feared as well, so you are 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 open to help you out, but you will easily figure out who the "right people" are, and those you will want to be friends with.
  2. Ask questions as much as possible if you feel that 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 thin line, but you will find out where to cross it and where not. The best thing you can do is be enthusiastic to learn and surround yourself with people who know more than you do about software development.

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