Transfer those Skills!... by Caroline Taylor and Rebekah Post
Published November 8, 2018
This video features Rebekah E. Post at DjangoCon US 2017 in Spokane, Washington, USA.
DjangoCon US 2017 - Becoming a Polyglot: Lessons from Natural Language Learning by Rebekah E. Post
As a trained linguist and former university language instructor, people often assume that my natural language* (spoken, signed, or written) learning analysis background made learning to code easier for me. They might say something like āThat makes sense, theyāre languages, right? They have syntax.ā These casual comments seem true on the surface when talking about parts of speech and variable types. But once you dig deeper, it becomes clear that there are far more differences than similarities between these types of languages despite the shared name. However, many skills and methods I have utilized in learning languages and teaching languages as an adult to adults have served me well as a developer.
This talk first addresses key points of divergence between learning a natural language and a programming language. Perhaps most importantly, natural languages are meant for communicating with people and programming languages are meant for giving a computer directions.
However, many areas of overlap exist in learning and perfecting these skills; these shared aspects of learning are the primary focus of this talk. (* And, yes, thatās the same ānatural languageā as in ānatural language processing.ā)
This talk was presented at: https://2017.djangocon.us/talks/becoming-a-polyglot-lessons-from-natural-language-learning/
LINKS:
Follow DjangCon US š
https://twitter.com/djangocon
Follow DEFNA š
https://twitter.com/defnado
https://www.defna.org/
Rebekah E. Post compares learning natural languages with learning programming languages, drawing on her experience studying French, Spanish, Arabic, and becoming a Python developer. She explains that the two kinds of language differ in audience and purpose: natural languages support flexible, culturally embedded communication between people, while programming languages give exact instructions to computers. Despite those differences, both are skills that require practice, rest, feedback, questioning, and continued learning rather than passive study. Post argues that learning multiple languagesānatural or programmingābuilds flexible thinking, helps people choose better tools and approaches, and makes their different strengths useful to teams and communities.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Well thanks. It's great to see so many of you here today. As he mentioned, we're going to talk about becoming a polyglot, lessons from natural language learning. And first, hi! Why did this pop into my head? Well, when I was 13, I started learning French, like a lot of people do in high school. Not a big deal. I went to college, kept learning French, decided I wanted to teach it, got to student teaching. A lot of my students were native students. Spanish speakers, so I was like, I shouldn't graduate yet. I should learn Spanish. That'd be a great idea. Then I could teach my students better. And then I did that and realized Actually high school is a little bit rough. I should become a college professor. So I went on and was working on my PhD and decided that that wasn't enough.
So I I had lived in Tunisia for a year between undergrad and grad school, and I thought, you know, the way they speak in Tunisia. is super awesome. I want to do some studies about stuff like that. And so I learned, well that's gonna take learning Arabic. And I figured, yeah, you know, PhD Arabic. Let's do all of it. And once I finished all of that, I realized, you know, being a professor probably isn't really the lifestyle that I'm after. And I had done some Python to analyze my language data and Became a developer instead. When I tell people that, they're like, oh yeah, that kind of makes sense, you know, languages, syntax, and I'm like, uh, kinda. And so
let's talk more about that. And just in case you think that it's the people that I've met, I got this quote from the Code Academy JavaScript course. Just like a language has nouns, verbs, and prepositions, JavaScript has its own building blocks. Instead of calling them building blocks, however, because that's what nouns and verbs are called, whatever, developers call them data types. I'm like, well, okay, all right, there's some similarities, but there are also some differences. And knowing about the similarities and differences helps us to better appreciate where we can transfer those ways of learning and where we can learn we can't. So let's start with the differences. Oh, ha. But I'm gonna be saying natural language a lot throughout this.
And when you might wonder, well why don't you just say spoken language? Spoken language, sure, that's gonna be English, French, Spanish, Arabic, whatever else. But we have such a wealth of languages in the world that are sign languages, American Sign Language, British Sign Language. Did you know that not all English shares the same sign language? We don't. And so by saying natural language, we're being sure to include all natural languages. And that's pretty awesome. Now on to the differences. The first thing that we want to think about is who. Who is this language trying to get information to? With a natural language, it's pretty obvious. People, human beings. We are communicating ideas to people who are
ideally listening and in a conversation. having some sort of exchange with us, thinking about the words that we're saying, all this kind of stuff. With the programming language, computer. We are giving instructions to the computer to carry out The lesson here is that these are fundamentally different. There's just, there's no back and forth with the computer. There's, and you might say, well. What about errors? We'll get there. And it's just so different to begin with because of who these languages are for. Then why? Why is it so fundamentally different? That's partly about why we are using these types of languages.
With natural languages, we are expressing our emotions. We are asking for clarification. We are giving more information We might be simply you saying things in a certain way to express part of our identity, who we are. That language is a lot of more about the ideas around what we're saying than the actual content of the words of what we're saying. And we can express a lot of things through the way we say things. When we come to a programming language, we might be doing some amazing stuff. And a lot of people in here are doing just incredible stuff. Hopefully everyone. But no matter what we're doing with that programming language, we are still writing code that's going to be turned into
assembly language, sent to us an assembler, and turned into machine code. We are giving directions to a computer. We can be doing all of these amazing different things, but at the end of the day, That's what programming is, is giving directions to a computer. Because we're the ones doing the amazing things. The computer cannot do it on its own. Even the computer wouldn't exist without other amazing people. The lesson here is then that these types of languages have very different goals. That communicating two-way, more than two-way, with other human beings is just extremely different from giving directions to a computer to have it do what we want to do. Then there's also how we learn things.
With natural languages, if we're hearing, before we're even born, we start to hear the language that is spoken around us. Or language is, right? It's not uncommon. It's actually more common in the world to hear more than one language. Those of us in the US often forget that. that. And so we start hearing these languages and even newborn babies react differently when they hear the languages, language or languages. That were spoken around them while they were in the womb than they do with a different language that they've never been exposed to. And that's super awesome. So from the very beginning Or before the beginning, how you look at it. We are alert learning languages that deaf children are seeing signs or seeing gestures if they're
parents are hearing and they are learning it from the start. Later on, we might add one, two, three, four more. You can keep learning languages literally until you die. It'll take you longer, but you still can do it, which is pretty awesome. Our brains do cool things. But then there's programming languages. You can start pretty young. Hour of Code has a really fun pre-reader section. But you still have to have a kid who's got a certain level of logic and a certain level of facility with a computer. So maybe four or five-year-old, I'm guessing that. I started with Code Academy. Great website, free stuff. A friend of mine went to Ada Developers Academy, which I'm just using to show all of these boot camps and coding academies. That exists out there.
No matter what though, maybe you have a teacher, maybe you don't, what you're doing is learning to sit down in front of a computer and learning how to give a computer the directions that it needs in order to do the things that you Want it to do. You can learn lots of programming languages. You might have a special connection with your first programming language, but the lesson here is that there are no native speakers of programming languages And some of you may say, well, why does that matter? Well, there's this common conception, possibly misconception, we can talk more about that at lunch, that native speakers are the gold standard by which everything should be judged. But you can't judge yourself against something that doesn't exist. So when we're coding
Everybody has learned this. They may have learned it more easily or more slowly. They may be amazing at it or they still may be working on it. But everybody has learned this in a conscious way. It's not that baby who just unconsciously learns that language. Our next comparison is variation and change. One of my favorite topics. If we're working with a natural language, then we will see different ways of saying the same thing. thing. There might be nuances between these different ways, but the basic goal is the same. So you might go to the store, you should go to the store, or in the South we'll hear, you might should go to the store And while you might, you know, giggle a little bit, one of my coworkers uses Mike Hood, and I love it,
you'll still understand the basic intent. There are also non -standard ways of speaking that are completely valid and that we can understand just fine. So if you hear something like, I ain't never done nothing like that before, you may have judgments about it, that's your problem, but you will understand it. This is also this tolerance for variation is how we get change. At some point someone said for the first time, let me Google that for you. And whoever they were speaking to may or may not have understood. Now we definitely all understand it. And the fact that this caught on is also meaningful. Because certainly nobody says, let me Yahoo that for you.
But with programming languages we don't have it quite so easy. If we want something to work in Python and not just come back with an error, we can't replace that equal sign with an is or with an EQ. We can't change the order to a way that a human being would naturally understand, oh yeah, she means the same thing there. That's cool, that'll work. I can do that. No, the computer's gonna throw back errors at you. It's just not the way it is If we try to use a regex and we do read. search, great, everything's fine. If we try to just type in re. google, you're going to get a syntax error. And somebody's probably going, oh, but wait, I could do that. I could tell it to accept redo Google. Yeah, you could. That's awesome. You could give directions to the computer to make it learn variation.
And that's the point. That you have to tell the computer that this variation is completely acceptable. Otherwise, it just truly doesn't know what to do with it. We've all had, you know, a space in the wrong spot or an indentation error in Python. or a period extra or missing depending and you have to go back and fix it because it has to be literally what it expects. Computers don't do variation. People do variation. People add variation for the computers to understand. Then let's move on to the similarities. So we've learned a lot from the differences, what we can and can't expect out of these programming languages. Brains! Brains are wonderful! They do so many amazing things that we don't think about, that we just automatically do.
It's fantastic. We pick up information about the world all around us. And they help us remember things, like natural languages and programming languages. But they just don't go on forever, right? You need to sleep to commit memories. So getting enough sleep when you're trying to learn a natural language or a programming language will help you. Stress. A little bit of stress can help your brain. A lot of stress, not good. So more sleep, less stress. can help us be better at natural languages or programming languages. The lesson here is to respect your brain's limits. There are other ways that it has limits. You know people say
self-care, take a break. Yeah, that's this too. Respect your brain. The next thing is that, okay, you've got these physical things up, but we're talking about languages, right? Yeah, we are. Languages are skills. Programming languages, natural languages. their skills. The example I like to use in Texas where I taught, big football school , tell a class of 25 students coming to learn French, they're so excited. Imagine I give the quarterback. Brand new quarterback. Maybe played football as a kid. the playbook and a book about how to throw a football. And they're sitting there looking at me like, what's wrong with you?
And so then I say, alright, do we put that person on the field for the first game? And then they are horrible. Right? Reading about a thing is not the same as doing a thing. You can't throw a football just by reading about it. Like even a generally athletic person, they might be able to throw it, you know Technically, yes, I threw it, it landed there. But you're not gonna be able to throw it all the way down the field. And that's the goal that we need to practice natural languages or programming languages, we absolutely have to practice. The minute we quit practicing, it's so sad, but our skills start to declining and you might say oh you can pick it back up
yeah those neural pathways are there they just have to be strengthened all the time so yeah you can pick it back up later it will be easier to relearn than to learn the first time but It's it's just the way skills work, right? Somebody quits playing football and they still know the rules, they still can throw the ball, but they can't throw it quite as far as before Then while we're talking about skills, when we're teaching natural languages, we often talk about the four skills. We've got speaking, listening, writing, and reading. Cool, great. Students are often better at one or two, or maybe even three of the four, than another one. But there is that imbalance. That if someone's learning French, there is a huge amount of French and English vocabulary that's shared.
If you're a fluent English speaker or if you're a Spanish speaker, there's loads of vocabulary and grammar that's shared. So maybe you're gonna have an easier time reading. But when it comes to writing, it still might be a little bit harder. And then if you're trying to listen to real speech on the radio, ooh, that's gonna be take some practice For Arabic, at least the way it's taught at UT, it actually kind of flips. The alphabet's so different that it's easier to speak and listen to it for students at first than it is to be able to to read and write it. Even now I have to kind of force myself to stop on those Arabic Facebook posts and keep practicing reading Arabic. Then for our programming languages, we don't really think about it, but
it's kind of the same. We write code, of course. That's what we learn to do. That's how it's taught most of the time. time. Here, write code, it's amazing. You can make your computer do things. Yay! So most of us that I know, we write some code, but we spend a lot of time reading other people's codes. Because some bug came up somewhere, because we have to integrate with some vendor product, because we can't figure out what's going on with this existing system and we just need to add on to it. So we end up reading code, which is a different aspect of that skill set. Maybe there's a bug that we can't fix. When we go to Stack Overflow, being able to sift through what's just rudeness and what's useful is a skill
Then talking about code. Talking to our coworkers about code, talking to our clients about code and what it's going to do. These are skills that need practice. you can get better at. So when you feel like you're doing terrible at something or that somebody else is so much more awesome at something, stop and think about their full skill set. Because we all have strengths and weaknesses. And of course, try not to compare yourselves. But, you know, that's another topic. The lesson here then is that there are many, many facets of skills to work on, and that we all can be working on these in one area or another. Wood. I think that's probably some blue sky
and a tree. And doesn't that just happen when you are listening to a new language, reading a new language, trying to fix a bug in a language you're less familiar with? What the heck do you do? I have no idea what's going on here. I know this language, like I can pick out some of these words, just like their colors, but what is going on? We have to ask questions. There are other people who know more than us or who know different things than us or who can help us think. in different ways. Asking questions is so important to learning and to becoming an expert. You say, ooh, but asking questions is hard and then they will know that I don't know everything. Well
they're a jerk if they think that you have to know everything. Because each of us sometimes we're the person on the left, sometimes we're the person on the right. We all know more in one area than another. We all know less in one area area than another. If you're super amazing at coding in all of the languages that you know right now, that is awesome. Good for you. Hopefully you can remember what it was like to be the person who knew less If you can't, then pay more attention to the people who do know less. See how they act, see how they interact with other people, and see where you can help them. Sometimes the people who know less will ask questions that will help the people who know more improve their code and be like, why did you do it this way instead of this other way that I just read about? And you're like, yeah, why did I do it that way?
You know, it can be a good experience. So we might not all be experts in everything, we're definitely not. But we're also not all just completely clueless in everything either The lesson here is that we need feedback and review. Code reviews can be intimidating, but without that You don't know if you've got some major flaws that are just gonna come bite you in the ass like five minutes after it goes into prod With learning natural languages too. I might think that yeah, I heard this word, I read it in the dictionary, it means this, no problem, great. I go out in the world and I use this word and I get a really bad reaction. And I'm like, but this means this, right? And they're like, yeah, it means that, but you only say it if you're trying to make somebody go away.
Or you only say it, depending on the culture, if you're a man or a woman and you just, you cannot say that word. That happens. So we have to interact with other people. We have to make ourselves vulnerable to being told that we're wrong in order to improve and get better. All right. Everybody's like, oh, what's this? What's that seven doing there? That seven happens to represent a glottal stop, which is not a meaningful consonant in In any language that I can think of. Oh no, Maltese. In most languages that use the Roman alphabet, but in American English, you'll notice it in things like
uh-oh. It 's not uh or uh-ho. Uh-oh. That little break right there, that's the glottal stop. So in Squamish, this First Nations language in on the coast of Canada, on the West Coast. coast. I mean, you know, I'm from Tacoma. Isn't that the only one that counts? Um they have a glottal stop and they write their language primarily in the Roman alphabet. Like, okay. Okay, cool. That's definitely about natural languages. Where are you going? So these are if statements in the four languages that I work with on a regular basis. On the top left, we've got Python. If with a colon at the end. On the bottom left, we've got Django. We've got our nice little curly brackets
and percent signs, if, and then we've got to add that and if, squished together one word, lowercase. Top right is SPSS syntax. in my particular shop, we use this for data prep. And it has to be do if the capitals are conventional but not required. And you need a period at the end of all of these statements. And you have end space if period. Then we have the programming language called natural, as done by Software AG, that we use at UT. with our super awesome mainframe. So the capitals are required in this one. If, then, also required, end
-if. So if I've been doing a lot of natural, I might go into SPSS and accidentally do an in-if, period. Then I'm gonna get an error. I'm like, oh dang it. Did that again. Or if I go into Django, I might be like in space if. Like nope, still not working. This is completely normal. This happens all the time. Bilingualism or polylingualism, multilingualism. has lots of benefits. It helps us to think faster, see things in different ways. But there are also some things that we end up doing like mixing up which is which every now and then and then. In natural languages, it can actually help to delay the onset of Alzheimer's and dementia, which is super cool. Nobody wants that stuff. But it's also good for programming languages because you can learn to think about things in different
ways. different ways and learn which of your tools might be the right one in each situation. So our lovely sign with our lesson that a bilingual is not two monolinguals. in one. That we see things differently, we work with things differently, and that is just such a great thing. It brings richness into how we approach problems and what we do. And so it can help us as we are trying to fix problems and it can help the organizations that we work for. Finally, the bottom line. Those beautiful nice green dollar bills. What? You may know in a lot of areas that if you speak Spanish, a lot of the areas of US, if you speak Spanish.
you might get paid more for being bilingual. School teachers, for example, you can get a bilingual bonus. I learned at a conference two weeks ago that this Is true of programming as well, that on average, learning, adding a new language to your resume is about $3,000 more in salary per language. Like we'd all like that. So, let's earn more money. Woo! Then my last thing is, languages are awesome. Whether they're natural languages or programming languages, natural languages, learning more of them can help us communicate with more of the world in their native language. And if you don't understand the value of that, then please go learn a natural language, go talk to a native speaker of that language, in their language, and then in your native language, and see how it feels different.
See how that communication. changes because it will. And if you think it doesn't, then try again. But with programming languages too, we really do think about it differently. that with all the tools I have, I will know, okay, so for this I'm gonna use Python. For this, I'm gonna use SPSS because my shop uses it, but I'm actually actually trying to get them to try to do it more in Python because I think that pandas will actually end up being a better solution than the SPSS syntax and That's current pet project. Or, you know, maybe I need to learn something else because I'm not quite sure if my tool set is the best right now and I want to make it even better. And all of these things will give us the right tools for the right job and help us to be better developers in the end. And that's awesome.
Thank you.
Natural languages communicate ideas, emotions, identity, and clarification between people, while programming languages give precise instructions to computers. Their audiences and goals are fundamentally different.
Discussed at 2:20Computers only accept the forms they have been explicitly programmed to recognize, so changing syntax, spacing, or punctuation can produce an error. People can teach a program to accept variations, but the computer will not infer them on its own.
Discussed at 9:39Both are skills, so reading about them is not enough: you have to practice. Skills decline without continued use, although relearning is usually easier than learning from scratch.
Discussed at 12:42Programming includes reading other peopleās code, debugging, discussing code with coworkers and clients, and evaluating technical advice. These are separate parts of the overall skill set and improve with practice.
Discussed at 15:01Questions expose gaps in understanding and can help both beginners and experts improve. Feedback and code review reveal flaws that might otherwise cause problems after deployment, just as interaction with native speakers corrects mistakes in natural-language learning.
Discussed at 16:35Learning multiple languages helps people see problems in different ways, choose better tools for particular situations, and communicate with more people. It can also provide cognitive benefits, including potentially delaying the onset of Alzheimerās disease and dementia for people who learn multiple natural languages.
Discussed at 21:12The speaker says that, on average, adding a new programming language to your rƩsumƩ is associated with about $3,000 more salary per language, based on information she heard at a conference.
Discussed at 22:46Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 14, 2026