We started to wonder how similar learning a programming language is to a spoken language. Turns out, in our opinion, the process is pretty similar.
Learning your first foreign language is difficult. It’s arguable that you actually learn more about your own language at this stage. Your native language is innate, you don’t really think about what you’re saying, it just comes out.
Then you begin to question yourself and end up asking, “why are we on a bus, but in a car?”. It feels like you’re losing your sanity. You question everything you’re saying in both your native and target language.
Programming is just the same, it’s less about the specifics and more about knowing what constructs are universal across multiple languages. Once these are understood, the knowledge is transferable.
In spoken languages, it’s things like pronouns, verbs, adverbs, and adjectives. In programming, it’s variables, conditionals, while loops and classes.
As you learn more and more you’ll find that you need to put in more effort to see an increase in your proficiency. Once the building blocks are out of the way you really need to dig deep to understand the nitty-gritty stuff.
With a spoken language, you start to see how much is really ahead of you when you try to do something beyond ordering a coffee. You bump into a native speaker and it dawns on you how many words you can’t recall immediately. Or how often you use incorrect grammar.
With any kind of development, you realise how much there is to learn when you go from building a small side project or website to working on a fully-fledged application with users and testing and feedback.
It may sometimes seem like you’re coming to terms with a concept, only for it to fork off into two additional things you need to learn. The most important thing is to not be dissuaded. As the French would say, “petit à petit l’oiseau fait son nid”. Or in English, “little by little, the bird makes its nest”.
Creating websites or software in a helpful IDE (Integrated Development Environment, like Webstorm) is like speaking in your target language with an extremely useful assistant on hand.
They will show you where things are and provide you with shortcuts. If you type some code and make an error (kind of like preparing a speech), they’ll point it out and say “hey, watch out for that.”
You’ll be able to see your mistakes and make note of the ones you make the most often. They’ll help you clean up your code or if you were learning a language — your sentences, and point to the function (verb) you’re looking for.
You wouldn’t disregard help from a friend, don’t shun help from your computer.
It’s obvious that the key to learning a spoken language is by getting out there and practising. The same applies to learning a programming language. You will never fully understand all the little quirks of either if you don’t get out there and start making something with them.
Learning either is a practical, rather than an academic endeavour.
So what is the purpose of learning all these words and structures and concepts anyway? It’s not just to proudly boast that you’ve learnt something well enough to be proficient in it.
In both cases, it’s to craft stories. It’s about making something or saying something that’s relatable or enjoyable for the person on the receiving end.
This is more apparent of course with spoken languages, but the end goal with programming or web development is the same. You’re not just storing cookies, you’re giving them an experience. Maybe you’re creating an enjoyable onboarding flow, or making a difficult process easier, as we did with current client Farillio, that makes handling legal documents easier.
All in all, the end result, as usual, is a connection with a person.
Feel differently? Have anything to add, or just want to tell us about your awesome language skills? If you’ve got any feedback we’d love to hear from you — please leave a comment here, or drop us a line on Twitter. We’re @InktrapDesign.