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 recently graduated and now work as an entry level software developer. I've been there for 2 weeks. Is it normal for me to feel like I'm the stupidest person in the room? I feel like the interns there know what they're doing better!

share|improve this question

closed as not constructive by gnat, Jarrod Roberson, Jeremy Heiler, Glenn Nelson, Walter Jun 20 '12 at 12:39

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

5  
not only is it normal.. you're going to find that there are those engineers out there who try to make you feel stupid.. just get good at coding –  hanzolo Jun 19 '12 at 23:54
4  
Not only is it normal, you'll feel like that every time you start working on a large existing project or with a complex technology you haven't used before. Many people dislike that feeling so much that they try to do everything to avoid such situations, but that means their skill set stagnates and can become obsolete. –  Michael Borgwardt Jun 20 '12 at 7:24
    
Make sure you tolerate the odd balls. –  Emmad Kareem Jun 20 '12 at 8:00
    
The same thing happened to me (I started my 1st development gig, post graduation, 8 months ago. It gets easier, believe me. In my case, the people here are great and are always willing to help you out (even if you think your question is a dumb one, ask it anyway). You've just spent 3 (or more?) years doing the theory side of development, and you're about to see how much that differers to real world development. Good luck and hang in there –  Jamie Taylor Jun 20 '12 at 8:26
    
Nah, it is normal for graduates to think they know everything and to slowly develop an understanding of how much more they have to learn. –  Nat Aug 6 '13 at 23:02
add comment

9 Answers 9

Yes, I'd imagine that's normal. If you just graduated with a CS degree, you can expect "the real world" to work differently than you're used to. Also to consider is that most of your new coworkers will speak in jargon and acronyms, forgetting that there are people who don't understand what putting the SLA in the PDB over the CDE means.

Hang in there, keep your ears open and take a lot of notes. This is a great way to get up to speed. Jot down acronyms you hear, keep them in a spreadsheet, and offer them to new hires that come along after you and know even less than you do.

Good luck :)

Edit: And probably not much is expected of you. Your hire is a longer term investment than a few weeks. For now, they'll just want you to learn the ropes and pay attention to people who explain things to you.

share|improve this answer
1  
Crap. I think I just understood your jargon... –  JasCav Jun 20 '12 at 1:44
    
+1 for the advice about joting down the acronyms you hear, and offering them to new hires. The old guys at you place, doesn't even recognize the acronyms they use as acronyms anymore. You will be highly appreciated for writing an acronym list for them. –  Bjarke Freund-Hansen Jun 20 '12 at 11:46
1  
@bjarkef That's been my experience with it. I've even taken all of that information and setup a wiki at my current job. I believe it's been a help to the guys that have come on board in the years since I started. –  Erik Dietrich Jun 20 '12 at 17:24
add comment

I have news for you anytime you start someplace new those first few weeks can be disorienting. Your coworkers have been there for months or years and understand the basic issues. You are sill trying to remember their names. You can't start to code solutions because you have only started looking at the code base.

On top of that you are young. You are missing real world experience.

Don't fret. You employers and coworkers understand How to handle estimates for programmers joining the team?

share|improve this answer
    
+1 for this (competing) answer. After 25 years, I still get that in a new job. Stil, like being on stage, some nerves is OK. –  Michael Durrant Jun 20 '12 at 4:50
add comment

Don't worry, it's totally normal.

Despite your recent degree, your learning has just begun.

As a recent graduate you are expected to be a good learner with basic knowledge down and the ability to learn more on the job.

It takes a long time to learn theory, as you know. Practical experience and learning takes just as long if not longer.

Don't worry, it can be even more fun than college once you get your feet - one distinct difference - you tend to have more money!

Also I like:

  • "The only stupid question is the one you don't ask"

  • don't make unsolicited suggestions about changes to existing systems until you've spend some time (months) working on the code base.

  • before making suggestions, remember that you're surrounded by smart intelligent folks who may have thought of it but not be able to do due to factors, often human, that you don't know.

  • though the most 'logical' approach may often seem obvious to you, it may not be the best choice for the business or the one that the product team agrees with. Initially just listen, listen, listen and learn and go with the flow, even if some of the decisions rub you the wrong way - they will, that's the nature of doing tech work for someone else's vision.

  • respect other people. Offer to help them when you can. College teaches you technical skills. Work teaches you people skills. Without both you'll not succeed.

share|improve this answer
add comment

I am one of the people on my team expected to handle college hires, and I basically expect aptitude and attitude: your attitude needs to be positive and interested in learning the system and how to be a productive part of the team, and an aptitude to ask good questions, absorb the answers, and show that you understand.

Nothing turns me off faster than a new hire that does not actively strive to be up to speed and integrate with the team. I don't want to have to force you to learn. I also don't want to answer the same question 5 times, or feel like when I do answer that I'm just getting a blank look with no attempt to understand.

share|improve this answer
add comment

Unless you are a super genius, it will take some time before anyone expects anything from you. In larger companies, when a manager hires a recent college grad they expect it will take six months before they finally "get it." It will take a year from when they are hired before they are ready to stand on their own. They expect it will take a full two years before the hire is ready to make meaningful contributions to the team, and are able to take a more active leadership role.

When I was first hired right out of college I was really worried my manager would see me struggling to grasp everything and let me go. It kept me up some nights. I talked with a couple of the other guys on the team and they said to not worry about it. He didn't expect much from me for a couple of months.

And it still takes a while for even the most senior of developers to grasp everything. The first six months of any job is trying to figure out what everyone else is talking about and all the ins and outs of a business. Just figuring out the acronyms is a big win.

You have been essentially given a free pass for a while. I would really take this time to learn the code base and understand the business rules. Maybe talk to a lead to see if there is something they wished the code could do better and figure out how to do it. Look at the bug list and see if you can figure out what the bug is and how would you go about fixing it. Just don't worry about it. Believe me, this time goes by fast.

share|improve this answer
    
Given your response, I wonder how people still in college that are interning somewhere manage to do anything meaningful in a summer's time table which usually lasts 3 months. –  chiurox Jun 20 '12 at 2:59
1  
I guess there are two schools of thought to internships. One is a temp employee for the summer, and typically we give them one-off projects that fills a need but not very business critical. The other is a intern-to-hire. The internship continues into the school year, they work 40 hours a week during the summer and 20 hours a week (ideally, most of the time much less) when school is going on. Those interns work on production code just like the regular full time employees. When they graduate they are typically hired as full timers. –  bwalk2895 Jun 20 '12 at 3:07
add comment

Yes, this is totally normal. Keep asking questions of those who have more experience than you. Ask lots of questions, though learn to recognise when you might have asked one or two too many!

Write as much of it down as possible and go over your notes to ensure they still make sense. This is especially true of things that appear to be obvious to anyone with three weeks experience, but not to you. Write them down so that when you're not the most junior developer any more you can refresh your memory of the problems you had. This is very important for boosting your confidence in the future.

Learn to take criticism of your code. The habits and techniques you've learned till now may have their advantages, but if someone comes along and points out that with a few extra lines your application will be much more maintainable in the future, then take the LOC hit.

If you have to produce code reviews or other documentation, always show your working. Think of it like an assignment. Others around you may get away with more sparse explanations, but someone reviewing their work knows the weight of experience behind it. You, however, may just be guessing!

share|improve this answer
add comment

Yes that is completely normal. On average it takes 6 months to a year to become competent in a job

All I expect of a recent graduate is the ability to learn, work off their own initiative and be relativity enthusiastic.

share|improve this answer
add comment

Absolutely completely normal. I'm not adding anything new here, but a definite confirmation of what others are saying. When I started (nine years ago now) a real job after my Computer Science degree I was completely bamboozled. Fortunately the company had deliberately hired a graduate, and my manager was a very experienced developer who didn't pile more onto me than I could handle, giving me time to learn my way around the system and teaching me a great deal about software development in the real world.

I have since returned to the University from which I graduated a couple of times and given talks to their current students, usually revolving around where you go after you've graduated and how to best prepare for it. The message I focus on is that your degree gives you a foundation, but out there in the wild is where you really learn to code. You need the knowledge from university, but you must recognise that it's insufficient.

Incidentally, when you change jobs in the future you'll have similar feelings starting in the new place. My second job involved picking up the details of a codebase which was written in C++ starting ten years before by a bunch of Java programmers. Who, among other things, decided that it would be a good idea to write a threading class which deletes itself when the Run() method exits. So that was fun. My current job was a lot easier to pick up because there was a very small existing codebase, and we've (there are two of us) rewritten it all now anyway so I know it inside out. However, I still had to learn a lot about how the company works in order to write the right bit of software, and that was hard enough.

Simple message: never stop learning, never stop improving, and you'll be able to cope with these periods of switching jobs. And you'll be able to get those new jobs in the first place. But there will always be a learning curve to any job, and it'll be anything from weeks to months.

Heck, my second job, for the year before I left I was trying to get a new developer on my team up to speed and he was still struggling with some of it. And he wasn't stupid or ignorant by any measure at all, it's simply an enormous job (and we did have to throw him in rather deeper than I was when I started).

share|improve this answer
add comment

In software developement it's normal that you feel "stupid" your entire career. You will have to constantly lear something new... try something new... Your best characteristic now is that you are still in the process of absorbing new information which will make it easier for you to get up to speed.

I am now almost for 1 year a professional developer and I understand the project fully but I still feel like there is a lot that can be learned. Lucky for me my boss is pretty open minde

share|improve this answer
add comment

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