So Many Programming Languages!

"How do you remember and keep track of all the different programming languages you know? Do you ever confuse them and mix up the syntax?"

- Maddy, a high school student in a programming summer camp

Hi Maddy!

Your question is an excellent one. It’s true, keeping track of so many programming languages can be a lot to deal with. Here’s how I do it: I think of each language as a different recipe. Let’s say I’m making cookies: the first time I make chocolate chip cookies, I’ll have to look up the recipe, get all the ingredients, read through the recipe multiple times, and do each step one at a time, very carefully, to make sure I don’t make any major mistakes. Once the cookies are out of the oven, I might notice that I’ve made some errors, but that’s okay, because I’ll fix it in the next batch. The next time I make chocolate chip cookies (and the third and fourth, because let’s be honest, chocolate chip cookies are DELICIOUS), I won’t need to follow the directions as closely, and the cookies will come out great. By the time I get to making the cookies a dozenth time, I’ll probably have memorized the recipe and know all the ingredients and proportions and steps without looking at all.

Now let’s switch to making oatmeal raisin cookies. I’m familiar with the cookie-making process (because I’ve made so many batches of chocolate chip cookies), so I know the general order of steps. But the ingredients are different, and the steps are slightly different, too, so I’ll pay really close attention to the recipe as I make my first batch. (Though let’s be real: there’s about a 100% chance that I’ll accidentally think I’m making chocolate chip cookies instead of oatmeal raisin, and will make some errors. But that’s okay!) As I make more batches, again I’ll gain confidence in my oatmeal raisin recipe, and I might even find that it doesn’t take me a dozen batches to memorize the recipe; maybe I'll only need 5 or 6 batches.

Let’s say the oatmeal raisin cookies are SUPER popular, and I’m making them for a quite a while, batch after batch, after batch. And then, one day, someone says, “Hey! Remember those chocolate chip cookies? Would you make some? Pleeeeeaaaasse?!” (Of course, I agree, because I'm an awesome cookie maker and that’s how I roll.) Chances are, I probably remember most of the steps for making chocolate chip cookies. In fact, depending on how long it’s been since I've last made chocolate chip cookies, I’ll likely make a few errors, such as using raisins instead of chocolate chips or something. But if all else fails, I’ll simply look up the recipe again, just to make sure I've got all the right ingredients/proportions/steps. But it won’t be hard, because I did it a bunch before and just need a refresher.

Basically, this is my (hopefully scrumptious) way of saying that programming languages are syntax (aka ingredients/proportions) that you pick up and use when you need them. It’s been a super long time since I’ve written any C++, but with a tiny refresher, I could pretty easily start coding with it again. (And yes, I confuse syntax constantly. Fortunately, that’s what errors are for - useful markers for “hey, um… are you sure that’s what you wanted to do??” :-)) The most important thing about programming is not necessarily the language - it’s the process/logic that goes into each program (aka the steps in the recipe). Knowing how to create functions, knowing in which order they should be called, and knowing how to get from start to finish are all critical to your success as a software developer. Plus (and here’s the best part about it all): they’re still all cookies! That is to say: no matter what ingredients (syntax) you’re using, they all compile down to the same instructions on your machine. Programming languages are simply a means by which you tell your computer how to do its job.

If all that seems super hard right now, don’t worry! You get better at it with time - practice, practice, practice :-D