ASK HN: From lit major to Computer Science Masters?
samratjp: Well, even not half-decent schools (the good ones) accept non-cs folks, but with the stipulation that it would serve you better if you came from a math background (engineering, etc.)What the admissions folks want to know is whether you can handle the workload and can contribute something of significance in the form of a thesis or a project. As about workload, you will invariably encounter systems programming, operating systems, compiler construction and some theory class. Of course, this may not be true everywhere but is an indication of a good grad program's basic requirements. To succeed in those classes (and beyond), you would be advised to have a good grasp of at least C, Java or C++, data structures and algorithms.Now, if you really want to go through with this, you can succeed if you spent some time studying. Start with MIT OpenCourseWare. Master the intro class with python as a gentle intro (checkout Google's Python class for great intro). Then write those some programs in Java. Then, write those same programs using Object Oriented Programming.Then look into data structures (arrays, lists, hashes, trees) and the big algorithms (start with path finding - dijkstra, other shortest paths, sorting, and if you have time - strongly connected components, suffix tries, etc.) Another big concept you need to understand is Big O notation - something that tells you how complex a given program or algorithm is (it's nice to know sometimes to compare one algorithm to another on basically how fast it can run - e.g a big O of n^2 O(n^2) is worse than O(n))Now, all of the above is just good preparation for the fun parts you will do in a Master's. You should spend some serious time hacking around with C (get this book - http://en.wikipedia.org/wiki/The_C_Programming_Language_%28b...). The best way to play around with C is to mess around with Systems Programming in UNIX. Get Systems Programming book (http://www.amazon.com/Advanced-UNIX-Programming-Marc-Rochkin...)Having said all of the above, do you know what you are interested in doing with a degree in C.S? There are some nice interdisciplinary programs where you may not have to do all the hardcore stuff I mentioned above but still dabble into as much detail as you'd like. Look into programs like Michigan's School of Information, for example.Hope that helps.