My background: 5 years ago, I did my undergrad from an Indian University and did some random jobs unrelated to my field of study.My undergraduate grade is 2.92/4.0. Now, I got admitted to grad school(in US) for CS and my grades are not well, I scored 2.80/4.0 for the course design and analysis of algorithms. BTW, I am still interested and feel passionate to complete masters.

My questions are:

  1. How to survive grad school with bad grades and inadequate background knowledge.

  2. How should I work to improve my programming skills? and what are the prerequisite skills in order to be successful in this field?

  3. how to access myself if I am the right fit for grad school?

For now, I am trying to solve online coding challenges(project Euler, coder byte etc). Their easy level questions are a bit hard but I am slowing trying to solve by myself. And want to utilize this summer break to fullest.

Please help me in figuring out things like, and what I should or shouldn't be doing both in my break and to survive grad school. Thanks!

  • That really depends a lot on what field of computer science you want to go into. What you really need to know for systems is quite different from what you need for design and analysis of algorithms, for example. Jul 18 '17 at 0:17
  • The reason I want to join master in CS is to explore and research in the field of Machine Learning, it might be fuzzy logic but has so many advantages to learn( not just commercially). What when wrong with my course work in DAA is - I wasn't able to compete because of my background especially 5 years gap. I still have the choice to repeat the course or to quit. wondering if I am the right fit.
    – Sri
    Jul 18 '17 at 3:00
  • 2
    Do you know specifically what background is missing? Mathematics? Programming skill? Aug 17 '17 at 1:13
  • 1
    @JeffE Being a nitpicker, the sentence is "Can just passion help for surviving grad school?" It can surely help. Yet, is it sufficient to pass, in the absence of everything (what exactly) else? Probably not, depending on the "everything". A passionate rock will not pass. A passionate but not painstakingly diligent student might. In any case, I'd say the question title could do with some clarification - or "help" removal ;) Aug 18 '17 at 15:14
  • Mod note: I accidentally deleted the following comment from JeffE: ""Can just passion help for surviving grad school?" -- No. Passion alone is not enough."
    – aeismail
    Aug 19 '17 at 21:38

You do not sound like the strongest CS student. It appears that with luck, you will just "get by" in CS, and graduate near the bottom of the class. As long as you are resigned to that likelihood, and to just doing what you need to survive, you should continue.

The potential rewards could well make the effort worthwhile. Modern corporate development, particularly management, is about computing. I envision a "management" track for you, rather than a programming track. And if so, your skill level, such as it is, will give you the advantage over many managers. Your "passion" would be a big plus in this environment.

Your "endgame" may well be a degree in management, with CS only as a stepping stone. It might even make sense for you to leave CS, take a degree in management (MBA or Indian equivalent), and return to CS later when you have better idea of how to "manage" yourself in such a program. Some MBA programs even offer CS as a minor, so you could take "a few" more CS courses there without risking a whole degree.

  • Your answer break down might not be what I expected, but I would definitely rethink my master's consideration. Thank you for the help!
    – Sri
    Jul 18 '17 at 2:51

It is hard to gauge if anyone is a fit for a particular field from the outside and from grades alone. A lot of people in CS (and other fields) struggle initially with very mediocre grades or some failed courses but go on to be outstanding later on in their studies (perhaps concentrating on a narrow sub-field), some get PhDs although they only barely got their Bachelor's.

However, there are different directions you can take with CS that require different basic abilities which may be relatively easily learnable background knowledge or talents hard to acquire later in live. If you lack those abilities, you either need to work harder than others to make it in the respective field or you need to look for some other field (or some niché sub-field that caters to your abilities).

At many universities, you get thrown a mix of all those facets at you in the beginning. Thus, if you're only good in some areas your average grades will reflect that. Also pre-existing knowledge varies highly among students at the beginning and typically levels out later. One important thing you should do during the time until you get your Bachelor's degree is figure out which areas fit for you and which don't, so you can focus on the right ones in your Master's or when looking for a job.

One basic distinction is theory and practical applications. If you love math and theoretical logic, but cannot deal with technical problems, you may be bad at the latter and excel at theoretical CS. Similarly, if you love to write a program, but you don't care much about complex theories on how compilers and programming languages work, you are more on the application side. However, in each of these main areas there is a ton of different sub-fields that require different abilities. Are you into finding the right tools for the job and want to know them all or are you into working with data and finding the right algorithm to efficiently process huge chunks of data? Or do love concurrency problems and parellization? Or hardware tinkering? Or do you look more at the endresult, love to discuss variations of how to do a UI and how to do team-cooperation? Or something else entirely?

In essence, grades are only a rough indicator how you broadly do. You need to figure out what it is you actually love about the field and what abilities you have - and then go for a direction that brings both somewhat together. I would think about going for something else if you cannot find such a combination rather than if your general grades aren't top-notch, especially at the Bachelor level.

Determination can make a huge difference. If you love what you do and you can produce at least acceptable results, I'd always say go for it. You may not become the best in your field (or it may be a hard walk or maybe it turns out easy once you made the hill in front of you), but either way, you can still have a more satisfying life than if you do something you don't enjoy and are not much better at. Just try to get a feeling for what you can and cannot do and be always open about it. Still, sometimes we also have to admit that something isn't the right thing for us. That decision however, no one can make for you, in particular not with the limited rough information on such a forum.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.