August 12, 2007 at 08:03 MDT
I am chiming in late on this meme, but since James Kovacs and Jeff Palermo both tagged me I thought it wise to share my strategy for becoming a better developer over the next 6 months.
I have a lot of strategies that I try to follow in both my personal and professional life that I have found have allowed me to experience what, thus far, has been a very rewarding and enjoyable career.
God's Guidance. First and foremost I have and will continue to ensure to ask for God's guidance with regard to all of the decisions I make with regards to my career. I want to ensure that whatever I choose to pursue is something that allows me to open up new doors for sharing with other people about the wonders of God's grace.
Humility. Being honest about my abilities has always let me keep in the forefront of my mind where my strengths and weaknesses lie with regards to software. Over the next 6 months I am going to continue to ensure that areas that I feel weak in 'that are applicable to the current projects that I am working on' are the ones that I will try to develop further. Learning to stay focused and not get pulled in 20 different directions will allow people to assimilate new information much quicker. Identifying what is currently applicable for your learning will prevent the overwhelming feeling that can sometimes follow the release of new cool toys. It's not that I don't want to be aware of all of the new stuff. I just don't want to waste my time on something that I can't currently prove out in a production environment.
Publishing Code. Over the next 6 months I plan to release a lot of source code examples that I think will serve as good reference materials for people who are wanting to get their hands on some stuff that demonstrates practically what it means to apply a lot of the techniques and strategies that have come out of the Agile development movement. The reason for doing this is twofold. I can start to share more with the community in a medium that works for me better than blog posts. I have been fairly lax at answering people's emails as of late and I think that using this means of publishing will allow me to keep on my toes as some of the problems I am posed with are fairly interesting and would serve as good ways for me to sharpen my sword.
Networking. This year has been an amazing year for me getting out there and meeting other like minded developers out of the scene that I am comfortable with. Being able to form relationships with people that I respect as developers provides me with a group of people who can potentially serve as sounding boards for ideas that I want to implement as well as mentors from who I can learn from. I have always felt that if you surround yourself by people who challenge your assumptions and truly make you think, that it elevates the level to which you can take your career.
Teaching. Having the opportunity to teach courses this year has blessed our family in ways that I could not have imagined. Being able to spend a week with a new group of people every month and be a source of advanced training material has been a blast. I learn so much about development when I am teaching a Nothin But .Net course. No 2 courses have been the same, and the codebases that come out of each class vary greatly. The dynamic nature of the classes allows me to take the students wherever they want to go, which can be an interesting and challenging experience. Being able to pick up tricks and tidbits along the way from different sets of students has been great. For me, the reason I love teaching is that at the end of each week my brain is filled with new ideas that just start flowing as the developer muscles are contracting over the course of the week. The 3 weeks following every course allow me to test out and apply the ideas that were birthed during each successive course. I truly feel that I get just as much out of teaching the classes as I hope the students do from attending. My plan over the next 6 months is to branch out with regards to training and bring on board some kick butt collaborators who are experts in their own areas and continue to provide top notch, practical development training.
Learning from the past. One of the things I always say is that if I can't look back at code I have written a couple of months ago and not see ways that I could improve it, I have not done any real growing since. It's not to say that the way the code was written was not good. It's that I should not be content to just rinse and repeat my knowledge the exact same way from project to project. One of the strategies that has allowed me to keep my job fresh is to truly always try and think of new ways to solve what are sometimes that same problem. This keeps your mind on its toes and allows you to exercise the creative part of your development brain. Sure, it would be easy to take a 'model' project and extract the code and place it in as the base for a new project; but where would the learning be.
Passion. This is the last but by no means least point that I am going to make. When I was younger my dad told me 'I don't care if you want to be a garbage man, if you choose it as a profession and that is what you want to do, I want to you work as hard as you can and be the best garbage man that you can be.' Those words have resonated with me throughout my career life more than my dad knows. My company slogan is : Develop with Passion. Passion being, I feel, the main ingredient that allows me to continually pursue excellence in this field I have chosen for my career. I truly love the opportunity of being a software developer. Being able to craft solutions from the ground up and be a mentor and student of others around me is an amazing thing. Whenever I am on a mentorship engagement my first and foremost plan is to let the passion I have for my job shine through and potentially infect other developers!! The greatest blessing for me as a developer is when I am told that I have positively impacted somebody's career path and have got them fired up for pursuing the future with intensity and joy.
You will notice that none of the above items are overly technical things. This is because, the technical side always takes care of itself when software is something that you love to do. How am I going to improve as a developer over the next 6 months? By continuing to pursue a path that I have been on for the last 7 years. A path that I feel blessed to have started down and one that ,for the meanwhile, is where I feel I am meant to be. Each day I am going to strive to sharpen the sword and not feel satisfied with prior accomplishments no matter how great they might have been. I am going to always remember that there will always be someone who knows more than me, makes more than me, etc. So I am not going to get hung up on becoming like someone else. I am going to live out my development life, wearing my passion on my sleeve and praying that each day I get the opportunity to impact someone both professionally and personally, and be thankful for the opportunity to work in a job that is both lucrative and challenging.