General question about C++ Programming/Computer Science
Basically, I'm really thinking about changing majors from Computer Science. I'm now going to be starting my 4th semester at it, and I still have very very basic C++ knowledge and practice at it. I've been at it for 8-10 hours a day my entire winter break and I still am stuck with so many 'programs' not working at all. Compiler errors with no idea why.
I'm just looking for some information as how programming or Computer Science is in real industry, not in school.
My college only teaches C++ for 4 months, during my 1st semester. They taught from "Hello World" to introduction to pointers, (with flow of control, declarations, basic stuff in between). We never really used and of them in any programs, just read from the book up to there. After that, every other course has been a lecture on basic computer theory. We never code again.
I tried talking to my CS advisers, and they admitted that they are not CS majors, (in fact, it seems they never touched Computer Science or programming with a ten foot pole!) They pull out the school's guidlines on CS and repeat it.
My school doesn't help students get work experience till our junior year, basically my 5th semester, and I don't really think I could get a job anyway, with my lack of computer knowledge and programming skills.
I can't get tutor help for coding, since that is only assigned to 1st semester CS students. I ask professors, and they don't answer me in emails or in person, especially since they just teach theory from a book and not code themselves. I've asked my peers, and almost all of them know just about as much as me, save for a few who learned coding a while ago and are just waiting for their degree. They aren't too willing to help out so many people also, (I don't blame them, everyone here is in need of help and ask them...)
I have 3 C++ books, and have been going throught them, but it doesn't help much if I don't have answers to look at and compare to my code, nor a way to find out why my implementation doesn't work, or what that complier error that I'm getting.
I really don't think I'm ever going to be able to get a CS job with the knowledge I got, I'll be graduating in only 2 more years :( I just don't know how it is in the industry, seems no one does at my school. I'm thinking of just changing majors to Information Technology, or to ensure I actually get a job, change schools and go for business..... :(
It's not like I slack off or anything like that. I'm good at science and math, which I have to take along with the Computer classes, but for all the studying I do, I seem to get no where with it.
Any information about what to do with programming or Computer Sciene in the work field would be very appreciated. I have no where else to ask. I'm stuck.
Thank you for your time.
I have to agree... sounds like a bad school.
[DISCLAMER] - I didn't major in Computer Science.
I'm not surprised that some of the professors are not C++ experts. They are probably working on higher-level stuff, and may not do that much actual coding.
However, it is very surprising (and very disturbing) that the advisors tutors & professor's assistants are not more helpful. It is also surprising that your advisors are not CS majors. The advisors at my school (Cal Poly) were all professors in the department.
Things may not be as bad as they seem:
If possible, try to check-out the school's reputation-rating-ranking. And, try to find out what jobs the CS graduates are getting. Maybe you can get some info from your school's placement office. (The last time I tried to dig-up school ratings, I didn't find much... but that was in the pre-internet days.) I sort-of doubt that NJIT really sucks that badly! It is a real university, not a fly-by-night tech school.
It's not unusual for universities to focus on theory. For example, I took Electronic Engineering and they didn't teach me how to repair a TV... or even how TV's work! I'm sure you can major in Mechanical Engineering and not learn how to repair your car. You can learn this stuff in community college... and 2 years of community college will usually give you more practical knowledge than the first two years of university. But, you should be getting a more solid foundation. It is not uncommon to feel like you haven't learned anything. Most graduates seem to have "feelings of inadequacy".
I would assume that a CS student would be required to take at least 4 semesters of programming languages. Maybe 2 semesters of C++, and 2 more semesters with emphisis on specific topics (Graphics, Windows, Databases, etc.), or 2 semesters of another language.
I would also expect a lot of coding required for most of your other CS classes. CS students are often required to to take an OS class and write an OS... How are you going to do that without writing code?
If you really think that NJIT has a lousy CS program, don't change majors. Change schools! A school with a poor CS program is probably week in all technical subjects... It might have an excellent Social Science program,, etc... But, a school named New Jersey Instiute of Technology should be strong in all technical subects.
Try working on the way you develop and debug your code.
I still am stuck with so many 'programs' not working at all. Compiler errors with no idea why.
Start-out with a very small program, and then test-compile and test-run your program every few lines of code. When you write a function, start-out with an empty function that returns some fixed value (if it has a return value). If you develop your code this way, you will always know where your errors are, and you should only have to deal with a few errors at a time. The more experience you get, the more code you can write between tests. But, nobody writes an entire program before testing! You should test every function thoroughly even if you have to write code just to test it. (I don't always do that.)
Also, learn to use your compiler's debugger (to help with run-time errors). You're going to be spending lot's of time programming and debugging over the next few years. A few hours invested in learning your debugger will pay-off quickly.