> because a lot of the time I don't have something specific to ask.
That's okay. Most TAs/professors will still help. Unfortunately some are assholes and if you get those, sorry. But the best way to deal with this is by asking them how to get started with a problem. Or to also ask about problems you've already solved. Here's some templated questions, modify for your specifics
I've been struggling solving this problem, can you help me get started? I tried {x,y,z} but that doesn't seem to work because {a,b,c}.
I solved this problem, but it took me longer than I think it should have. Can we walk through it together so I can see how you would approach it?
I'm having a hard time starting problems, not even knowing where to begin. Do you have any advice?
Can we do more problems in class?
I came from physics and am finishing up my PhD in CS, so the last one might not be as good except for stuff like algorithms. But one key piece of advice for the getting started problem is to do more problems.
In physics, the first thing I'd always start with is a force diagram and writing down my knowns and unknowns. This way I could do a form of dimensional analysis and then I had to just figure out how to convert. I then took these skills to CS and found a similar avenue. Your professors saying to write pseudo code aren't just trying to get you to do more work. This is your map.
I take this same approach when I program. I write mostly in python so this works real well. I use vim and so will have one pane open to my file and another to an ipython terminal. I can test my logic in the terminal and write code side by side. So I try to write something quick first (think "write drunk, edit sober"). Then I start writing my function and I start by writing a small description and the arguments. As I'm writing this, I find my mind often finds edge cases that I can account for. A few minutes of back and forth, and I got a pretty good function. Essentially, I am using documentation as a rubber ducky or the Feynman Method[0].
I also highly suggest working with other students. There's a lot of good reasons for this. They'll see things in a different way than you, and one of the most important tools you can build is getting these different viewpoints/perspectives. Another is you're growing your network. These are very important for jobs. And probably most importantly, you need friends and a social life. If you're kicking yourself when you're down too much, you're gonna be slower at solving problems. Sometimes the best thing to do is get up, take a walk, and come back (that's the hard part).
Also, ask questions in class. Don't worry about what other students think. You're paying for the professor. In today's age you can probably find better lectures online. So get your money's worth and ask in class. Most professors actually will be happy because when lecturing we hate having just blank stares and silence. We all dread the "does this make sense?" question and the absolutely unconvincing murmur of "yeah". Make your time count. I know it can be hard to be engaged, but also asking questions will help with that. And absolutely do not be afraid to interrupt or ask them to slow down. You're paying way to much to just sit in an in-person YouTube lecture.
That's okay. Most TAs/professors will still help. Unfortunately some are assholes and if you get those, sorry. But the best way to deal with this is by asking them how to get started with a problem. Or to also ask about problems you've already solved. Here's some templated questions, modify for your specifics
I came from physics and am finishing up my PhD in CS, so the last one might not be as good except for stuff like algorithms. But one key piece of advice for the getting started problem is to do more problems.In physics, the first thing I'd always start with is a force diagram and writing down my knowns and unknowns. This way I could do a form of dimensional analysis and then I had to just figure out how to convert. I then took these skills to CS and found a similar avenue. Your professors saying to write pseudo code aren't just trying to get you to do more work. This is your map.
I take this same approach when I program. I write mostly in python so this works real well. I use vim and so will have one pane open to my file and another to an ipython terminal. I can test my logic in the terminal and write code side by side. So I try to write something quick first (think "write drunk, edit sober"). Then I start writing my function and I start by writing a small description and the arguments. As I'm writing this, I find my mind often finds edge cases that I can account for. A few minutes of back and forth, and I got a pretty good function. Essentially, I am using documentation as a rubber ducky or the Feynman Method[0].
I also highly suggest working with other students. There's a lot of good reasons for this. They'll see things in a different way than you, and one of the most important tools you can build is getting these different viewpoints/perspectives. Another is you're growing your network. These are very important for jobs. And probably most importantly, you need friends and a social life. If you're kicking yourself when you're down too much, you're gonna be slower at solving problems. Sometimes the best thing to do is get up, take a walk, and come back (that's the hard part).
Also, ask questions in class. Don't worry about what other students think. You're paying for the professor. In today's age you can probably find better lectures online. So get your money's worth and ask in class. Most professors actually will be happy because when lecturing we hate having just blank stares and silence. We all dread the "does this make sense?" question and the absolutely unconvincing murmur of "yeah". Make your time count. I know it can be hard to be engaged, but also asking questions will help with that. And absolutely do not be afraid to interrupt or ask them to slow down. You're paying way to much to just sit in an in-person YouTube lecture.
[0] https://fs.blog/feynman-technique/