When you finally get that eureka moment and your project works it is very rewarding. In 1st year I made a program to do nodal analysis in the frequency domain and it was such a relief when the right results popped up in the console. You do get some proper bastard programming projects to do but they can all be solved if you give yourself time and work on it. I still know a few people who are like "EWW programming I suck at programming" but it's kinda a social stigma that people believe it is hard. It's all practice and the more you practice the better you get at it.
Exactly, this is so great. Like I said, a program that sorts words by frequency and saves/loads files sounds boring to use, but when yours works it's really a great moment. Also, if you do any breadboard projects, those are the most fun, since it's literally getting to see lights come on (I have no idea why this is so exciting but it is).
Hmm, so what kind of programming language do you use and what kind of mathematics is involved?
Most CS programs do C++. There are some schools that do all Java, which is something you should look out for. I'm sure some schools have legitimate reasons for this, but a lot of schools do it to make their CS programs easier to get more people involved, and students have trouble later down the road. But yeah, C++ is the typical language. Don't sweat it though, I taught middle schoolers C++ over the summer, you will hit hard parts but overall it's not as hard as you'd think. As for mathematics, I guess I've mostly just seen algebra. A lot of times C++ will be using mathematical principals, but you don't always SEE it as math. Like I said, middle schoolers can program. However, I'm only two years into my CS degree, and I know there are certain applications in CS that use more advanced math. Just don't sweat it because of the math, you'll get the math you need, most CS programs don't require as much math as they used to. Math is very IMPORTANT in CS, but you shouldn't sweat the classes.