How do I take notes for programming classes […] courses seem to cover a lot of code really fast so I never know what is worth writing down.
The concepts are more important. Don’t worry about the syntax so much in the lecture (learn syntax in the lab, or on your own time), unless you find something specific that you like (i.e., a specific way of doing something that you want to experiment with on your own later).
Once you learn the concepts of programming, and computer science, learning the syntax for a language will be simple task. Every language has a slightly different syntax, which is constantly evolving. Even if you learn the syntax today, by the time you graduate, it will likely be obsolete. Language syntax is also something that can be easily located online when you need it.
Programming, and computer science in general, is far too broad for you to learn everything (and it’s evolving every day). It’s more important that you learn the concepts, and learn how to find what you need, when you need it. Focus more on your research skills, than your memorization skills, when it comes to computer science-related material, because almost nothing you’re learning now, will be applicable in the future, aside from basic concepts.
Computer science evolves too quickly. Understanding the concepts will allow you to better understand how to search for, and find, the information you need in the future.
As an example, if your instructor is teaching a lesson about conditional programming (if, while, switch, etc…), don’t worry about the exact syntax, don’t write down the exact code. Instead, take notes on what conditional programming is, how it works, what problems it’s intended to solve, etc… Then, in the lab, or in your spare time, you can search Google for examples of conditional programming in the language you’re currently studying. These examples will show you the current syntax.