Note: I decided to write down my goals for 2015. My previous blog post "My Goals for 2015 - Part 1" explains my reasoning why. In short, I want to feel accountable in a public manner, as well as be able to measure how much I got done at the end of 2015. It should be interesting. You can also read Part 2 if that sounds fun to you. Now let's continue with this list!

Goal #3 - Learn a new programming language, really well

As a software engineer, I try to keep my ear to the ground to follow the trends and see where my career should travel to next. It's how I was able to jump on to the Ruby and Ruby on Rails waves back in 2007 that led me on this strange journey to where I am now.

The origins of most of what I have now, from living in New York City and California to the string of well-paid jobs I've had, can be pinpointed to a day when I was with my mom at Borders - remember those? - in Mayagüez, Puerto Rico and she offered to buy me a book. At the time, I was doing internal PHP programming for a small electronics recycling plant and wanted to move to the United States, where I would have the chance to earn more money and work on more interesting, public-facing websites. I had heard about this thing called "Ruby on Rails" so the book I chose that day was the first edition of "Agile Web Development with Rails". I fell in love and practiced every day, eventually landing my first Rails job with an opportunity to move to the U.S.

I remember back to that period with fondness, because in the past few years, I have not made a concerted effort to really learn anything new like I did with Ruby on Rails almost eight years ago. It's almost like I forgot how it is to learn something really well like that. Sure, I've dabbled with a few new programming languages and frameworks, but nothing that really stuck, because I never did anything serious. Admittedly, there was a long period of time where I was burned out from programming and focused on other things like learning Japanese. But now I feel like I'm ready to take another deep dive into something new and stick with it for good.

My goal for this is simple: pick one programming language and learn it really well. At the very least, my outcome is to learn it well enough to use it professionally, which will help me grow my freelance business and even write more blog posts - not coincidentally two of my other goals for the year. My inclination at the time is the learn Google Go really well, as it's been growing at a steady pace in recent months and I can see myself using it for a lot of different tasks and projects I'd like to do. It seems to be versatile enough to be worth learning. There's a few others that I might gravitate towards instead if they are more in alignment with other goals.

To accomplish this goal, I'm going back to what I did when I learned Rails. First off, I need to learn something every single day, no matter how small, and practice what I've learned as much as I can in some sort of context. Once I start learning the ins and outs of the language, I'll start applying it to a real-world problem that I have. From there, it's all about iteration - learning more, doing more projects, and always trying getting better. It's all about continuous improvement every single day, not just with this, but with everything I attempt to do.

Tomorrow I'm planning on writing a longer post about Goal #4: Keep losing weight and staying healthy. I'm sure I have a lot to say on this one, as I'm really proud of the progress I've made despite many setbacks. Make sure to read it!