Do You Need English to Learn Programming? A Practical Plan

You run your first Python program and get this: TypeError: can only concatenate str (not "int") to str. You understood the lesson in your own language, but the computer answers in English, and you don’t know which word to look up first.

So, do you need English to learn programming? Less than you think to start, and more as you go. This guide shows where English matters, what research found about non-native speakers and a six-step plan to learn the concepts in your language while you build the English you’ll need.

Infographic: learning to code in a second language

Do You Need English to Learn Programming? The Short Answer

No, not to start. A programming language reserves few words for itself: Python’s official reference lists 35 keywords, such as if, for, while and return. You learn them like the buttons in an app.

Yes, gradually. English matters more when you read error messages, use documentation and search for help, because most of that material is written in English first.

English keywords don’t mean an English-speaking origin. Lua is “designed, implemented, and maintained by a team at PUC-Rio, the Pontifical Catholic University of Rio de Janeiro in Brazil,” yet its keywords are English words like function, local, then and end.

What Non-Native Speakers Find Hardest

A useful study is Philip Guo’s paper at ACM CHI 2018. He surveyed users of Python Tutor, a free site for practicing code, and analyzed 840 responses from 86 countries and 74 native languages. It’s one survey on one website, so read it as experiences, not universal numbers. The barriers people reported were:

  • Reading tutorials, books and forums written in English.
  • Listening and speaking about code.
  • Reading and writing code, where names are English words, often shortened (like getch for “get character”).
  • Learning English and programming at the same time.

They asked for simpler English without slang, more visuals, examples without cultural references and built-in dictionaries. The good news: some said programming motivated them to improve their English.

Step 1: Learn the Concepts in Your Own Language First

A loop or a function is the same idea in any language. If you understand it faster in yours, learn it that way; the English word is just a label. Two official sources have translations:

  • MDN Web Docs (HTML, CSS and JavaScript) has community-maintained content in eight locales: Brazilian Portuguese, Simplified and Traditional Chinese, French, Japanese, Korean, Russian and Spanish. German and Italian are experimental machine translations.
  • Python’s documentation has official translations, such as docs.python.org/pt-br/3/. Under PEP 545, a translation joins the language switcher only after the whole tutorial and the built-in functions page are done, so beginner material comes first.

What stays in English: keywords, library names and most error messages. Even the Portuguese version of Python’s tutorial shows its errors in English, because that’s what the interpreter prints.

Step 2: Build a Coding Glossary

Keep a file with the word, its meaning in code and the everyday meaning that can trick you. Research cited by Guo found that beginners sometimes read words like “and,” “or” and “while” with their everyday sense. Start with these:

WordIn codeEveryday meaning
whileRepeats a block as long as a condition is true“During,” as if two things happen together
classA template for creating objectsA school group or lesson
returnSends a value back and ends the functionGoing back somewhere
stringText inside quotesA piece of thread
argumentA value you pass to a functionA disagreement
deprecatedStill works, but will be removedRare in daily speech
expectedWhat the code needed at that spot, as in expected ':'“Waited for”
undefinedIn JavaScript, the value a variable has before you assign oneVague or unclear

Add every word you have to look up, spelled exactly as the code shows it.

Step 3: Read Error Messages Word by Word

This example comes from Python’s official tutorial:

>>> '2' + 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
    '2' + 2
    ~~~~^~~
TypeError: can only concatenate str (not "int") to str

The tutorial says the last line tells you what happened, so read from the bottom up:

  1. TypeError: the kind of problem. A type is a kind of value, like text or a number.
  2. can only concatenate str (not “int”) to str: “concatenate” means join. Python joins text (str) only to text, and you gave it a whole number (int).
  3. line 1 and the marks under the code: where it happened.

JavaScript works the same way. In Chrome, reading a property of a missing value gives:

TypeError: Cannot read properties of undefined (reading 'length')

The code tried to read length from something undefined, so the variable before .length has no value yet. MDN lists this wording for V8-based engines like Chrome’s; Firefox and Safari phrase it differently.

Search for help with the English error text. Guo notes that translated error messages haven’t been widely adopted, since translated terms are harder to search for online. If you’re still stuck, use the routine in our guide on how to escape tutorial hell.

Step 4: Switch Your Docs to English One Page at a Time

Translations have limits. MDN’s page on translated content says “a lot of unmaintained and out-of-date content ended up in non-English locales,” and the English version has close to 14,000 pages. Switch one topic at a time:

  1. Pick a topic you already understand, like loops.
  2. Open the translated and English pages side by side.
  3. Read the English first; check the translation only where you got lost.
  4. Compare the update dates, usually at the bottom. If the English page is newer, trust it.

For the reading method itself, see how to read technical documentation.

Step 5: Use Translation and AI Without Translating the Code

Translate the explanation, never the code. A translator may turn while into a word in your language or swap straight quotes for curly ones, and the code breaks. Better still, ask an AI assistant to explain in simple English:

Explain this error in simple English, in two sentences.
List the technical words I should learn.
Don't rewrite my code.

TypeError: can only concatenate str (not "int") to str

For more on using AI as a tutor, see how to learn to code with AI.

Step 6: Write Names and Comments in English From Day One

Code in two languages is harder to read, since keywords and library functions are already English. Python’s style guide, PEP 8, says: “Python coders from non-English speaking countries: please write your comments in English, unless you are 120% sure that the code will never be read by people who don’t speak your language.”

Use short English names like total_price or is_active. Recruiters abroad may read your portfolio someday. Team English, like pull requests and commits, is covered in English for software developers.

A Weekly Routine That Builds Both Skills

Fifteen minutes of English a day is enough if it’s about what you coded that day:

  • Daily: read one English docs page about something you used today and add new words to your glossary.
  • At every error: read it word by word before translating.
  • Weekly: search one problem in English and compare the results.
  • Weekly: review your glossary and cross out the words you no longer need to check.

When English Starts to Matter More

Learning to code mostly asks you to read English. Working adds writing and speaking. When you start applying, our guide to remote jobs for non-native English speakers covers the job search. On a team, standups and code reviews have their own phrases, and freelance work adds talking with clients, a separate skill again.

English and Learning to Code: Frequently Asked Questions

Can I learn programming in my native language?

Yes. You can learn the concepts in your language with translated courses and docs. Keywords, most error messages and much of the help online will stay in English, so collect that vocabulary as you go.

Which programming language is easiest if English isn’t my first language?

Every popular language uses English keywords, so none avoids English. Python has short, readable syntax and official translations, including Brazilian Portuguese; MDN covers JavaScript in eight locales. Choose by what you want to build.

Should I study English and coding at the same time?

Yes, if you connect them. Learn the English you meet while coding: keywords, errors and docs. In Guo’s survey, some learners said programming gave them a reason to improve their English.

Sources

Your Next Step

Start your glossary today. The next time you get an error, add every word from it you had to look up, with its meaning in code. If you’re still choosing what to study first, follow our guide to learning HTML, CSS and JavaScript in the right order.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top