The whole answer is great, but particularly:
Recognize underperformance and overperformance and avoid them.
There are a lot of low-effort players who stay employed for years. This isn't a bad strategy if you're settled, but I wouldn't fall too low. That said, the only people who typically get fired for underperformance are the people who fail so badly that they generate work for others. People who hide and do little tend not to make any enemies. At the same time, be cautious of overperformance. This isn't like college where challenging your professor's ideas could earn you an 'A' if you argued your point well. Overperformers often also generate extra work for their superiors and colleagues and draw unwanted attention (see: McNulty in The Wire) and are more likely to be culled for "performance" (98 percent of "performance management" in companies is politics) than underperformers. I'm not saying that you shouldn't work hard and do a good job and learn as much as you can. That's not necessarily overperformance. In my experience, though, overperformance is much more dangerous than underperformance. It can get you just as fired and it will happen a lot faster. If you end up stuck between the two, prefer underperformance.
Never ask for permission unless it would be reckless not to.
Want to spend a week investigating something on your own initiative? Don't ask for permission. You won't get it. You're not actually doing your boss a favor when you ask for permission; from his perspective, you're asking for the right to pass the buck if your project doesn't pan out. Since he can deny you and your buck-passing after-the-fact, in any case, just because he outranks you... you don't really gain anything from such a promise you might extract in the first place. So there's no upside in asking for that permission. Of course, if you're going to do something that presents a real risk to the business or where his permission would be reasonably expected, then go ahead and ask for permission. If the loss is small and the risk is appropriate to your level in the company (and any programming job where you're not trusted with days to weeks of your own time is not worth having) then don't ask for permission. Just do it, and do it well. http://www.quora.com/What-do-software-developers-age-30-and-over-know-now-that-they-wish-they-had-known-in-their-20s/answer/Michael-O-Church