Sink or Swim and Taking the Plunge

When I finished college in 2010, I had already secured a job with Cartegraph by the time I graduated. Fresh off a COBOL internship with another company, working with C# and .NET 4 was a huge breath of fresh air.

When I first started, I was working on a project that would eventually allow us to create platform applications based on UML diagrams. It was on this project that I finally realized that I actually was a competent programmer and was eventually able to overcome the imposter syndrome that had my anxiety peaking as graduation approached.

About a year later, Cartegraph started development of their new flagship web application. We began constructing the server in ASP.NET MVC 3, and things began scaling quickly. I eventually found my way to the client-side, as the web-app had grown into a single-page web application, and we needed a more dynamic client with each passing day. Outside of work, I studied JavaScript, REST APIs, client-side MV* frameworks… everything I needed to become the best web developer I could be.

The topic of HTML5 vs. native for mobile applications came up probably a dozen times. Being a web developer, I had become accustomed to designing UIs in HTML/CSS. I had worked with Android’s XML based layouts, but it never felt as nice as using CSS. Combine that with the ability to work cross-platform, I favored HTML5 over native despite the performance costs. Eventually, Cartegraph decided on Xamarin’s MonoTouch to developer their iPad application. Because I had done some prototypes and other previous work in HTML5, I was selected as a programmer for this new mobile team. It was here that I became familiar with the Cocoa Touch APIs and iOS programming in general. It got me peeking at Apple’s developer documentation (which, I might add, is considerably nicer than Microsoft’s documentation). Eventually, I was becoming curious about writing in Objective-C.

“Objective-C? Eww…”

-Everyone who’s never used Objective-C.

Almost everyone that I’ve talked to about Objective-C cringes when I even utter its name. Those of us who have actually taken the time to look past the square brackets ([ ]) know that the language isn’t as scary as it looks. I knew that if thousands of other developers were able to grasp this language and be putting their apps in the app store, then so could I.

At the time of this writing, I don’t even own an iOS device. I had switched to a Macbook Air and OS X after 15 years on Windows, and was originally intending to write apps for OS X after having fallen in love with it. I began studying Objective-C in my spare time, while continuing to familiarize myself with Cocoa Touch classes working with MonoTouch at Cartegraph. In the meantime, I had come across an opportunity working with Objective-C for a local company and was interested in interviewing. It was like a perfect storm was brewing.

I like interviewing for jobs. It’s not a scary thing for me. I’ve interviewed for jobs that I knew I probably wouldn’t take. It’s good practice, and it’s a good way to find out what other companies are doing. My interview was the most fun I’d ever had in a job interview, and I was very interested in taking on the challenge of completely switching development stacks, especially since I was already hoping to learn Objective-C on my personal time. It wasn’t an easy decision, but I eventually decided that it was time for a change in my life.

Getting yourself out of your comfort zone is almost always sure way to grow yourself as a person. For me, this means a new job…with a new company…in a new programming language…on a new platform. I know that I can do this, and I’m looking forward to all of the new stuff I’ll get to learn. I’m taking the plunge, and it feels good.

Update: After 5 months with the new company, I decided to return to Cartegraph and web development. I enjoy native mobile application development, but JavaScript is where I belong, and that’s okay. I may never have found out if not for taking the chance.

 
1
Kudos
 
1
Kudos

Now read this

Simulate Mobile Network Latency, Delay, and Packet Loss in OS X and iOS Simulator

Recently, our team at work has been running into very intermittent issues with the sync process for our applications. Our users are sometimes working in rural areas, on mobile data networks, and we have reason to believe that our issues... Continue →