Sunday, January 15, 2006

Becoming a Better Geek - A List of New Year Resolutions

Okay, so I'm a little late with my resolutions, that's just because it's been a busy new year. Now that things have settled down a bit, I'm starting sift through my notes, reflect back on what went right, and what went wrong in 2005. 2005 was a disruptive year, I left not 1, not 2, but 3 different jobs. Never in my life have things felt so unstable, so insecure, and for a short while, I thought I might have to move to Nevada for a contract(fortunately, that wasn't the case). On the plus side, every job I left meant higher pay at the next one, and it has brought me closer to my real industry value. I still have a tendancy to undersell myself professionally, but that's partly because a small part of me refuses to believe that people will actually pay me to do what I'd likely to do for far less money if it meant doing something outside of the web.

If 2005 was a disruptive year, 2006 is definitely a rebuilding year. A new apartment, a new job, and a far greater sense of stability with much greater pay than ever before means that I can focus on creating more long-term value within myself. I definitely have my personal resolutions(start running again, cook more, Smart Home hacking, etc), but the goal with this posting is to share more professional minded goals. With that in mind, here's the short list:

1. Improved Communication Skills. As this technology stuff becomes more and more old hat, and tools continually get easier to learn and implement, the hard part seems to be focusing on improving my communication skills and applying them to my career. Primarily, I'm thinking in terms of group communication and presentations, having to talk intelligently in front of more than 5-10 people, and having to communicate in meaningful, or instructive ways. To that end, I've already joined a local Toastmasters group, and I can already see the benefits. Public speaking, or presentations in general, are one of the most difficult areas one has to improve, and I'd wager that a big reason for that is that most people have limited opportunity to practice. Toastmasters, while some may think of it as a perverse, self-obsessed, baby-boomer created self-improvement program, it does offers a lot of opportunity talking in front of groups, and a captive audience that is willing, nay, committed, to offering constructive feedback. I've only been to one session, but I can see it becoming slightly addictive as a research tool (you have to know what you're talking about) for play or work. In fact, I'm already scribing quite a few mini presentations.

2. Become Better Known as an Expert in My Field. I work in web development. Some may tie the title Information Architecture, Interaction Designer, or User Experience Developer to a lot of I do, but in my mind, a lot of those titles sound pretentious (if I hear the word Architect to describe one more field outside of those who actually design large buildings, my head is going to explode). If there's any title that I'm most comfortable with (outside of web developer), it would most likely be Interaction Designer. It fits within my interests, and can be applied to a wide variety of fields. In addition, I already work with, and know personally, quite a few top notch Information Architects, and I really have very little interest in competing for their positions. Plus, if the web of the late nineties and first few years of this century needed I/A's to organize the web's content, the popularization of AJAX, the Read/Write web, and the web as a platform surely needs people highly skilled in Interaction Design. To that end, I'm making sure I participate more, both in the online IxD and I/A communities, as well as professionally, at conferences and seminars. I'm also working with others, and have plans to create a series of workshops in the DC area, which I hope to be announcing in the coming months.

3. Learn Another Scripting Language. I had to learn J2EE (reluctantly so) for an old employer when our engineer left, and we still had a CMS to build, maintain, and enhance. I never much enjoyed it, and thus was never much good at it. I definitely dug on the UML diagramming, creating wireframes, abstracting layers, and generally building a technology product that could be reused and sold. But Java, and Struts, and always seemed a bit verbose, and very time consuming. Still, I love designing and building technology tools, products, and services, even if it's just for myself. That's why, when Ruby on Rails was released as an open source, rapid application development framework based on a Struts inspired MVC model, I dug right in. I'm now fairly well versed in Ruby, and Rails, and I plan to continue to develop in it as my primary tool (at least 1 major project planned right now). Still, it can't hurt to pick up another langauge, and since I'm dropping compiled languages (or, JIT ones), and less than ideal object oriented ones, Python seems a good backup. I'm choosing Python because it seems to have a sizable community, is more object oriented than PHP, has a couple of interesting frameworks and projects already underway, and seems to double as a nice "glue" language for system administrators, linux hackers, and Mac enthusiasts.

4. Contribute to an Open Source Project. As I left a company building in Java, and went to focus my professional skills on front-end developmont (CSS/XHTML/JavaScript), I gained a much clearer understanding of the benefits of open source. It's gotten to the point where other than a few exceptions, it's increasingly difficult to see myself ever going back to using proprietary, closed source applications. This phenomena is most pronounced when it comes to choosing a programming language. Java? No thanks. .Net, uh-uh. I want a quick, rapid development or prototyping environment that will allow me to focus on ideas, and that won't have me tied to a specific platform; one that will be supported by the community long after some company invents the Next Best Thing and stops supporting it. My first project will likely be an web RSS scraper built for myself with Python, XPath, and HTML Tidy to gather local events. After that, I'm going to start moving to Visio mockups & storyboards of Ajax interactions, and moving to develop, and freely release those interfaces to the community. Possibly by the end of the year moving towards wireframing and architecting interfaces for new Linux applications0.

5. Go Back to School. Due to family committments, as well as a less than ideal vision of what I wanted to do long-term, I never finished college. It still bugs me to this day. Fortunately, I'm in a position with a great new employer, where they are willing to help pay for me to go back to school. I'm also fortunate that in that I'm single, without children, with little to no debt, so I can readily afford the time to go back to school. My only difficulty is that I love learning, and I'd ideally like to go back for a double major in Economics and either, Human Computer Interaction, or Library Sciences. Of course, topping that off with an MBA would be grand, but as they say, one thing at a time. I would think a double major in Economics and Library Sciences would be fascinating, but my career is point more towards HCI, long-term.

p.s. #6 is to get back on a Mac! It's hard to be a professonal when you're working with a toy!

A Quick Pointer to a Great Music Writer

If you're looking for a passionate, interesting, wordy, and all around great blog on music, you could do a lot worse than this guy. Check out his list of the best music of 2005, and read up and listen to his compiled Christmas music from the last two years. This guy is a surefire way to find great new tunes.

Chris was also one of the people who introduced me to TWAS, simply some of the best music writing on the web.