How To Be A Better Software Developer This Year
February 5, 2014 § Leave a comment
We have to constantly be striving to improve our skills and talents, otherwise those abilities can go to waste and degenerate.
Likewise, just striving to “improve” is not good enough either. We have to have a definite plan for improvement.
In this post, I’ve compiled a list of things you can do this year to improve your skills and make this your best year yet.
#1, Find your biggest weakness
I always try to look for low hanging fruit that I can grab easily when trying to improve anything. Usually, there is some weakness that could easily be corrected which would provide a huge benefit to you, but you’ve just never got around to fixing it.
For example, when I first moved into my new house, my refrigerator was not holding the temperature correctly. The fridge would drop down to a very cold temperature and freeze food pretty often.
This was pretty frustrating, but I tried to ignore the problem, because I was too busy. I kept having to throw out frozen lettuce or other vegetables until one day I decided I had enough and set it on my mind that I would either fix the fridge myself or have it repaired.
It only took me a few hours total worth of work to figure out that a little flap that sent cold air from the freezer to the fridge was broken, and to fix that issue by ordering the right part. The results were immediate and very gratifying. By taking that little bit of time out of my week, I saved myself quite a bit of frustration in the future—not to mention saved myself money in both electricity costs and wasted food.
So, why did it take me so long to fix that fridge?
I was always too busy, and the problem never seemed urgent enough to warrant my attention. (Plus, I didn’t know jack about fridges.)
When I take an inventory of my professional life, I find that I have many “broken fridges” all around my office. Weaknesses or problems that I could very easily fix, but I’ve just been to busy to get around to it.
Perhaps you have the same problem? Have you been struggling through using your IDE, because you didn’t take the afternoon to properly learn the keyboard shortcuts that would save you quite a bit of time?
Perhaps you just haven’t taken the time to organize your computer or workflow, because it hasn’t been enough of a pain to be worth your time—even though you know that you are wasting a huge amount of time by being so unorganized?
Now is a good time to look for that low hanging fruit; the easy to fix weakness you can correct this year, which will pay back big dividends.
If you take the time to look around, I’m sure you’ll find a few.
#2 Learn something new
Because our field changes so rapidly, it is very important to be learning the next thing before you need to rely on the skills to use it.
It isn’t always possible to predict what the next thing will be, but getting into the practice of learning new things will expand your capacity to learn things quickly and give you a much wider perspective of the field in general.
One of the biggest expansions of my abilities as a software developer came when I took a consulting gig leading a team of Java developers after having spent years programming in C# and .NET. I was very reluctant to take the position, because I felt that I would be progressing backwards instead of forwards, but I couldn’t have been more wrong.
I already knew some Java, but I hadn’t really studied the language and I didn’t know much about the environment and tools Java developers use.
This experience forced me to grow and really expanded my abilities, not just in Java, but in C# as well, because it forced me to look at things from a different perspective.
It is really easy to get stuck in a rut and stick with what we already know, but sometimes you can get a huge benefit by getting a bit out of your comfort zone and learning something completely new.
Try learning a new programming language this year or an entire new programming environment. Try your hand at mobile development, if you’ve never done it before, or learn something else that will challenge you and expand your horizons.
#3 Make new friends
Every year I talk to hundreds of software developers through email or at conferences and code camps, but my software developer life wasn’t always so social.
I didn’t really see the point in reaching out and being part of the community; after all, I was a software developer, my job is to write code, isn’t it?
But, all of us have very limited worlds, myself included. We need the experiences and influences of others to expand our viewpoints and see things that we don’t have the capabilities to see on our own.
Think about it this way. How far would you have gotten in learning any pursuit if you were completely self-taught and couldn’t rely on any books, conversations, or search engines to expand your knowledge? Probably not very far at all.
It is important to reach out and talk to other software developers—and not just your coworkers—so that you get a mixing of ideas and viewpoints which will force you to grow.
Doing this may be as simple as starting your own blog to share your experiences and interact with others who comment on or read your posts.
You can also join a user group or attend a code camp or conference, which will give you ample opportunities to meet new people and exchange ideas.
There is also a huge emotional reward in giving back. If you have some experience that you can share with others, doing so is likely to make you feel really good about yourself and provide a benefit to someone who could use your help.
If you are feeling down in the dumps or depressed, one instant cure is to do something nice for someone else. Is there a developer you know that could use your help?
#4 Set a course
If you don’t know where you are headed in your career, there is no better time to figure it out than now.
So many developers drift aimlessly through their careers without thinking about where they want to be and what they want to become.
It is not enough to say that you want to become a good software developer or programmer—you need to set a definite direction that you are progressing towards.
With a clear goal in mind, your mind will employ the power of your subconscious mind to help you achieve that goal. Without one, you’ll just float adrift never reaching any real destination.
(By the way, this is one of the most powerful realizations you can discover in life. Once you learn to harness the power of your subconscious mind, you’ll be amazed at what you can accomplish. The book that explains it better than I can here, is Psycho-Cybernetics, I highly recommend it. One of those “must read” books.)
This doesn’t mean you have to chart out your life and decide where you will be in 20 years, but it does mean that you should at least have a plan of what you intend to accomplish by the end of this year and at least have some kind of destination out a bit further than that.
It is really worth taking that time to sit down and think about what you want to accomplish. Don’t even worry about how you will accomplish it. It is much more important to focus on the what. The how will come automatically once you tackle the hard problem of what.
Make this your best year yet!
Hopefully this post gave you some ideas you can use to help you to move the ball forward this year and really move towards some clear and definite goals.
One of my goals this year is to finish building my course on How to Market Yourself as a Software Developer. I plan to include topics like the one in this post to help you chart a definite plan to market your skills and really boost your career.
It is only available for limited pre-order now while I am getting together a group of early adopters that will help me shape the rest of this course, but if you want to know when it will be released or you are just interested in more posts and software developer career advice, like this one, sign up here and I’ll keep you updated.
What are you doing this year to become a better software developer?