This is maybe a larger point too that when you're writing software at Mozilla you have a few goals that you don't have when you're doing problem sets. Others will have to read, reread, maintain, test, and debug your code after you stop working on it. Try to put yourself in their shoes and help them at every step on the way. Document, choose good, expressive names, always abstract things that obfuscate the core business logic.

Software engineering is much more about communication than it is about programming languages or anything else :)