tags:

views:

539

answers:

15

I'm currently pursuing a computer science degree and I'm faced with the yearly task of deciding on my schedule. In a previous year, I had pushed myself so hard that I found that I'd learn each concept just long enough to forget it and move onto the next assignment. This is pretty routine for university, but is it really helpful? Would it be more beneficial to take one less course per semester and let the topics really sink in? Or would it be more useful to push yourself to your limits and experience true-hard work? Which will do more for you once you've graduated?

A: 

I think you will have plenty of hard-work and deadlines ahead of you when you start in industry, so the really important thing is to ensure you understand the concepts.

Ciaran Archer
+4  A: 

Just pick up easiest schedule. That will give you enough time to do real investigation / work / programming on your own. Of course, by easiest I mean easiest by still relevant.

Dev er dev
+1 Yeah, make sure you get a whole day off too if you can.
Dead account
Some of my friends do 8 hour days Mon,Wed,Fri and have Tuesday and Thursday off every week.Lucky bastards.
samoz
@Ian and samoz, It is not the class-time that really takes a bite out, for me. It's the average of 7-10 hours of homework per 1 hour of class in a lot of these courses that really gets me worried :)
Chris
If you're doing a CS degree I can reasonably assume there is a non-cs equivalent, such as Computing or Informatics, which should be where you go to take the easy modules. Take hard modules, the harder the subject the less likely you are to understand it without a mentor, I've yet to meet anyone who can understand NP-completeness proofs without tuition, and the difficult stuff is where the point in Computer Science lies, if you just want to learn eCommerce go do informatics!
Ed Woodcock
A: 

I'm also a university student in CS so I thought I'd chime in.

I usually take 2 CS classes per semester, and then I take other more general classes. This way, I don't have too much CS work to do so I can still learn it, but at the same time, I'm getting enough credits from my other classes to stay on track.

I find 2 CS classes works out well for me.

samoz
+3  A: 

Perhaps it's just me, but I really don't see the contradiction. Isn't the entire point in pushing yourself to allow you to better keep up and understand the curriculum?

Pushing yourself to not learn seems pretty pointless.

Push yourself to learn what you're supposed to learn.

jalf
It's moreso an issue when I line up my schedule and it's packed full of all of the courses that are going to have you pulling consistent all nighters. It's a question of whether I want to sleep for the next 4 months and let concepts really sink in, or not sleep for the next 4 months, experience a ridiculous work-load and walk out with a very, very loose grasp on the concepts.
Chris
So the question is not "should I push myself, or try to learn" (there's no contradiction between those two), but "should I try to reduce my workload a bit allowing me to focus more on each course?"
jalf
Poor wording on my behalf, exactly :)
Chris
+1  A: 

University is more about getting yourself kitted out with the mental tools for the trade, rather than learning how to use the actual tools of the trade. As such, there's benefit in gaining familiarity with working hard, and also immersing yourself in-deep into the background of any given topic.

I'm less inclined to suggest hothousing as a desired approach though, seeing as I've always been a bit of an idealist when it comes to university education :)

Jeremy Smyth
A: 

It's more important to network, and enjoy what you're doing.

For example: Join some social clubs, and attempt to work together with afew people on building an iphone app, or a website.

Those experiences, plus a solid theoretical foundation will serve you well in the future.

Bravax
This is a good point, and possibly indirectly answers my question. How would you have time to join social clubs if you were taking all of the time-consuming courses at once and didn't have time to breathe?
Chris
A: 

What college taught me wasn't that I needed to have an expert level understanding of every course I took, but to be familiar with it.

For example currently in a project a co-worker is having to replace 1 C++ type with another. To help him with this he was trying to write a lexical parser but couldn't remember the name and thus couldn't look it up on how to do it. I remembered the name, but in no way could I write a lexical parser. I was just familiar enough with the topic to go in the right direction with research.

I took more classes and got an overview because I wanted to be done quicker. In reality most of the stuff you will learn about every day development will be on the job. CS degree is a base line not the end all be all. The biggest part about being a developer is a willingness to learn EVERY DAY.

David Basarab
A: 

If you're forgetting absolutely everything you learn in a class, what was the point of taking the class. Employers will be far less impressed with your GPA if you lack the knowledge base when you're asked basic questions about the topics you supposedly studied.

Certainly push yourself a little, but you should also be enjoying what you're learning. Try using what you learn in personal projects or otherwise looking deeper into the topics you study. That way the information will sink in a little deeper, and you will have gotten a lot more out of the course than simple comprehension.

AlbertoPL
A: 

If your goal is to enter the software industry, focus on getting the degree. The number of times you'll ever encounter one of the concepts that you're struggling so mightily over will be vanishingly small and will play no role in your getting a job. Your having a degree will.

drewh
+1  A: 

Don't burn out on too many CS classes at once. I took 3 CS classes one semester, back to back to back. Although it gave me Friday's with no classes (because they were M/W classes), it was still a rough semester.

I'd say take at most two CS/Math/Stat/Physics/etc. classes a semester. Then one or two other required classes (I had general education and college of arts and sciences that I had to take at UNC) and one "fun" class that you know you will enjoy. Preferably non-CS related. Go pick an interesting class you might like. Try and minor in that subject. Give yourself something other than CS to think about! I picked up a History minor because I found modern European history interesting and kept taking one class after another.

Bryan Denny
Interesting. How many classes do you normally take per semester? I'm geared up for five (full semester) CS courses, right now. My options seem to be a little thin, and I've done 4, so this made sense.
Chris
I just graduated this year.Since I took little to no AP classes before college, I had to take 5 classes/semester my first three years. My senior year I only took 4 classes/semester.
Bryan Denny
I took 6 classes classes last quarter 4 of which were math or cs and didn't really have much of a problem, I think a lot of it comes down to personal preference.
Jacob Schlather
A: 

"Never let school get in the way of your education." - Mark Twain

Graduate as fast as you can. Get an internship/job and continue to learn. You should be leaning more outside of the classroom, but take advantage of what is being presented.

Jeff O
+2  A: 

This question depends entirely on who you are. If you are the type who wants a buffet of subjects instead of a single course, then you would naturally work to get more in. Personally, I get excited by things that interest me intellectually, so in addition to my regular course work, I did other projects on my own just because they interested me. I also routinely did an independent study each semester to study one particular thing in depth.

Unless you see a particular benefit to having an overly aggressive schedule, it's probably better to take a realistic schedule and have more leeway to explore.

plinth
+2  A: 

Focus on courses which interest you personally if the university offers such, and the material should have a higher chance of sticking with you. Besides that, as long as you don't risk delaying your graduation (if it's an issue with you - may not be), you should cut back on courses if you feel that they are overshadowing your learning.

In Computer Science, while individual methods of doing things (i.e. niche applications of knowledge or language specific ideas) aren't particularly important, understanding the important general concepts such as networking or threading can be much more vital. As most of the language and environments du jour change fairly frequently, it's more important to be able to understand and work with a variety of topics than memorize design patterns (not that design patterns don't play a fair role in software architecture).

In summary, if you're worried that you're going to be leaving knowing nothing, slow down and pay more attention - but don't sweat the small stuff.

Jon
A: 

You dont need te "learn" each concept. You do however need to be exposed to and get a basic understanding of it. Take a deep breath, take the plunge, finish, and get out to the real world ASAP. Your real education, the one that matters, starts the day you graduate.

Silly Rabbit
A: 

My preference back when I was in university was to take the courses that I considered fun and interesting while also meeting my degree requirements. So, I would take some courses like "Symbolic Computation" and "Computational Complexity Theory" that while the material itself isn't directly useful to general software development, these classes did give me some idea of what there is to these elements of Computer Science. Symbolic Computation was a great contrast to Numerical Analysis and I remember pieces of each course even after a decade from when I graduated.

There are some big factors here to my mind like what kind of degree are you wanting, do you want to take those killer courses? Where I went to university there were 3 such courses: Compilers, Real-Time and Graphics. I didn't take any of them as I preferred more theoretical material and so I took courses in that. I also enjoyed having a semester that was all Math and Computer Science subjects which some may think would be brutal, I rather enjoyed but then I struggled in what others viewed as an easy course.

Even my electives were chosen with some thought as to how hard would this be, what resources did I have to help me and did I think I'd enjoy this. My electives ended up being a mix of Science, Chemistry and Biology, Languages, French and Russian, and a couple of other, an Economics course and a course on Civil Law. The science courses were rather easy as it was material I remembered from high school mostly while the language courses had a fair bit of the grade being just attendance alone, usually 20-25% which was sweet to my mind.

I even took an advanced graduate course on "Asymptotic Enumeration" that was really cool to my mind but I'm not sure many other people would find that interesting. Combinatorial Optimization was another course I took that I enjoyed but I'm not sure how well others did.

JB King