Quote
Definitely not. Graduate school assumes a solid foundation in the core CS courses. IMO, graduate school isn't such a bad idea, but you should consider taking a few CS undergraduate pre-requisites. Usually, there are a few courses M.S. programs require non-CS graduates to take so they don't get left behind in the material. It sounds like you're doing an IT-"Applications Programming" degree, and you've missed out on the core CS courses.
I once did the material for a graduate Compilers course after completing the undergraduate course, and both assumed you had no prior knowledge of the material. The only difference is that there was more to digest and more complex coding in the graduate course, but I feel as though an undergraduate could of done the graduate work with more time and effort. Basically, you could have came into either class with the same background and done just fine in both. That same graduate course at UPitt was the undergraduate course at Stanford. Depends on the school really.
In IMO, most graduate courses just cram more material in a semester and make you work a lot harder. And from what research I've done on the net about it, most agree that conceptually it's not too much harder. It's made for CS undergrads who want to delve deeper into what they've learned (or they want a PhD), or for non-CS graduates looking to get a CS education. Hey... at least you'll know more than non-CS graduates!
As far as Math is concerned, I've rarely seen a need for more then College Algebra and Discrete Math. I wouldn't worry about proofs one bit. They're used a lot in certain courses, but students are never required to write them. Half the proofs I see, I don't even care to understand past a certain point. I have taken courses in writing formal proofs with predicate logic, but I've never seen a relation between them and the informal (and usually intuitive) proofs that are used in Algorithms courses. So.... just brave it out.
I've never formally learned Linear Algebra, but I've been able to pick up all the bits and pieces I need when it's time to. I want to say it's about the same with Calculus. A basic understanding of the concept of the derivative, integral, and knowing how to use Wolfram Alpha should suffice. Often, you don't need in depth knowledge of Calculus. You just need to know how to carry out a simple calculation that's required in the process. Yet, professors feel the need to list it as a pre-req. But....sometimes the listed pre-reqs really are necessary. It's usually pretty easy to figure out how much Math really is required of the course by talking to the professor, looking at the course website, or talking to past students.
On the other hand, you do have some programming experience and a degree, which may be enough to get you an internship now. I'm not a working programmer, never have been, but apparently, the preferred skill set is an aptitude in programming and a strong foundation in Software Engineering techniques. To me that means doing stuff the easy way -- plugging libraries together, using large pre-built software bases, adding small customized extensions when necessary, business requirements elicitation, etc. At least that's for the typical non-Systems programmer. So... a lack of mastery in theory is OK for typical development as long as you appear to have a good grasp on how to get whatever is asked of you done.
You could get some industry experience before deciding to go back to school, although I've heard it's a real pain, since graduate school will take up a considerable amount of time.
You could also take advantage of the various open education platforms (Coursera, edX). They offer very good classes, some of which are quite difficult and are the exact replica of what's offered at the school.
You could always ask someone, like KYA, who is currently in a CS graduate program. You could also visit the CS department and talk with a faculty member.
Quote
Tech reading is light reading, whereas Textbook reading is work. There's reinforcement there. As much as we hate working through dry material, it's the only way to truly understand things, where you won't have patches in your knowledge. If you're going to invest time into formally educating yourself, you should be reading through book material and doing book problems. If your time is mainly into programming, then tech reading is probably fine.
Quote
Exactly. Math is just a way prove stuff or formalize about something. How the network stack works, how languages are designed, how Machine Learning works, they are considered CS theory as well and are usually what interests students the most. And when you apply what you learn from them, Math isn't crucial in doing so.
In summary, don't let Math scare you out of pursuing the degree. If you decide to matriculate, you should definitely take Discrete Math as a pre-requisite before fully entering the program. Perhaps taking a CS Algorithms and Systems programming course isn't such a bad idea as well. Based on your grades, judge whether you think you'll do well in graduate school. Also, if Math isn't your thing don't expect to take Math-intensive courses. You should probably refrain from "Advanced Algorithm Analysis" if you can. Lol... Go for stuff like Databases, Compilers, Operating Systems -- the Systems track -- as they don't involve a bunch of Math. And lastly, always remember there are people out there who are willing to help you get through what you can't on your own.

New Topic/Question
Reply



MultiQuote












|