visit
Why? Every programmer has experienced something like this: you change a bit of code in one corner, and in a (seemingly) unrelated corner, something breaks! The bitter truth is: that both new and changed code will inevitably contain bugs. Use automated tests to help you keep your old code stable.
You can also go one step further and write tests before your actual code. This can give you a whole new perspective on how to approach problems!
Why? Code that is only ever seen by a single programmer in your team is dangerous code: if that person gets sick or leaves your team, no one knows how this piece of your software really works. Additionally, no matter how great and experienced that developer is: it might be that he overlooked something, implementing only the second-best solution.
Why? Pair programming is an ideal tool to share knowledge in a team. Having a junior and a senior developer sitting side-by-side is the best way for the junior to learn. And since teaching is a great way to sharpen your own skills, even the senior can benefit.
Why? Planning for the unlikely makes code unnecessarily complex. Don't try to foresee your project's requirements two years from now - too many things can (and will) change! You would waste time on an overly complex solution for a problem that proves to be different than you thought.
Why? At its core, most programming problems belong to one of only a few general categories. These general problems have already been solved thousands of times - and are well-documented in a couple of "design patterns". Step back from the problem in front of you. You'll be able to apply proven best practices instead of reinventing the wheel.
Why? Git and version control are often underestimated: being proficient with Git has the power to make you a better programmer - and help you build a better codebase!