I am in my junior year of college and I am considering applying for my schools Jump program. This would allow me to have 12/30 hours done towards a Masters in CS, meaning I would need one year of graduate school. Would it be a wise investment to go to school for one extra year to have my Masters or should I just look for a job upon graduation? This program also guarantees a G.A. position, meaning I won't incur any extra debt. However, I do realize that this would mean that I would lose a years salary. I am not sure what to do, and how degrees affect careers in programming. I have also considered getting my PhD to teach CS at a college. If I go this route, would a masters help or should I directly apply to a PhD program? Sorry this is long winded, I am just very much in the dark when it comes to what is helpful for a career in CS. Thanks!
The answer will always be it depends. You've done a pretty good job of listing out the negatives of the MS degree, principally another year not earning a salary, and not paying down student debt.
The biggest question you ask is
would a masters help or should I directly apply to a PhD program?
The answer is likely yes. You will get to work 1 on 1 with professors, and will have a better idea who you'd like to work with in the PhD program. You can also use your time in the masters program to find funding for your PhD internally, further increasing the chances of your PhD application being accepted. Finally, if you find you do not enjoy getting your masters degree, you should certainly not get a PhD.
Here are some other positives of having a masters degree.
1) Some private companies and almost all government/public jobs will give you a salary bump just for having it.
2) You can choose to specialize in an area you are interested in, which may lead to a job in that sub-field.
3) If you find yourself in a tough job market, it may give you and edge in the hiring process.