What is a beginner?

That's not as simple a question as you might think.

So many people in a programming language community have and express opinions (often strongly) on how to best serve beginners, how to help beginners learn a language, etc. But I seldom see people acknowledge the fact that there is no one beginner.

What are some of the types of beginners? Here are just a few roles that one might be consider a beginner.

  1. someone who has no idea how to even turn on a computer
  2. someone who is ready to begin learning something about programming a computer
  3. someone who has learned about programming in general, but has no knowledge of the specific language
  4. someone who has some level of understanding about programming, has read about the specific language, but has not programmed anything major in the language
  5. someone who is using the language in its simplest forms, but doesn't understand the complexities

I'd guess there are other possible meanings to the word as well.

So, how to handle writing tutorials for beginners when the term has so many possible meanings? One very useful approach is to specify assumptions as you discover them.

Thus, if you thought you were writing for a beginner but have written for someone who is trying to learn another language, then just state that up front. At least then, someone with a different type of beginner starting point can take that into account.

See also: