Quantcast
Channel: Thumbtack Engineering
Viewing all articles
Browse latest Browse all 44

On transitioning to Android

$
0
0

I’ve been a Jill of just one trade for my entire career. Just one programming language, that is. I chose JavaScript — or, well — maybe it chose me. I have a certain attachment, like a child to their favorite toy. Is it real or is it Stockholm syndrome? I’m not always sure.

I do know that learning JavaScript in 2012 changed my life in significant ways. Software engineering gave me a certain confidence that I could do hard things. It’s funny that when I think about who I am, JavaScript always comes up. It’s almost like I am not concerned with the problems I am solving but rather the language itself.

So when I had the opportunity to make the switch to Kotlin and do Android development here at Thumbtack, I knew I should take it on and broaden my skill set. Sure, I have worked in various languages over the years as needed, but I never really learned any language other than JavaScript. It was about time for me to learn something new.

But I was anxious about it. I’d invested so much of my career in JavaScript, after all. I learned the frameworks as they changed over the years: jQuery, Backbone, Angular 1, React, even CanJS. I got comfortable with ES6 and the rapid-fire new language features that continued to come after that. And of course, I worked my way through the exhausting ecosystem of tools and the evolution of the browsers.

The anarchy of the web is so much cooler than the seemingly tidy Google-managed ecosystem of Android. What if I just continued to go deeper with Web Development? Starting new felt like so much effort. With all its quirks, prototypes, and kind-of optional semicolons, looking at JavaScript is just so comforting.

Kotlin in contrast just sounded so alien to me. Threads? Types? Nullability? Coroutines? How old is this language anyway? Even the name sounded caustic and uninviting. How would I get through the first few weeks of slogging through and feeling unproductive? I love feeling productive. But most importantly, would this be a step forward or a step backward for my career?

At first, the question came down to the generalist versus specialist career path in which continuing with web was the specialist route and learning Android was the generalist. Recent research discussed in the Harvard Business Review found that being a specialist is favored in fast-changing industries like theoretical math while generalists succeed in slower-paced industries like oil and gas. Tech is definitely a fast-paced industry so specializing seemed to be the better approach. JavaScript it was!

Then the quote from the Pragmatic Programmer surfaced in the back of my mind:

Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.

It helped me realize that I was framing the choice incorrectly. Learning Android would actually deepen my expertise as a client-side engineer because I would be solving the same problems but in a different way using different tools. In fact, I would be gaining broader knowledge within my specialization. I also knew that I needed to get out of my comfort zone. Shortly after, I let my manager know that I was ready and excited to make the change to Android, and I’ll be starting next week!

The decision has been made but the question still remains: What if I like Kotlin better than JavaScript? Who would I be then? 

Stay tuned over the next few weeks to hear how it goes! Follow me on Twitter: @BiancaGando or sign up for Thumbtack Engineering Blog at the top-right of this post for updates!

P.S. Interested in having an existential crisis of your own? Or how about working at a company that encourages career growth and has lots of challenging problems on iOS or Android? We’re hiring!


Viewing all articles
Browse latest Browse all 44

Trending Articles