How to Master a New Programming Language

The ability to learn and apply a new programming language is a must-have skill for any well-rounded developer. But how does one go about mastering this ability?

Written by Brendan Meyer
Published on Sep. 10, 2020
How to Master a New Programming Language
Brand Studio Logo
programming language
shutterstock

The ability to learn and apply a new programming language is a must-have skill for any well-rounded developer. But how does one go about mastering this ability?

Whether fresh out of a coding bootcamp or a decades-long software veteran, all it takes is knowing the fundamentals of programming, said Vanessa Esterbrook, an application operations analyst at Farmer’s Fridge, a startup that makes healthy vending machines in Chicago.

“Think of any language you use. At the end, it’s just logic,” Esterbrook said. “Understanding how programming works, using resources like Google, and asking the right questions are all it takes to jump into a new language and start working on a project that has been around for awhile.”

Esterbrook shared with Built In her experiences mastering new languages, detailing the resources and best practices she employs — as well as her toughest challenges. According to Esterbrook, step one of the process is getting a strong grasp on the codebase and the architecture of the app.

 

Vanessa Esterbrook
Application Operations Analyst • Farmer's Fridge

What is the most recent programming language you learned, and how long did it take you to learn it?

After my bootcamp, I was accepted into an apprenticeship program where I was placed on a team with a legacy project and had to learn Ruby on Rails with React on the front end. There was no prep time to learn this stack, I just had to jump in and learn it as I worked on new features. I learned Python, C# and MEAN through my bootcamp. 

With each stack, I was only really given about two and half weeks to learn it, and then I was tested in each stack and then worked on a group project. For this programming language, after doing some research, it became apparent that if you learned Angular, you could easily learn React. There was never a measurable length of time for me to learn it.

 

What was the most impactful thing you did to learn this new language quickly?

Reading through the codebase and understanding the architecture of the app was impactful because from there, I watched videos, read through tutorials and learned the best practices. I was able to pick up a ticket, look for other resources out there that were closely related to the existing and new features I was building and then implement them in the way I knew how. The most impactful thing for me was to keep trying and asking questions. 

 

 

What processes or tools do you use to identify and learn from mistakes in your code? 

I’ve noticed there are two types of mistakes. There are mistakes that cause compilation failures, which are easily identifiable by tracing it down in the stack and adding more logging statements so I can see where the code is failing. Then there are the mistakes where there’s a flaw in the logic, which can be harder to identify. Flaws in logic don’t throw errors; it’s just not working as expected. For these instances, running through the code using an example (like an example input and going through the statements and seeing what the output will be), and identifying edge cases and repeating the process for edge cases and error scenarios can help identify them. The best approach to writing a new feature is to have a test plan in place: automated unit tests should cover standard scenarios, edge cases and error cases. This is crucial and should be used whenever possible.

 

How do you continue to build upon your new programming skills once you’re proficient? 

The only way to build upon new programming skills is to continue building. I didn’t just learn a new language and now know it forever. I have to practice every day. But the most important tool I use is my amazing team. Pair programming and code reviews can really help me understand how someone else might build a feature in an easier way. Getting a different perspective can help me catch flaws in logic that I may not have seen otherwise. Every time I work with someone from my team, I learn more and absorb as many tricks as I can.

Responses edited for length and clarity. Photography provided by companies listed unless otherwise noted.

Hiring Now
Caterpillar
Artificial Intelligence • Cloud • Internet of Things • Software • Analytics • Cybersecurity • Industrial