Applying Lessons from Learning a Foreign Language to Software Development

When I first started learning software development, I was pretty intimidated. I was coming from a degree focused on culture and foreign languages. Going from humanities to STEM seemed like an incredibly difficult challenge. I definitely struggled in the beginning. But, eventually, I started to get the hang of things. It all started to click when I realized that things I learned from studying a foreign language applied to software development.

There is no one way.

This one was a lesson that I quickly learned after starting my software journey. In languages, rarely is there one absolute way to express a thought. A simple example would be “I like ice cream.” Another way to say this would be “I enjoy ice cream”  or “Ice Cream is my favorite.” While each may have its own nuances, they all express the same idea that I like ice cream. Just as in the previous example, in software there is no one way to get to the answer. Have a list? Try a for loop, or a for each loop, while loop, a map. These all iterate through the list in slightly different ways. But, they all provide a similar result: you iterate through a list.

Do not fear failure. Strive for it.

This one is probably the most difficult concept, but yes, I am saying strive to fail. In learning a new language, the fear of making a mistake or sounding silly or childish will keep you from developing a natural speed, tone, and comfort when using it. Most native speakers appreciate the effort and have no problem helping you when you stumble. Most importantly, one of the quickest ways to learn the correct ways to say something is to make a mistake.

Now let’s be honest: this may not be the best advice when you are working on a ticket for production. But, when you are in a new system or learning a new language or technology for development it’s great to break things. The errors will let you know what went wrong, and then you can go fix it and see if what you were trying to implement worked or not.

Community is key.

This last one may seem like a no-brainer but a strong supportive community is key. When learning a language, having others who are learning with you can help you when you stumble and vice versa. On the days when you can’t take any more grammar or vocabulary, they can help make things fun again. One of the best ways it helped me was that my friends and I would try to recreate scenes from our favorite movies and TV shows using the language we were learning.

Applying Lessons from Learning a Language to Software Development
The entire world is your community!

This is even more true in the world of software development. Sometimes things do not work, and it does not seem to make sense. That is when your community can help, and, well, the entire world is your community! Millions of people from all around the world visit websites like stackoverflow, tackling the same problems as you, and many of them have had their prayers answered. If you are in school your, your classmates are your community, and if you are at work, your co-workers are always a great resource to get fresh eyes and inspiration on a problem.

Applying Lessons from Learning a Language to Software Development

Like many people, I thought software development was this mythical discipline that I would never be able to become better at. But the lessons I learned while pursuing something completely different ended up helping me.