Well, this is old news by now. If you track many blogs in the technical world, you are probably aware of the "Become a Better Developer in 6 Months" topic that has been circulating over the last couple of weeks or so. At this point, I imagine just about every tidbit of useful advice has been posted. However, Robert Cain (aka Arcane Code) tagged me from his post about the topic. As he was quick to point out, I owe him. So, I will respond to the tag, but I am going to take a slightly different approach. Rather than listing my specific plan, I am going to cover a few tidbits of advice to keep in mind for successfully becoming a better developer.
This is the first step to becoming better at anything...especially software development. There are far too many developers in the industry that just don't care about striving to be better. Most of them are complacent with "being good enough to get the job done." Before you can improve your development skills, you have to want to improve your development skills. The idea is to get yourself motivated about investing some time in your skills and knowledge...or at least maintain the skills and knowledge that you already possess. Nobody is going to do it for you. Remember that technology changes at an insanely rapid pace. If you want a job that doesn't require spending some time to stay abreast of advancements in the industry, I suggest you start seriously considering a career change right now. It is your responsibility to avoid becoming obsolete. (In case you haven't noticed, I can easily start ranting about this specific point.)
Determine Your Goals for Being a "Better Developer"
So, you have accepted the challenge to better yourself and feel motivated about doing it. Great! However, before you jump ten feet deep into a specific subject, you should take a few steps back to get some perspective regarding what you want to accomplish. Are you looking to learn more about the latest technologies that have been released? Are you interested in brushing up on some of your weaker areas? Are you interested in becoming even more advanced in one of your stronger areas? Are you interested in learning more about the business domain in which you work? Perhaps, it is all of the above. The answer will be different for every developer. Think about what you want to get out of this experience. You also have to consider the amount of time you will be able to commit to the effort. Be reasonable about what you can and cannot achieve with your given schedule. In other words, don't set yourself up for failure, which could ultimately have a negative effect. This isn't to say that you can't aim high. Just make sure the target is within reach.
Tell At Least Two People About Your Goals
Mapping out a strategy to become a better developer is great, but you shouldn't stop there. It is far too easy to set lofty goals that are tossed aside within the first month. If you tell a couple of people about what you intend to do, it can give you that extra push to keep going. It wouldn't be very impressive to confess that you gave up on your goals two months from now when one of those people ask you about your progress. An even better idea is to find a buddy that wants to better himself/herself as well. You can lean on each other for encouragement and exchanging information. This is essentially the same idea as finding a friend for going to the gym.
Evaluate Your Progress and Adjust Accordingly
Don't wait until the sixth month rolls around to evaluate whether you have met your goals of becoming a better developer. Give yourself an honest evaluation at various points in the process. If you don't feel that you have been making the kind of progress that you expected, consider revising or fine-tuning your plan as necessary. Try to avoid locking yourself into a plan as though it is written in stone. For example, let's say that you wanted to commit to studying two hours every day. After a few weeks, it becomes obvious that you were too aggressive and simply don't have that much time. You might change your plan to 8 hours per week rather than a daily commitment. At any rate, you get the idea. Put on your agile hat and take an iterative approach to the process. If it isn't working, make a few changes and evaluate yourself again after you give it a chance.
Keep a Good Thing Going
The sixth month finally arrives and you determine that you have met your goals. Congratulations! But, don't stop now. By this point, you have developed a habitual method for continually improving your skills and adding value to your career. Rather than saying "okay, I am done", I encourage you to keep a good thing going. Set new goals and start the process all over again. If you stick to it, you will see a noticeable difference in your work and ultimately career.