As I begin 2009, I've been pondering quite a bit about which direction I'd like to take my career in. At the age of 40, I'm certainly not a spring chicken but I do feel that I'm at a great point in my life where I have a tremendous amount of experience while still feeling the fire to learn more. For the last 19 years or so, my career has revolved around development. Basically, I've been a coder most of my career and apart from some short stints in a business development role, I've really focused on the development side of things. This isn't a bad thing by any means and I think I've been fairly successful at it. I do feel, though, that it's time to expand a bit and 2009 will be the year to do it.
Product Management
I want to get more involved in product management. Taking a product from inception to production is REALLY challenging. I'm not talking about coding it. I'm talking about overseeing the process of taking an idea and helping drive it to market. That means more interaction with users, marketing, biz dev, PR and media.
The fact that I have a strong technology background, in my opinion, will help by being able to understand the bottlenecks in the process and helping any team that I work with overcome those hurdles.
My new boss, Nick Nguyen, has already started mentoring me on this and I believe he'll be able to teach me quite a bit.
Technology
My bread-and-butter has always been my technical side and I can't ever see that going away (although diminishing in importance slightly).
Firefox Add-ons
Apart from a focus on product management, I think that becoming “Mark Finkle” knowledgeable in add-on development will be the single most important goal for me in 2009. It's such an important part of my day-to-day and will go a long way in helping me support the add-ons community. Having a solid understanding of the development process will help me do a better job of being a product manager in the future.
ColdFusion
For the last 10 years, I've been knee deep in ColdFusion and, if I say so myself, one of its biggest supporters and flag-wavers.
While I love ColdFusion and think it's an amazingly powerful application server, I also feel it's time for me to explore other server-side options. When you look at the landscape, there's an abundance of very hot languages and frameworks which are not only feature-rich but monetarily appealing. The demand for Python, Ruby & PHP skills, especially when coupled with Django, Rails/Merb or CakePHP, has grown steadily and the need to diversify is pretty obvious. There's still a great demand for ColdFusion developers but I think to keep yourself fresh, you need to try new things (even if they're more painful than what you're used to).
With Mozilla heavily vested in PHP & CakePHP, chances are that I'll go that route although the other two server technologies are very appealing.
jQuery & JavaScript
I think many of my blog readers know that I'm a member of the jQuery Project Team and it's something that I'm very proud to be a part of. The project has skyrocketed in part to the amazing team that we have and I firmly expect to continue to push the jQuery message into 2009.
Just before I started using jQuery, I was a server-side developer who wanted to expand in to JavaScript and client-side development mainly because of Ajax. So I bought a book and started hacking at JavaScript, DOM and XHR. Shortly after I discovered jQuery and it was like the sea parted and I saw the road to the client-side. I jumped onto the jQuery train and never looked back.
With that said, of recent, I've felt a bit of hole in me. Over the last 2 years, I've met some amazingly smart JavaScript developers and read some really awesome JavaScript articles and it hit me how much I want to learn more about the JavaScript language. Mind you, I'm not interested in being the next John Resig or Peter Higgins but I do want to develop a much stronger understanding of the techniques and patterns that make libraries such as jQuery, Dojo, YUI & MooTools so helpful.
The great thing is that my time with jQuery has really helped me understand so key concepts of the JS language but I also know there are techniques that I am not fluent in and I think understanding them will help me dramatically improve my contributions to the project & community as well as my own development work. Does this mean I'll stop using jQuery? No freaking way! jQuery continues to be a God-send and I couldn't picture having to hand-code all of the script that jQuery provides in one small method call. And if I want to learn how to do it, I have no better teacher than John Resig himself, whom I can call anytime and ask him for help. In other words, jQuery FTW!
What it does mean is that I will start practicing straight JavaScript a lot more and going back to the basics to make sure I understand things clearly. I've already started by cracking open Christian Heilmann's book “Beginning JavaScript with DOM Scripting and Ajax”. I'm planning on following that book up with the following:
- Pro JavaScript Techniques by John Resig
- Pro JavaScript Design Patterns by Dustin Diaz
- Object-Oriented JavaScript by Stoyan Stefanov
I'll also be hitting up the YUI theatre since they have some really awesome videos by Eric Miraglia & Douglas Crockford.
Getting a better grasp of JavaScript will also help me in achieving my goal of knowing the Mozilla add-on platform at the guru level.
CSS
One of my biggest weaknesses is my lack of advanced understanding of CSS techniques. I can certainly use CSS and create a basic stylesheet but there are so many dimensions to CSS which I don't know. If I could be half as talented in CSS as Bradley Sepos or Scott Jehl, I'd be happy and I think that achieving that isn't unattainable.
I've bought a couple of books including a video tutorial by Eric Myers and yep Sitepoint books, all highly recommended.
Writing
One area that I've been falling behind on is writing more articles and blog posts for my personal blog as well as Ajaxian. Ajaxian is extremely important as it allows me to share techniques and code that I find useful, in the hopes the community will also find it beneficial. It's a great soundboard and I really need to dedicate some time to it.
The AMO blog is another site that I plan on giving more attention to especially as I become more proficient in add-on development.
Finally, I want to contribute more content to LearningjQuery.com. My good friend Karl Swedberg has done a great job building that site and I need to do a better job of supporting him.
Next Steps
The next logical step for me is to decide how to prioritize what I learn. The product management side of things is easy since it'll be part of my daily work and I have good mentors including Basil Hashem and Nick Nguyen.
Learning another server-side language may ultimately fall to my lowest priority simply because I see a greater value proposition by becoming strong in add-on development and JavaScript.
The nice thing about my job is that I can expand into a non-technology role (at least not coding) while still being able to dabble in technology.
I have some planning to do in the next week or so so I can set a workable schedule.