The biggest mistake I see with fellow colleagues are people that just focus on the immediate tasks at hand. Day after day they only work on the tasks given to them and just try to get them done. Focusing on the immediate short-term tasks all the time is a recipe for mediocrity. It also leads to boredom.
Everyone should block off a portion of their day for thinking long-term and investing in skills that may pay off later. Unfortunately, many work places don’t see the value in doing this.
Do it anyway.
My first job post-university was relatively slack. There would usually be extra time every day. Luckily, this workplace had an awesome IT library with pretty much every technical book I could want. (This was before I discovered Safari Books Online) Knowing that I had extra time, one day I decided to bring in “The Mythical Man-Month” to work to read on my downtime. I figured since it was a book about IT projects, it was related to my work and should be no problem for me to read.
After I started reading, my manager came by and asked what I was doing. I said I was learning. He looked at my book and told me “You can’t read here. If you need something to do, ask me and I’ll give you something.” That was probably the moment that I knew I wouldn’t work there much longer. From then on, I just read on my computer so he wouldn’t know.
Some people might say “You shouldn’t be reading on company time” but as long as it is related to the work you’re doing, I see it as a benefit to the company. After a while of doing this, I definitely noticed that I was progressing faster than colleagues and that long-term investment started to pay off in my work. A couple times, senior developers with many years more experience than me would be discussing a problem and I would propose a solution from something I had read which they then implemented. These are the times when the long-term investment starts to yield short-term rewards.
Only enlightened managers will understand the payoff an hour or two of long-term investment can bring and, unfortunately, we can’t all work for the enlightened ones. That is why, as a programmer, you need to take control of your own craft. Software development is a profession that not everyone can do. It’s kind of like plumbing in that aspect. Most of the people who plumbers work for do not know anything about plumbing. Most of the people software developers work for know next to nothing about software development. Remember that you are responsible for being the expert so be sure to develop your expertise.