Here are my goals for 2011. I am making them public to increase my motivation. Having them visible to everyone makes me more committed to them than when I was keeping them private. It will also leave a trace so I can make a retrospection at the end of the year.
So here they are in no particular order:
Start A Blog And Keep It Alive
I already started the blog. That was the easy part. Now hopefully I will keep on posting through the year and after. I aim to post a least once a week.
Learn Ruby and Rails
The pragmatic programmers wrote that we should learn at least one language a year. For the past couple of years I have been pretty lazy on this. I tried Ruby a little bit last year and I liked it, but I did not pushed enough. This year I want to really give Ruby a go. I want to use it to build a few breakable toys and then give Rails a try. Once I’ll start to feel good programming in Ruby with Rails, I should try to pick an open source project and start coding on a real Rail application.
Start Doing Continuous Integration
I have read a lot about continuous integration, but I have never gave it a try. This kind of practice is not encourage where I work. But this is not an excuse, anyway even at work it has begun to change.
I try to use TDD as much as I can, and I want to push on this more this year. I want to set up a Hudson server at home and explore all I can do with it. Automate the unit tests, learn to automate the deployment of the build, check the code coverage, validate that the coding standard are respected…
Read 20 Technical Books
This should be an easy one. I love to read and I am trying hard to learn new things and open my mind to new ideas. My Shelfari bookshelf already have 32 books I want to read. And every books I read has more recommendations. I add them to my list faster then I can read them.
Experiment With a NoSQL Database
For my storage solutions, I rely only on relational databases. Since I have not try any NoSQL solution if I come across a problem where it would be the best solution I probably won’t even think about it. I have read a little bit about CouchDB, but I need need to actually start playing with it or another NoSQL database.
Become a Zend Certified Engineer
I will keep my reasons for getting the Zend certification for another post, but I think it’s about time I do it. And I want to do it early this year. I aim at getting it for the end of February.
I have already begin my preparation. I started reading the PHP manual and I want to read the Zend PHP 5 Certification Study Guide from PHP Architect. I also installed the PhpRiot iPhone app and I want to do as many practice tests as possible. I am aware that most of this material is for the PHP 5 certification, but most of it is still relevant to the PHP 5.3 certification.
Learn To Use Vim Effectively
Vim is a tool I use daily. However, I use it like any other editor. I use the arrow key to navigate, I use the mouse, use only one buffer at the time… I know Vim can be way more powerful than this. So this year I will learn to use many more of it’s functionalities.
I already started with this. I found some Kata that I practice every day. I installed Vrapper to emulate Vim in Eclipse. And whenever I edit a file, I try to be aware of how I use Vim functionalities. I already see a difference in my editing, and some of this new knowledge of Vim commands is starting to make me more productive. The downside of this is that I’m beginning to miss Vim when I work in other editors, especially for navigation.
Learn The Basics Of Web Design
Web design is one of my greatest weakness. As a web developer I know the basics of css. If someone gives me a Photoshop of a web page to reproduce in html I will make it. I might struggle with some part, especially making it work in IE. But in the end the result should look like what I was asked to do.
But if someone ask me to design a web page it will be ugly. I’m a back developer, so the page will be functional. Everything should work as expected, but the result will be scary. For a long time I just blame this on a lack of artistic talent, but it’s not an excuse. I am working on web pages everyday. I should at least know the basic rules about fonts. I should be able to differentiate a good design from a bad one. Understand why a design is good.
Knowledge of the basics should help me avoid the common mistakes. It will not give me talent, but at least if I have to make a web page from scratch, it should at least be presentable.
This Will Be a Busy Year
I have given myself quite a few goals for this year, but I think I should be able to meet them all. I have to be careful though. Since I decided on those goals, I have a tendency to tackle them all immediately. If I do this, I set myself for a big failure. If I attack them one or two at the time I will get great results.
Hopefully, at the end of 2011, I will be a better developer than I am now by far. I am aware of my many weakness and I want to work hard on them. So next year I will give a shot at other weaknesses.