Programmer’s career path and how to get where you want to go

krystiano

IMG_7803bs

When it comes to career choices, many IT professionals chose to just go with the flow due to so many options out there. We need to choose a programing language, operating system, industry, etc to specialize in. No wonder some just get discouraged while trying to make their next career move. After all it’s our future we’re talking about and we can’t go back in time if we make the wrong choice. Wouldn’t it be nice if someone could just show you how to be in control of your IT career by teaching you where to invest your time to become the most valuable professional in any company? …now there’s a book for that.

I’ve recently read “The Passionate Programmer” by Chad Fowler (@chadfowler). What a great book. So many valuable tips and so entertaining to read. It’s a comforting feeling when you can related to what you’re reading. In his book, Chad writes about how to stay passionate and what actions to take to have a successful career as Software Developer. Following, are some points that I’ve either already put into practice or found interesting. I hope this will be enough to persuade you to read his book:

  • Dig deeper. Don’t just use your tools, understand them. If you use ssh everyday to accomplish one specific task, take few minutes to read the ssh man page. See what else ssh has to offer. How about regex? Do you understand how to use it, or you just keep trying until you get what you want out of it? Same goes for your favorite IDE. You will be way more productive if you know your tools.
  • Practice, practice, practice. Programming is a creative process. Any creative profession requires long hours of practice. I like photography, so I’ll use that as an example. I often take my camera out just to take some practice shots. I almost never leave home without a camera, but I don’t post photos from every photo I take because a lot of them suck really bad. Which to the viewer could mean that I suck as a photographer (I hope it’s not the case). Musicians, athletes, designers, painters, writers, they all spend time practicing. So why would that be different for a programmer? If the only time you write code is at work, then you are practicing on the job. A great way to practice your programming skills is to work on some personal projects. If you have hard time coming up with an idea for a side project, you can instead do some coding exercises which can be found on sites like CodeKata.
  • Finish things. Before you move on to your next task, finish what you’ve started. I personally hate not being able to say “I did it. It’s done.”, after I’ve invested my time into something. Saying “Done” or writing a check mark next to an item on your todo list feels good, doesn’t it?
  • Deadlines are your friend. Without having a time window for your task, you will probably spend way more time on it then you should. Sense of urgency can make you more productive.
  • Make a hit list. If you acknowledge that you’re procrastinating, then write a hit list. Enumerate tasks, then pick one per day and do it. Make sure the tasks are small enough so you actually have time to do them. After that, that’s it, you got no excuses.
  • Be positive. This one made my life so much easier and much more enjoyable, so many times. Stay positive, keep your mind on the present time. That way you will enjoy small victories instead of always focusing on the big goal.
  • Stay away from whiners. Also called chronic complainers, and they can stealthy bring you down before you even realize what hit you. Try to stay away from work conversations about promotions, office politics or gossips. Here’s a tips on how to handle chronic complainers.
  • Make boring exciting again. From time to time we all have some boring tasks on our plates, so we might as well accept it. Whenever you’re working on a dull task, try to go the extra mile and do a bit more then the minimum required, this should make it at least a lit more interesting as it will make you think.
  • Don’t be a yes-man. “Yes” is a positive word, but the ramifications of what you could be committing to by saying it, could potentially be negative. Don’t be afraid to say “No” when your gut tells you so. That way you will avoid unnecessary disappointments.
  • Stay cool. Usually, when the feeling of being overwhelmed kicks in when we start to panic. Try to stay calm when fixing a last minute bug. Also remember that everyone makes mistakes, and we all forget. Even if it currently feels like it, chances are that the mistake you just made will never have any impact on your career.
  • Own it. Try to be independent and have ownership in your current projects. It will automatically make you more passionate about your work. Propose solutions to your leader or manager. Talk to them about the ideas you have, the additional functionality or performance improvements.
  • You are what you explain. I can relate to this one big time. English is my third language. There was a time when my vocabulary was rather limited and I had hard time selling the great ideas I had, during conversations with the director of IT department. I found that if I took the time to write a clear and concise email instead of struggling to explain it to him while standing in the door frame to his office, the chances of him getting excited about it and giving me a “go ahead”, were much grater. Point is, you might have an idea, but if you can’t sell it, then the idea will remain just being an idea. Communication is a skill that can be learned. Personally, I found that a good way to improve communication skills is by writing. Focus on writing clear and concise sentences and eventually you will start talking the same way.
  • Speak their language. This is an extension of the above point, but with regards to “translating” what you do, so that non-IT people can understand the benefits of your work. Say, you wrote an app which once a day goes over the records of all accounts and verifies if a credit card is about to expire. So what? How does that benefit the company or department or your client? You can say that instead of the database admin emailing results of a query to the secretary every morning, he will have an extra 30min a day to work on something else. Learn the business language of your industry. Good way to practice is while you work on a task, take a minute to think about how you would explain the business benefits of what you’re working on.
  • Share your work. Contribute to an open source project or start a new one. This is a great way to practice your programming skills, learn from other contributors and make new connections. By doing so, you will demonstrate that you’re passionate and got a nice set of skills to potentially lead a project.
  • Be a good listener. No matter what’s their title, everyone appreciates a good listener. People like to talk about their achievements and their passions. Appreciate the fact that they want to share something with you, learn from their experiences and feed of their positive vibe.
  • Focus on the process. Everyone probably heard this many times before, how maintenance cost is the biggest chunk of total cost of a project, but never tried to do anything about it. Be nice to your code and it will return the favor. Good process will lead to good code. Bad legacy code will enforce bad process. Take the available time to get it done right. Don’t burn time gold-plating, but make sure you’re satisfied with what you’re committing. Before you write a single line of code, run your architectural design by co-workers. There are (hopefully) more brains then just yours in your team, so rely on them and implement changes suggested in code reviews. Oh, and ideally…TDD everything. TDD positively affects the way you write your code, and makes both production code and test code more maintainable.
  • Seek feedback. This was always a natural thing for me to do. At any job I had, I was always curious about how am I doing from the manager’s, director’s or president’s point of view. Do they think I’m good at what I do? Do they even notice the effort I’m putting in? Do they wish I was better at something they could benefit from the most? Think of people you would like to get feedback from. Then ask those people to honestly answer few questions about yourself and your performance. Do it in writing, so that they can do it whenever they find time for it, this might also yield to more honest answers.
  • Be agile. Agile works well for software projects, but it’s applications are not necessary limited to software. Apply agile approach when planning your career. It’s a fast changing industry, and no one can predict which way it’s going. By being agile with your career, you will be able to better adapt to changes as they come.

Those are just few tips that will help you drive your career as software developer to the destination of your choice. If you do want to be in full control of where you going, then pick up Chad Fowler’s book.


2 Responses to “Programmer’s career path and how to get where you want to go”

Leave a Reply