Beyond technical skills, there are also people skills:
1. People make bugs, you make bugs. Playing the blame game is not productive, even if and especially when it really is the other guy's fault. Learning how to be diplomatic is important.
2. Big companies like to pretend that we are machines, but we are not. Be aware that your coworkers have egos, feelings and emotions, and they do not behave like machines. Machines don't try to hide their bugs instead of fixing them because they don't want to look incompetent, for example. Machines won't get hostile and obstructive if you don't like talking about their pet dogs during lunchtime.
3. The interests of the company are not always or not ever aligned with your own self interest. If you do good work but your boss doesn't know about it, it's like you didn't do it. A good manager will reward you fairly for working harder. Don't accept pats on the back or "employee of the month" awards for unpaid overtime. Only accept substantive incentives, like larger bonuses or faster promotions, etc.
4. A lot of times there are genuine incentives for an employee to intentionally write obfuscated code -- it makes it more expensive for the company to fire her. You just have to deal with it, and recognize that you should also have some similar kind of leverage with the company.
I pride myself on my interpersonal skills - I just think it is easier and more productive to be friendly (or at least amicable). Hopefully I can carry this with me into the development arena as you suggest, though I don't think it will be too much of a stretch :)
As for #4, 'sneaky, sneaky!' Thanks for the tip. Though I don't think I could intentionally obfuscate my work (just seems dirty), I think that there are other ways of leveraging in a similar manner and I will definitely be keeping this in mind.
1. People make bugs, you make bugs. Playing the blame game is not productive, even if and especially when it really is the other guy's fault. Learning how to be diplomatic is important.
2. Big companies like to pretend that we are machines, but we are not. Be aware that your coworkers have egos, feelings and emotions, and they do not behave like machines. Machines don't try to hide their bugs instead of fixing them because they don't want to look incompetent, for example. Machines won't get hostile and obstructive if you don't like talking about their pet dogs during lunchtime.
3. The interests of the company are not always or not ever aligned with your own self interest. If you do good work but your boss doesn't know about it, it's like you didn't do it. A good manager will reward you fairly for working harder. Don't accept pats on the back or "employee of the month" awards for unpaid overtime. Only accept substantive incentives, like larger bonuses or faster promotions, etc.
4. A lot of times there are genuine incentives for an employee to intentionally write obfuscated code -- it makes it more expensive for the company to fire her. You just have to deal with it, and recognize that you should also have some similar kind of leverage with the company.