Being relatively new to the tech field, I have found myself in a constant state of learning. While my first couple years as a developer were spent learning and producing iOS applications, I have recently begun venturing out beyond the mobile ecosystem into web applications. My first larger project at Stable Kernel pushed me to pick up Javascript. As a developer primarily focused on the Swift language, I had a unique perspective on the language and the development practices geared toward the web. Javascript and Swift contrast in type and object handling, but they surprisingly share similar syntax. Learning Javascript helped me to gain a much better appreciation for each language as a whole than when I’ve looked at languages much more similar structures in the past.

Related: We’re looking for ambitious iOS and web engineers. Learn about what it’s like to become a Stable Kernel engineer.

In the fall of 2016, I began a coding school focused on iOS development, and Swift was the first programming language I dove into. What this means is, I skipped the overwhelming syntax of Objective-C as well as the complex patterns of Java that many of my coworkers and friends have experienced. My coding school background also kept me far away from web development and anything other than the “horror stories” of Javascript. This focus on Swift and the iOS world in general continued though my first tech position at a large corporation. I worked exclusively on iOS projects and became very familiar with the model view controller and the delegation patterns pushed by Apple.

While working in iOS is something I greatly enjoy, I always wanted to try out new languages and platforms. And I knew joining Stable Kernel would be the perfect fit for me since learning new tech stacks is something that is embedded in the culture here. I would read through tutorials and blogs here and there, but my first actual project in Javascript didn’t happen till I joined Stable Kernel. Though I started as an iOS engineer, I quickly started to be come a more well-rounded engineer from learning new frameworks and technologies. This project included backend work in Node.js as well a front end project in Angular. Not only were the frameworks new, but I had to get up to speed on a new IDE. I had spent so much time with the Xcode layout and structure that I would easily get lost in other programing tools. VSCode was the IDE I decided to use for this project because it has many of the features I expect to have while developing. From Debugging to automatic code completion, these features take a little work to get used to when coming from Xcode. Thankfully, they can quickly be picked up with a little help from tutorials and Stack Overflow.

ios developer working on laptop

The most challenging aspects I faced learning Javascript was how similar the syntax is to Swift. There were many times where I would default back to the slightly different ways Swift handles things like variable declarations and scoping blocks. The main thing that saved me hours and hours of debugging was having a linter in place. While using a linter with Swift is helpful, I wouldn’t consider it critical since the strong tying will prevent many simple errors. With Javascript, I believe a linter in needed if you don’t want to spend all your time tracking down that missing semicolon.

Learning a new language can be a difficult challenge. The best way to get started in a new language is to find a project where you can view code in a real-world situation. This can be open sourced or a project you fork and can add features or look around to find structural patterns. Doing this will give you examples of code to look at as well as a headstart to seeing progress. I know I have often become overwhelmed by the amount of work it can take to get a project started from scratch to getting it ready to show off.

Overall I would prefer to continue working with Swift, but working with Javascript was super informative and confidence boosting. If you are looking at jumping into a second language, don’t wait! There will likely be things about the language you won’t enjoy, but you will pick up new techniques and new ideas that might not be as obvious in your chosen language. Even if you only build a greater appreciation for your first language, you will then have the ability to defend your choice and truly appreciate the unique features that language offers.

Amy Roberson

Software Engineer at Stable Kernel

Leave a Reply

Your email address will not be published.