Vocabulary: A Guide to Navigating Technical Words for Mentees and Mentors

For budding programmers, technical jargon can get in the way of learning. Nate shares how learners can overcome vocabulary hurdles and how teachers can make their intentions clear.

Learning to program is a lot of fun. If you’ve caught the bug and have started pursuing it, you already know how satisfying the learning process can be. Online resources are so plentiful these days, and many of them are completely free! It’s totally possible to learn on your own. The only prerequisites are a reasonable internet connection, some free time, and a touch of curiosity. That’s not to say it comes without difficulty. For those up to the challenge, there will be some hurdles to overcome. One of those hurdles will almost certainly be vocabulary.

Technical words can be intimidating. Long sentences full of big words can be straight up discouraging. When reading a tutorial, book, documentation, or technical specification, your ability to parse those words into some semblance of meaning is obviously important, but sometimes the words can feel like a real barrier. I don’t know how many times I’ve decided to read about a new technology or tool, only to skim the docs, see a few intimidating words or concepts, and then say to myself, “I’ll come back to this later”...maybe. This post is here to offer encouragement to those looking to learn, along with suggestions for all you wonderful people nice enough to mentor us.

Strange Words Are Everywhere

This is the intro text on the nodejs.org home page:

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

To a budding programmer, this might as well say, “Welcome to the deep end. Good luck!”

Contrast that with the opening words on the ruby-lang.org home page:

A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.

Which one do you think new programmers might try out? And strange words aren’t just found on websites for programming languages. Even casual conversations with coworkers, friends, or maybe the person next to you at a meetup can bring new scary words to the table.

What to Do as a Learner

How many times has someone used language that you didn’t understand? Did you nod and smile and pretend as though you understood everything a developer said out of fear that he or she would think you were a big dummy—or even worse… not a true programmer? Of course, I would never accuse you of such a thing. I probably do that to myself a couple of times per day, though.

I wonder if we really need to communicate so technically to learn (or teach) technical concepts, especially to beginners.

After all, words are just tiny abstractions. They can all be defined by a collection of common words, and more often than not, their meaning isn’t as difficult to understand as their inherent mystery, i.e. their bark is bigger than their bite.

I have good news for learners: my mom told me it’s O.K. for us all to make mistakes. You’ve got the “all clear.”

As a learner, it’s important to recognize that there is some overhead involved in navigating the lexical labyrinth that impedes your progression on your voyage to coding capability. Or, in simpler terms, this stuff is hard. But that’s O.K.!

Some concepts will be intimidating. Get comfortable being uncomfortable—it means you’re learning! Embrace the challenge of learning to code, be patient, and you will amass a war chest of words.

How to Spot Quality

This is an amazing time to learn how to program, but not all learning resources are created equally. You just need to know how to identify the good ones. The ones that clearly specify a target audience are a good starting point. It’s nice when tutorials communicate any requisite knowledge base. It’s even better when they offer a few critical definitions at the top. These are typically good indicators that some time and thought have been put into creating a focused and thoughtful resource.

Create and Contribute

Sharing your knowledge is an important part of the journey. As you grow and learn, you may find that you want to start writing or speaking. When you do, resist the urge to use all the big, beautiful words you have learned. Try to understand your audience, and use language appropriate to their skill level. If you use too much flashy speech, you could alienate people who you could otherwise be helping. To be clear, in no way am I implying that technical terms are a bad thing, or that we should stay away from them. As with anything else, there is a balance to be found. You’ll have to decide where the line is. To help people know whether your resource is right for them, make your intentions clear.

Making a Quality Tutorial

Here is a suggestion for kicking off a tutorial:

Hi, folks! Thanks for checking out this post about [technical thing]. This is intended for people who have [assumed knowledge/experience]. I’m going to cover [steps 1, 2, 3, etc]. Here are some definitions that should help you navigate this lesson:

[insert definitions here]

And when you get to the crux of the subject, ask yourself what complexity or confusion you may introduce by your choice of words. For example, do I need to use the terms declaration, signature, parameter, expression, invocation, or closure to teach how the following code snippet works in JavaScript?

function doSomethingWithTextFile(filePath, doThing) {
var text = readFile(filePath);
doThing(text);
}
doSomethingWithTextFile(‘my-file.txt’, console.log);
view raw simple-cb.js hosted with ❤ by GitHub

Nope. I could use all those words, and in the right setting I would.

But it’s not always necessary to wax academic when trying to communicate a concept.

I could probably start by saying “define a function that takes a file and does something with it…” You see where I’m going? If this code snippet is something you don’t understand, imagine how much harder it would be if it were surrounded by a bunch of cryptic language.

Value in Vocab

Words are wonderful. There is a lot of value in possessing a solid, technical vocabulary. As you digest each lesson and gain command of the language around you, you will be able to express your thoughts much more freely. Each lesson in which you encounter a previously unknown word will become less confusing, and that can be a nice boost to your confidence. I’m here to encourage you. Don’t let language stand in your way of learning what you want to learn. Yes, it requires time, but it’s worth it. Break your investments down into small chunks, and conquer the mountain one word at a time. When you get to the top of that mountain, remember to thank those people who lowered the rope for you. You may very well find yourself hoisting the next wave of coders.

 

Glossaries:

https://developer.mozilla.org/en-US/docs/Glossary
https://en.wiktionary.org/wiki/Appendix:Glossary_of_computer_programming
http://www.computerhope.com/jargon/program.htm
http://www.programmingforbeginnersbook.com/blog/expand_your_programming_vocabulary/