<p>So CS grades just came out for CS61B, and... I did much worse than I thought I would. I got a C+, thinking that I'd at least be capable of getting a B+.</p>
<p>Realistically, I know I should have done more practice tests, asked the TA's for help, et cetera, and I've thought this over several times. I've resolved to go to office hours more often and start studying ahead of time. I've quit most of my extracurriculars, so next semester I can have more study time. I've already started learning 61C material. Okay.</p>
<p>The problem is, my grades are generally pretty bad. My technical GPA is sub-3.0, though my overall GPA hovers around 3.1- this is mainly because my other major is fairly easy and has been pulling them up. </p>
<p>I only started studying CS once I entered Berkeley, but I feel like this isn't a valid excuse, as there seem to be plenty of people who are the same and have much higher grades. In CS61A, I also did every single project solo and got over 90% on all of them- yet I still got a B in that class- and low grades in all the other prerequisites. I love CS, but I keep doing "badly"- and that low self-confidence makes it very hard to believe that I can succeed in this field. </p>
<p>I am also currently a sophomore- I spent last summer taking classes, and I'm already enrolled in CS61C for the summer. I have two jobs, but one is IT support, the other is design-related. So Berkeley CS majors, given this information, should I quit CS while I can? If not...</p>
<p>1) How can I boost my understanding of CS and my GPA?
2) How (and should I) to start applying for research?
3) How do I apply to my first programming-related internship?
4) Should I go to Hackathons? Do I even stand a chance?</p>
<p>I don’t know the average grades of CS classes, but people throw around B/B-, so you’re either average or just a bit below. As to your other technicals, I assume you mean physics and EE. As long as you don’t want to build circuits, those don’t matter at all. Even math, is not that important (though nice to have).</p>
<p>What exactly are you doing bad on? Exams, homework, projects? Exams aren’t that much to worry about, unless you really want shiny grades. As long as you’re understanding most of the course material, it should be fine.</p>
<p>2) If you want to go to grad school or are interested in research, do it. Otherwise, there’s not really much point.
3) Keep an eye on the mailing lists, and also go to fairs when available. (Yeah it’s annoying…)
4) Do you find them fun? Personally, I don’t see the point, but if they’re your boat, then try them out. It can’t really hurt, you lose a day of time, and at least get to see cool things people cook up. Though I was under the impression that usually they involved teams of people.</p>
<p>Official average is around 2.7, which should be a B-.</p>
<p>I’m also bad at math and science, just straight up terrible at physics especially, but I at least passed those classes. But I can manage most projects, and homework, though tedious, I can usually manage on my own. I do browse Piazza frequently.</p>
<p>I do the worst on exams. Even when I believe I know the material and have answered the questions adequately, I do ridiculously bad. There have been a few exams that I assumed I could up for with my final, e.g. for one class I got 1 std above on the first midterm, 1 std below on the second, and… the final also ended up being a mess. I’ve decided to work my ass off and not take those chances anymore, but even so it hurts. :/</p>
<p>Well, then gradeswise, you don’t seem in a very bad position. As for physics, you don’t need any more of it now. If you can do projects and homework, then that is good. As for exams, the link between doing good on exams and good programming ability seems rather tenuous. So even if you do bad on exams, it’s unlikely to be really an issue (unless you actually don’t understand the material).</p>
<p>But to become a better programmer (I assume you prefer that, as opposed to say, complexity theory), it’s definitely important to work on a side project of some sort (do it in something you find interesting and/or useful; that definitely helps a lot). It probably won’t help with your classes much (except that you’ll find it much easier to code things), but it’ll be beneficial for your actual job.</p>
<p>I’m going to play the role of the pessimist here, and tell you that you should seriously evaluate whether CS is right for you.</p>
<p>You said you got a B in 61A and a C+ in 61C. The problem is that the classes don’t really get easier. 61C is supposed to (from what I’ve heard) get harder, and the upper division classes (algorithms, systems), are going to be even more abstract and mathy.
The caveat to this is that generally a person’s freshman year grades are the worst, and they tend to improve as they become more senior.</p>
<p>You yourself state that you’re bad at math. The problem is, it is very, very rare for someone to be good at computer science and flat-out bad at math (this is especially true for high-level CS jobs). In fact, in my experience, anyone who is very good at math is almost guaranteed to be good at CS (even if they’ve never done any CS).</p>
<p>I agree with Jamie that working on a side-project is going to help your programming skills for a job. However, I think it won’t help your class performance at all. I think you really need to improve your exam skills: you would be better off studying logic puzzles and things like that (which would also help you during job interviews).</p>
<p>If you do continue with CS:
You should only do hackathons if you find them interesting.
The IT job sounds kind of pointless and menial; you might consider dropping it?</p>
<p><strong>Go to office hours and TA office hours and ask for help. You should go even if you don’t have a question (make one up or ask about the homework). This definitely will help you be a better CS-er.</strong></p>
<p><strong>Join a study group. Studies show that most learning is done through other people and through group projects.</strong></p>
<p>Hey man, C’s get degrees. A 3.1 overall in CS is still better than a 3.7 overall in say…Political Science. You’d still get some decent jobs with that CS degree from Berkeley.</p>
<p>I’m in the exact same position as the OP. I did fairly average on the CS 61 series and I’m kind of scared of how I’d do on the upper division courses. I am capable of doing the projects on my own and chose to on some of them. On top of that, the upper div will be filled with mostly EECS/CS majors unlike the lower div which had alot of non-CS majors so I’m scared of how I will fair on the curve. Although the averages seem to be higher and they give out less D’s and F’s so that’s good. When it comes to exams, I always do bad on it and I mean like C’s, D’s or F’s but my project grades always boost my overall grade. I was really worried at first, and trying to consider whether CS is really for me. But we’re in Berkeley though. Chances are, even if we’re doing bad here, we could still potentially be better programmers than people from other schools. Like what Jamie235 said, I don’t think there is a correlation between how you do on exams and the projects. The projects are definitely more important I think. </p>
<p>I really hate when people makes me re-evaluate my goals about being in CS. I mean, they have a point but it really SCARES the crap out of me cause it makes me feel like maybe I’m not in the right major. However, sometimes it just makes me think about the people who went to a lower-tier school. I have a friend who is a CS major and graduated from SFSU. He had about a B+ average but he’s doing well right now, he even owns a condo in downtown SF. I don’t think that the exams in Berkeley are a good predictor of how you’ll do as a programmer. If we had gone to a lower tier school, we can probably get that CS degree easily.</p>
<p>But anyway, I still think that CS is for me. On a scale of 1-10 (10 being really fun, 1 - boring, feels like work), it’s about a 7-8 for me. The best thing I like about it is how time flies by when I’m working on a project. I’ve worked an admin job before and it nearly killed me how boring it was. But with CS, I just like how it requires you to think. I think that once I start working, the 8-9 hours at work will fly by.</p>
<p>Also you can’t be that bad in math. You made it through Physics. Maybe you’re just saying that cause you didn’t get the grade you hoped for?..just keep in mind that CS will always involve math if you want to stay on this field…</p>
<p>Saying that I’m “bad at math” may be a bit of an exaggeration- I did finish Calc BC in Junior year, with an A and a 5 on the AP. And I would still say I’m bad at Physics; I barely passed EE42. However, CS70 was very difficult for me.</p>
<p>I submitted my resignation to the IT job a few weeks ago. Like I said, I also quit most of my other extracurriculars. Joining a study group sounds good, I’ll keep an eye out for those. Doing side projects also sounds like a good idea- things like writing a game, IRC bot, etc, am I right?</p>
<p>Why do I like CS? I like the idea of being able to design something that both solves my problems and other people’s problems. I do enjoy sitting down and coding- and seeing the results, and I know that the work is never done- there’s always something I can do to make my program evolve. I’m very interested in AI. Somebody told me that I should look for a job in which I enjoy the people- and nearly all of my good friends, and a good amount of the people I admire most are CS majors. </p>
<p>And sgtbrecht, I totally agree with feeling terrified of my future. My case may be different than yours, since I’ve already declared a Cognitive Science major (effectively both a back-up and potential double major), but I do believe I want to do a CS job in the future.</p>
<p>By the way, thanks to all of you for the good advice- I’ll try my best. Are there any more concrete things I can do to study if I’m on my own though? Or good online or print resources outside of Berkeley?</p>
<p>Judging from this post and others abuzz in the college information arc, CS at UCB seems insurmountably hard. I am not a math maven, but I am doggedly hardworking. My fellow sirs, how difficult would it be for a very disciplined chap (who plumb trounced associate competitors with “A” grades in high school math courses) to maintain a 3.7+ grade point average WHILE sleeping a full 9.25+ hours everyday (lest my body sickens)?</p>
<p>61C is harder than 61a/b. you will have to take at least three more CS courses - 61c, 150 and 170 if you want to get a CS-related job. probably some more. there is only one way to boost your understanding of CS and your GPA. STAY FOCUSED AND WORK HARDER.</p>
<p>Honestly, if you’re concerned about GPA correlation with GPA, very few companies will ever ask to see your GPA. Of the top companies I applied for an internship this summer, only Google and Microsoft straight up asked for a GPA and only Google asked for a transcript. Facebook, Amazon, and LinkedIn were the other companies that did not require seeing my grades.</p>
<p>I’m a freshman this fall so I feel hesitant to attempt to give advice on anything… but have you talked with your peers to see why you might be struggling, or why they’re not? </p>
<p>Often there’s something else to the story than “Oh the kids getting A’s are just geniuses.” Sometimes they’ve just happened to use all the right resources–TA’s, past midterms, etc. It doesn’t hurt to try to get advice from kids doing well anyways.</p>
<p>I never understand why people talk about “becoming a good programmer”. CS has very little to do with programming. Hell, a 12-year old kid can be a great programmer. Actually I’m pretty sure that there are more 12-year old “great programmers” than Berkeley EECS graduates Programming doesn’t need much theory or intelligence, it’s something you can practice and become good at, like cooking. If you want to become a good programmer have a side project or go to Hackathons, work in the industry, or whatever. You don’t need to study CS for that.</p>
<p>Also don’t forget that different fields of Math require different kinds of thinking. Personally I’m not very good at Physics and Analysis either, but it never was problem because not much of it is required for CS (except for certain fields). However, if you struggled with CS70 then that would raise a red flag for me. That’s exactly the kind of math you will see in many subfields of CS.</p>
<p>
And you went through the whole process with these companies? I’m pretty sure they will eventually ask for grades, but maybe not right off the bat.</p>
<p>
Nobody can answer that, it depends on the individual. For some it’s easy, for some it’s not achievable at all, regardless of how much they sleep or study.</p>
<p>@Thomas_: I did go through the entire process through all of them. The company I will be interning with (not MS, not Google) is doing a background check before I start work. I think they will ask for a transcript to verify my attendance at Berkeley since they are asking for documentation after extending an offer to me.</p>
<p>I have a question for all you CS MAJORS: If you’re really good at math, like Calculus, Statistics, and anything else below that, BUT suck/struggle at physics, can you still be good at CS?</p>
<p>I’m going to be a beginner CS major at Brown next year.</p>
<p>@Stonesn: Are you interested in low-level circuitry? If so, your lack of physics skill may be a problem. If not, then unless you’re building a physics simulator or something, you’ll never use physics again in your CS career.</p>
<p>Physics doesn’t necessarily correlate with CS; you are never going to use calculus in a computer program (okay, maybe in a few cases, but it’s rare).</p>
<p>However, from what I’ve heard, logic and stuff like CS 70 will be very, very important.</p>
<p>I also agree completely with Thomas.
As an example: my father works at Google, and basically he barely asks his candidates any “programming” questions. As long as you have a degree in CS from a place like Berkeley, you can program. His main type of questions are logic puzzles (his personal bias: he was a math major). So a logic puzzle would be like you have 12 apples, a bad apple, and a scale, and you can only use the scale x times, how would you find out the bad apple, etc. If you can nail his logic puzzles, he will be very impressed. Because honestly, your knowledge of x data structure, or y algorithm can be simply read from a reference manual.</p>
<p>Also, I said this before, but I can’t stress enough the importance of:
Forming study groups with people smarter than you. Seriously. This will really help, because they will point out specific flaws in your logic.
Talk to GSIs, professors during office hours! For the same reason as #1.</p>