How Learning Spanish And Coding Are Similar
01 Jul 2020 -
For six months, I traveled throughout South America and slowly improved my Spanish from being very poor to adequately conversational. After the virus sent me home, I decided to finally get serious about teaching myself how to code. In reflecting about both experiences, I’ve found a few similarities:
Coding and spoken languages both have structure and learning that structure greatly improves your ability to use the language effectively.
At first, you learn a lot of vocab, how to conjugate, how to write simple blocks of code, and as you start to string them together to create more complex thoughts or programs, you have to figure out the structure as you go. You can usually get your basic point across with a jumble of words you’ve learned but to tell a story or have a full conversation you need to earn about how to string together a sentence and choose the right verb tense. And you can build basic programs without using classes or even functions, but if you want to build something useful, you will need to figure out these concepts. And as you learn more about the structure, like adverbs are learned in a different language and more examples of adverbs or how methods are used and some examples, you can more fluently use the language.
You learn a lot in the moment that you decide isn’t important to memorize.
You will often learn new words or be corrected on your grammar by a native speaker and then determine that it isn’t a word that you will use often or a mistake that is necessary to understand. This happens all the time when programming too. You won’t understand why you are getting an error, you’ll google it, find a solution, then decide if you want to think through how important it is to fully understand what was wrong in the first place and why the new code works better. Both of these phenomena are driven by your interests and goals If you are interested in trying local foods while traveling, you’ll focus on vocab about eating and maybe dismiss the vocab about local politics, and if you are interested in data analysis, you might not put the time in to fully understand HTML even if you use it to post to a blog.
You’ll be pushed to grow and learn at different paces throughout the process.
If you travel for a long time while learning the local language, sometimes you’ll need it more than other times. Maybe you are in a tourist destination where all tourism workers are bilingual, or you are traveling with bilingual people. And sometimes you’ll be in a smaller town and you are the one in the travel group that knows that most Spanish and your limits are pushed. The same happens with coding. Sometimes you’ll come up with an idea and you’ll start looking into it thinking it is going to be complicated and stretch your abilities and you’ll find out that there is a library that does all of the things you were looking to do. And sometimes, you’ll think you have a simple idea and you won’t be able to figure out how to even find the right search terms to see if there are solutions.
It’s easy to feel discouraged by your progress.
While traveling, you’ll encounter stuff every day that will make you think you aren’t trying hard enough. You’ll struggle just to order the right drink, you’ll encounter travelers that seem to have a more organized system for learning than you would ever try, you’ll tune out of conversations because you find yourself just not following it. In programming, you’ll find yourself caught on something and look it up and see that there are several ways to do the problem that you haven’t even heard of before. You’ll try to review a block of code and lose track of the thread and give up. You’ll struggle to do something that you know you’ve done a half dozen times in just the last few weeks. In both cases, the best thing to do is not to compare yourself to others or to come up with an arbitrary level of “enough” progress. And if you have to compare to someone, compare to yourself a week ago, not the guy who has been learning for twice as long as you have.