Plans are worthless, but planning is everything. Dwight D. Eisenhower
We all have different paths along the long road, and it's often difficult to find the best path. We have different goals and different constraints. Some of us want to specialize in consumer-facing mobile apps; others want to rethink the cryptographical underpinnings of our networking protocols, and still others want to write code to provide a safe driving experience for those of us who plummet down the highway in a metal container going 80 miles an hour.
This is OK; there's tons of room for different passions in the technology field. The constraints in what you can accomplish as a programmer have less to do with availability of meaningful problems and more to do with the resources you have available to accomplish these objectives.
This is why it's critically important for each of us to design our own personal learning plan. It's incredibly easy to say "I want to build mobile apps!" or "I want to develop embedded systems applications!" and never make any progress in these goals.
To start building my plan, I asked myself a few questions:
- What do I enjoy doing?
- What do I want to be significantly better at in 3 months?
- What are resources I could leverage to help accomplish these goals?
Each week, I then set small, achievable goals that will take me a step closer to my goals by creating a 1 ~ 3 item list that starts with "This week I intend to..."
At the end of the week, I reflect on the intentions and set new ones. For intentions I didn't follow through on, I default to not choosing them for next time. Instead, I ask myself:
- Why did I not follow through with that intention?
- What does this failure to follow through mean about my long term goals?
By following this lightweight planning and reflection strategy, I've found it's much easier for me to intentionally improve my skills as a programmer.
Hopefully it'll also help you!
This article was originally posted on Growing Developers.
Have other advice on how to improve your programming skills? Send me your thoughts.
Are you or your team interested in personalized coaching as you learn to program? I'd love to help you design a personal learning plan for your or your team!