Embracing change and choosing your identity
My switch from PHP to Ruby as primary language
About 3 years ago I started coding the first version of FlipGive, an online fundraising platform. It was written in PHP. Why? Because for the 7 years prior that is the language I had primarily been creating websites in and it was what I felt most comfortable with. I was using CakePHP, an MVC framework that even at the time was feeling a little out of date; getting passed by the likes of Symfony and newcomer on the block, Laraval.
We hired a new developer with a background in Ruby on Rails, but promised him that CakePHP too was following the MVC methodology and that he should feel right at home. It was a few weeks later, after getting frustrated and struggling with the framework that he came to the team with the suggestion that we make the switch to Rails.
The decision ended up coming down to me, given that I had started the PHP version of the product and that I would be the one needing to start from scratch so to say, and learn a new language and framework. I decided that given some frustration that I also had with our current development environment, that I was interested in learning Ruby myself, and that Rails seemed to have a very vibrant and growing community behind it that it was as good a time as ever to make the switch.
The change wasn't without challenges, but I feel that not only am I a better developer now, but also that I am creating software of much higher quality than I have previously in my career.
Software developer, not PHP or Ruby developer
Up until that point even though I might have called myself a web developer some of the time, I tended to refer to myself as a PHP developer. This change to a new language and new framework sort of made me rethink what it means to apply a label so narrow to myself as a developer of a specific language.
What it means to be a programmer (or software developer) isn't the knowledge of a specific language or framework, but rather the ability to adapt, learn, and use the correct tools for the job.
Yes it's true that everyone has languages and areas they are stronger in or have more experience in, but that shouldn't dictate who you are or even where you're going.
I embraced the change of switching from PHP to Ruby and faced the challenge head on. I enjoy programming more now than I have in my career and I think a large part of that comes down to being challenged and feeling that I am growing my skills.
I don't think that means you should jump ship at every opportunity that presents itself, or every time a trendy new language or framework appears on the stage, but rather that you evaluate new options with an open mind and try to figure out where its strengths and weaknesses are.