I’ve been working in the technology industry for the last 16 years. I’ve learned a lot. I wanted to share the lessons I’ve learned over the past 16 years, I figured one for each year seemed nice. It’s harder to make a short list than a long one and I had to cut out some helpful things, perhaps I’ll follow this up with another one with the things that didn’t make the list. This list is pretty applicable to anyone, not just technologists.

Environment is critical.

Allow yourself time to focus and be productive. Don’t check email, phone, twitter, etc. Headphones are really important here, even if you don’t have anything playing through them. I’ve heard others say you need an office, but I’m actually more productive in an open environment. Everyone is different, so figure out what’s right for you.

Work with really smart people.

You’ll learn more faster and be happier.

Be nice.

The world is much smaller than you think and you will people have a way of coming back.

Pace yourself.

Everyone has worked on a project where you killed yourself working crazy hours to release something. Short sprints are sometimes super productive and helpful, but only infrequently. Get yourself on a good pace and routine for you that is sustainable.

Be Healthy.

Go do something active. Play a sport, go hiking, but get away from the computer frequently. You’ll be healthier, happier and better able to be productive. Avoid Caffeine, cigarettes and alcohol.

Never stop learning.

Carve out time to read, apply and experiment with new / new to you technologies, techniques, languages, approaches, etc.

Play.

A team that plays together stays together. Have fun together. Get past a working relationship and into a friendship.

Welcome reviews.

They will make you better. Invite others to review your work including coding reviews. If you are a manager / leader reviews from the people you serve (your reports).  Get past your ego and give yourself an opportunity to get the best feedback you every will. A self review will also pay big dividends.

Learn patience.

You will be happier. It’s amazing how many problems sort themselves out if you let them. This will let you focus on doing things that matter.

Communication is the key to success.

The better you can clearly and effectively communicate the better you will be in any position. Be open, honest and transparent. Share as much as you can.

Keep it simple.

Don’t over engineer things. Don’t pre-optimize things. Figure out the simplest solution and use it.

Good programming begins with a whiteboard and other people.

As smart as you are, you will always do a better job and in less time when you plan before you code. The best way to plan is to review and brainstorm with other people.

Ask good questions.

Ask the right questions and people around you will appreciate and respect you.

Question things.

Change the status quo. Do things others think are impossible. Progress comes from people challenging what is and making it better.

Walk away from it.

When you are stuck on something leave it. Go for a walk, take a nap, or simply change tasks. It’s amazing how many challenges i’ve solved in the shower or in my sleep.

Write things.

You’ll learn a ton more from writing a blog, documentation, code, etc and you’ll be helping others.