My software engineering professor once told me that it usually takes 6 months for a software engineer to learn the ropes at a new job and reach normal productivity. I'm at about 4.5 months today, and can anecdotally confirm that figure.

When I started here I had just come from school, where I almost never had to work with anyone else. I never had to work to understand code written by years of programmers before me. I was never given a task without some tools to help me get it done or at least some sympathy from other students.

Work has turned out to be more like research than I expected. The answers, the fixes, are not known by the person who gives you orders. You start on something and you become the expert; perhaps you write some documentation, purely from the kindness of your heart. In schooling success is largely engendered by compromising at the right times, persistence, and asking for help. In work, some help is available but there is, in some sense, more personal responsibility. On the other hand, the stakes may seem smaller than at school because evaluation is less frequent and more subjective. Which is not to say that the evaluation is any less important, but it's hard to imagine going home and crying like a Harvard student with a B if you get a $1000 raise instead of a $3000 raise.