Step one: you should buy and read "The Passionate Programmer: Creating a Remarkable Career in Software Development". I just finished reading this book in the last winter break; it was probably the best way to start a new year. If you haven't read it (you should!), I found a fairly good summary entry here; having read this book, the next step is doing things. "just being good isn't enough. You have to be doing." It is nothing more important than actually doing it. I would like to go over some of the points that this book covered and planning to execute this year.
Be a generalist. Learn lots of things.
At work, I am working on an Android project right now; in spare time, I am going to learn something new. I don't know what yet, it doesn't even have to be programming related. It could be a business thing, finance, or even cooking; an important point is, be open to learn new things.
Be a specialist.
I am working on an Android app at work, so be a specialist on Android framework. It is going to be a focus of this year. Go deep into the framework, have a deep understanding of its technology. Pick a library and dive into the code. I need to develop a strong understanding of a particular topic. Android itself is still vague; a lesson is that when I am working on something, try to develop a deep understanding of subject; for example, try to look into source code and understand how things actually work.
Learn the business rules of your organization.
I need to pay more attentions to the market we (as a company) are in and know more about its business. Pay more attention to how the business works and be aware of the market I am in. I bought a book that is recommended in the book, The Ten-Day MBA. It is a step forward to understand how businesses run and knowing how companies operate.
Have a mentor.
Mentors are living examples and it is a lot easier to learn by example. I am not quite sure how I can find mentors, but I will start by talking to people that I admire and try to have a regular catch up with people in town that are working on great things.
A good way to learn things is to teach it to others. This is an advantage that comes with mentoring.
Teaching a subject to others is going to be a key point this year. At my company, we do lunch and learn where a developer talks about stuff that he is working on, or tips that they can share with others. It is a great place to start this. And we also plan to have a monthly info exchange night with other development companies in town, sharing lessons and talk about technologies that we are working on. These places will be a great learning experience and it will be a great opportunity to have a deeper understanding of a subject.
"Do not work more than 8 hours a day. But you should work so relentlessly that there is no way that you could continue longer than eight hours."
This year, my big goal is become a opensource contributor. I have not picked a particular project that I would like to contribute to, but I can start by reporting issues, fixing known bugs, or adding tests to existing code. I would like to become more active in opensource community and if I can get a patch accepted in some of the major opensource libraries, that is a big accomplishment :)
"Try to be known outside of your company for your excellence. Write blogs, give presentations at local technical meetings and even better in large conferences."
I will be more active in local tech meetups and I would like to give few talks at local meetups. This blog will also play an important role. It is a place to demonstrate my skills and show expertise on subjects. It is also a place to exercise my writing skills and communication skills, which will be an important skill to develop.
wow, that is a long list of things that I want to do this year. Don't be lazy; remember, "you have to be doing".
This year is going to be a great year. I look forward to this.