Every programmer wants to be a better one, to receive higher salary and to work on challenging problems. If you want to achieve this you need to have good plan and to work hard on it. Some say that genius is not a gift but persistence, hard work, devotion and curiosity. As a curios person with adventurous spirit I wanted to test it personally.

Why to use plan

Think for this plan as a fitness program. You can go in the gym and do whatever you want for months or even years without great result or goals. Maybe this will be fine for mainstream programmer but if you want to be really good you need to have:

  • short term goals
  • long term goals
  • way to measure your progress
  • working guide or principles

This plan can be also good friend in case of lost motivation or direction. Some companies try to make career path for their stuff but their plans care more on technical, business and soft skills. The emphasis on quality and life balance is not their priority and you are the one responsible for this. No matter of the company, project or technology you need to create a guide with best practices. Invest time now and gain benefits in future.

Prepare a plan for programmer

Your plan should address your personal goals and constraints. If you want to have higher salary or if you want to change your position you need to invest some time in this. On the other hand is good if you know your weak points and improve them.

Good plan should be balanced and take into account all aspects of life: work, family, free time and relax. If you do plan for first time don't try to be too ambitious. This is a mistake that beginners usually do. They like to think big and overload themselves.

My "better programmer" plan

Several years ago I decided to improve my programming skills. I've searched for a while in web without success. This motivates me to start from the beginning. I have some experience in fitness which can teach you on discipline and good organization. So this is the plan which I created:

Prepare for work

  • clean and tidy your work place
  • free yourself from emotions and bad thoughts
  • avoid working tired or depressed

Have a daily ToDo list

  • One thing at a time is best
  • Don't start without daily schedule
  • Set a small daily goals
  • Continue your work from yesterday or finish something small
  • Don't start unplanned task(put them for next days)
  • Avoid multitasking

Focus on current task

  • Nice and silent music can help
  • Work thinking on quality and not on quantity
  • Avoid news, surfing, chatting, mails
  • Remove distractions

At the end of the working day

  • Write ToDo list for tomorrow and what is not completed
  • Plan and prioritize
  • Spend 15 - 30 minutes per day for new ideas and solutions
  • Plan time for brainstorming and thinking out of the box
  • Automate boring tasks
  • Don't work after the limit(the one that you set)
  • Avoid meaningless conversations
  • Trivial and boring tasks leave for the end of the working day

General tips for a good programmers :)

  • Begin with work and not with news, socials, funny videos
  • Do frequent breaks and pauses
  • Work simple, fast, focused and reliable
    • Work with this plan until it become habit
    • Constant search for new tools and improvements of your work
  • Create daily program:
    • start at 10, end 17 ..
    • lunch 12 - 13
    • Mails 10:00 ; 15:00
  • Create weekly program:
    • Monday - planning
    • Tuesday - Sport
    • Friday - overview of the week and plan for next one
  • Work with this plan until it become habit
  • Avoid working night up to late(unless you are a night animal)
  • Avoid working in bad mood
  • Don't work before bed
  • Don't stay too much on a desk
  • Don't Listen to the "Nay Sayers"

I'll be honest with you and I'll confess that after several years with this plan I'm still doing little sins. I'm trying to minimize them but this is difficult sometimes.

Plan measurement and changes

As everything in this world your plan needs to be measured, analyzed, corrected and updated. This is the reason to start with really small plan including only a few rules and principles and later on to evolve it in something more mature. Experiments are more than welcome if you want to test new approaches or what can be changed in order to get different results.

Usually I'm doing review on my plan on monthly basis and big update - quarterly. Sticking to the plan is not easy task and I do some tricks in order to follow it:

  • use it as a desktop wallparer
  • print in a paper on my desk
  • sharing the plan with friend who wants to follow it
  • giving myself breaks from this plan ( several weeks per year)
  • doing small changes in order to 'warm up my motivation'

My results

From personal point of view I can share that now(after 3 - 4 years on this plan):

  • I'm more organized and able to prioritize better
  • I'm more confident when I need to reject new task - reasonably of course
  • Wasting time is decreased a lot
  • I was able to learn 1 new programming language at advanced level and master my old languages
  • My life is more balanced
  • I have more free time
  • Less stress and unmet deadlines
  • Less unhappy bosses

My final advice is if you want to try creating your personal plan is to do it because you really wanted and not just because someone shared that is cool. People think for what they like and they are what they think about. They chase what they like and search ways to accomplish it. My way of becoming better programmer has one step called: programmer plan.

Good luck!

You may be interested in previous post:

Create reference project
Complete guide to create powerful documentation for programmer
Blindfold programming