I'll keep the story short here but to sum things up:
I have always liked computers. Hardware has always been my thing. I have my own custom built desktop and love changing and messing with it every day. I also work (part time) as an IT guy for small business. I mainly do software deployment, imaging. I help choose hardware when ordering and can basically fix most software related problems that are experienced in the real world. Ok.
I am a junior at my university getting a CS major. I have always been bad at math. I failed calculus once and got D the second time. Comp sci can be very mathy and honestly I am pretty bad at it I feel. I have survived through the classes but don't think I am at the level I should be.
The first year here I had a basic Python course with a guy older than the sun. He retired the next semester and basically I learned nothing new from the class. I already knew how to do basic variable assignment, basic function calls and arrays just from Youtube and personal curiosity.
OK. Next up was beginning C++. The guy that taught the course would be fired a year later. He "taught" this beginner course by handing us relatively complex programs and saying you need to figure out the code to fix this and make it work. Or write this whole function to make the rest of the program work. Well this approach left me confused and angry mostly. Instead of just having us build the whole program ourselves and taking things a step at a time we were patching in fixes for complex classes.
Next up was even more advanced c++. This professor would be fired at the end of the semester. This area was not her expertise. She basically told us half way through the semester that everyone in the class would get an A as long as they turned everything in. I would have failed this class no doubt if it wasn't for that. I got an A and felt that I had gained nearly 0 from that class. Skip to this year. Doing Python programming for things lie web sockets and language models with ngrams. I have passed through the year basically borrowing code from online and piecing it together. I can understand well enough to tailor a program already written to suit my needs but if I had to write start to finish any of the programs assigned so far this year I would have been sunk. I feel like to survive I will continue this trend until graduation upon which I will be handed a CS diploma. I fear I will not be at the level anyone is / I should be at.
What kind of skills / tutorials should I brush up on over the summer to try and gain programming skills that I might need?
Can I get a job doing the same real world IT type stuff with a CS degree? (And still actually make money)
Thanks for any input. Just hoping to somehow figure this out.
Sorry for the book:
TLDR; comp sci major that doesn’t know how to program