Context: I'm taking several classes this semester in which I'll be coding. Here is a list of possible languages I'll be using:

  • Java
  • C (system and embedded level)
  • C++ (contest programming)
  • VHDL (for FPGA work)
  • Python
  • Scheme

Is it possible to keep all these languages floating around in one's head? How can one code without having to look up reference material every time they start working?

2 Answers 2


C++ alone is a massive language as is Java. I could reasonably expect a skilled, veteran to remember all of Scheme, Python, or C but there is no shame to be had in using references.

I'd argue that learning generically applicable programming techniques and remembering the elements of style for each language over trying to remember the entire syntax. I'm not sure that's possible in some cases, particularly given how much languages can change.

I work at a technical bookstore and I routinely sell reference manuals to skilled, experienced professionals. Better to have knowledge that there is such a technique for "thing x" and not remember the exact syntax or semantics than to not know that "thing x" exists. That's why these things exist. You are plugging along and think "I know of something that would work nicely here" and perhaps you find it to be wrong for that language but the reference if it's any good and you've a solid grasp on the fundamentals will give you pointers (sometimes literally) toward a solution.


It takes practice to code without looking up the reference materials. That's not something likely to happen in a semester unless you use the languages a lot. I recommend keeping a one page quick reference for each language handy.

You should be able to remember the idioms in each language easily - how to write a function, loop, print a value, etc. Because these come up often in coding so you will be practice them a lot.

What's the harm in using reference materials?

Not the answer you're looking for? Browse other questions tagged or ask your own question.