37 comments

[ 597 ms ] story [ 1207 ms ] thread
This is a really nice analysis, but I'm wondering if GPA is the right metric to optimize for. It's good to have a high GPA, but is it worth it to structure your leisure, sleep, and dating patterns around it? I'm doing something similar, but I record at the end of the day how happy I am, and analyze how different things affect my happiness.
It's also reasonable to sacrifice short term happiness around long term happiness, in some circumstances.
Education at this level is a "who can survive the most unpleasantness" competition. High school students work their asses off to get into highly selective colleges. Highly selective college students work their assess off to get into highly selective grad schools or employers (investment banking, consulting, prestigious tech companies). Students of highly selective grad schools work their asses off to get into the vanishingly few secure, living-wage jobs in their fields.

At each stage, the purpose is the same - to prove that you are more deserving than your peers of a seat in the next stage, because each stage has fewer seats than the last.

If you value your present well-being over advancement (and therefore future well-being), don't put yourself in a competitive educational environment with the goal of "winning" (i.e. high GPA). If you have certain career tracks in mind, sleep deprivation, poor mental health, and low quality of life in the short and medium terms are table stakes.

I enjoyed my time at such a place once I had a good relationship with a tech company (now my employer) and no grad school ambitions. My friends headed for the sciences could not have optimized for their present happiness without giving up their dreams.

What a shitty system
That's meritocracy for you. We have to select people for scarce and highly desirable positions somehow; "willing to work the hardest" isn't the worst strategy that's been tried.
(comment deleted)
> Education at this level is a "who can survive the most unpleasantness" competition.

This is brilliant. It sums up my feelings about education so succinctly. I'm stealing this.

> High school students work their asses off to get into highly selective colleges.

Not necessarily true. I never worked hard at anything in high school, and was accepted by several ivy league colleges. My experience was not unusual. I did not work all that hard in college, but was accepted at Stanford for grad school.

(I averaged maybe 30-40hrs a week on schoolwork in college, leaving plenty of time for other activities.)

There were some who did work their asses off, but they were in the minority and I felt rather sorry for them. Either they were working inefficiently, or just weren't cut out for that career path. It'd be like me trying to be a pro athlete. I could work my ass off, and never get anywhere, as I have worse than no aptitude for it.

Some also did no perceptible work and got straight As. I was a bit envious of them :-) they were amazing people.

One of the best times in my life was when I was in such a college environment, but instead of going through the grad school and corporate recruiting gauntlet, I opted out and planned on joining the military. I ended up in a software job I found on Craigslist instead, but not giving a fuck is still one of my best decisions.
Author here -- thanks for the comment! I also would agree that GPA isn't necessarily the right metric here. The reason I chose all these factors to compare to grades is because I feel that's the stereotype those in academia (students and professors alike) have, that somehow a lot of sleeping and no fun and studying a lot leads to good grades. I was curious whether that was true.

Even though there's a huge negative correlation between activities and grades in my data, doesn't mean that I would sacrifice the time I spent on activities just so that I could get the "better grade". My jobs and student orgs made my experience, and I would still spend time on it again even if my grades suffer.

That sounds like a really good project! Would love to compare notes and read about your results if you make it public somewhere!

I'm sure almost everybody here is already aware of it, but since it is so important:

Correlation does not imply causation

The author is doing a good job not mixing them up, and just uses common sense for her reasoning.

    I slept pretty consistently each semester, roughly 7–8
    hours each day with a few outliers, but no all-nighters.
this is what good planning gets you
This. I use to be a champion of all nighters and cramming, until I got serious with my time management and maintained a healthy sleeping pattern.

1st-3rd year with all nighters -> average low 80s average. 4th year with maybe 1-2 all nighters -> low 90s average.

Of course other factors contribute and as she mentions in the article by your final year you know how to get high marks, but I see the error of my ways not following good sleeping patterns for the earlier years of my undergrad, bloody youthful exuberance!

Some time ago there was a guy who kept a diary recording each 15 minute chunk of his life for several decades. I dont know if he or others went back and tabulated this information.
I'd hate to have tabulated the amount of my life I wasted in tabulating.
I think this record of academic performance speaks more about the individual rather than the "usual suspect" correlations. For instance, she clearly is the type of student that meets a challenge head on (by coming back from a poor midterm) - which would negate the correlation between time spent studying and GPA (more time spent to just recover a grade). She also did not say whether worst test scores are dropped and how that was treated. She has good habits and sleeps as much as she should, but what about exercise? There's a lot of research that supports the claim that cardio activity improves brain function. It's too bad she didn't pay more attention to this. Still, a very determined 4 year analysis.
Hi -- author here! Thanks for commenting and sharing your thoughts!

In terms of test scores, there definitely were a couple of classes in which my tests were dropped--but only 1-2 of them. I embarrassingly exercised 27.5 hours in college...not something I'm proud of, and I decided not to include it in this analysis since the numbers weren't high enough and I didn't do this as consistently enough to warrant any sort of meaningful correlation. I did live in Berkeley and it was pretty hilly so I definitely found ways to keep myself active! I also did track my weight and used a Fitbit for two semesters, so perhaps I could add something about that in the future :)

I think a but source of this issue is the house amount of unrelated classes I must take in college. I'm very lazy when it comes to things I have absolutely no interest in. I think I can provide some useful insight.

Right now I'm at New Jersey Institute of Technology. I am in the Ying Wu college of computing science. After this semester (at the start of the third year) I will have no more computer science classes I need to take for my degree. I personally believe I am very competent with the skills required to be a computer scientist in the real world (Software engineering, system design, managing, etc).

The remaining classes I have are as follows.

   * "Software Architecture" where you don't actually need to write software. I think you just learn about PHP or something from what a friend told me. (One of my professors said you didn't need to write any code for the class)

   * Proofs where you just learn discrete math. 
   * Calc 1, 2, Linear, Diff EQ (in that order)
   * Physics 1 & 2
   * ~ 2 hum classes 
   * 2 PE classes 
   * 4 Non-CS courses in lower level (easier like EE100) and upper level (harder EE300) course numbers 
The only CS related thing I need to do is my senior project which is just to write some software and hand it in with a write up. This will be very easy for me. I'm not going to name names but one of my friends who did this submitted something that I was able to write in a weekend. Theirs was less polished and broke during the presentation (mine is still running). Their write up was good though. So they passed and got their degree.

I've basically got a laundry list of projects on my github page of projects I've done that would work as a senior project (let alone what I've been writing for the research group I'm working for).

I've also TA'd for a CS class here. Both times my class was in the top 10% scoring similarly to the honors sections. Not all my work but I like to think my explanations of the topics helped.

So why am I still here? Why do I need those check boxes? I'm basically stuck doing BS that I suck at because they want me to be "well rounded". I don't think that's 1) a reasonable goal to expect, 2) what college is for, 3) what im paying for.

The reason I have to take calc 1 and physics 1 still is because I failed my first year. Only those too classes. Even with 2 Fs on my transcript my CS classes kept my GPA at a ~2.9. Funnily enough I'm working in the physics department writing software for physics PhDs and talking with them on a reasonable level of understanding about their research even though I couldn't pass Physics 1. I'm also the treasurer for the Ham radio club (I'm KD2JAO and I'll be at Dayton or wherever this next hamfest). I have a pretty ok understanding of propegation and radio and I'm currently studying for my general. But I couldn't pass Physics 1.

Why? I think a large amount of reasons.

The first and most prominent one is I don't care about what was taught. It was all projectile motion which is asinine and boring.

Second was I have a life and other classes I cared about that were far more interested. I could either do well in my classes I liked or do meh in all my classes. I also had a lot of family troubles (death, divorce, moving, etc)

The final is more technical and out of scope for this conversation.

If we removed unimportant classes from the curriculum we wouldn't have this "I never get to sleep BS" and the times you would loose sleep would be because you love what you're working on. (I stayed awake in bed staring at my cieling some nights thinking of better solutions to my CS programming assignments assignment)

I think the bigger problem here is employers requiring 4-year Computer Science degrees when they don't actually want computer scientists, they want software engineers.

Thus the Computer Science zeitgeist as a whole becomes this unholy combination of academic things relevant to computer science and practical things relevant to software engineering, instead of actually focusing on computer science and having a separate 2-year program for software engineers.

> having a separate 2-year program for software engineers.

Software engineering isn't so simple as to only have 2 years of course material. There's actually a lifetime of lessons to be learned but I think settling for a four year degree is a happy medium.

Why don't you get an internship and take a leave of absence afterwards if the company will offer you a full time position? If you don't want to finish your degree and you can get a job offer you don't need to go back. It should be noted that this will make getting into grad school ever next to impossible and getting a work visa outside the USA very, very hard at best.

For Physics try the Structure and Implementation of Classical Mechanics. It's SICP for Classical Mechanics. I will leave to others the reasons to know in depth Discrete Mathematics and Calculus.

If you have so many ideas for a senior thesis, such ability in Phyics and so little desire to do the courses, why not try and get out of it? You say you can talk intelligently to Physics Ph.D. students and do good work with them. If that's true could you do enough meaningful work to get second authorship on a paper? That would go a long way to persuading the relevant person to waive one course's requirements. But you need to be really, really persistent and annoying. I have seen people make an entire semester of tuition disappear by being really persistent, and get bureaucrats to make up a transfer of credit agreement just for them by being really annoying.

All that is more work than doing the classes but possibly more fun.

I do highly recommend doing some decent humanities courses though. You're unlikely to ever write at such length again, to such high standards.

> Why don't you get an internship and take a leave of absence afterwards if the company will offer you a full time position? If you don't want to finish your degree and you can get a job offer you don't need to go back. It should be noted that this will make getting into grad school ever next to impossible and getting a work visa outside the USA very, very hard at best.

I'm pretty happy where I am right now because I do enjoy the coures that ARE CS related. I really like challenging myself and that's what the professors like doing. Everyone I've taken seems to enjoy when I ask if my way is better or if they can show me a faster implementation (maybe I break the monotony of "Why doesn't GCC compile this .CPP file"). I'm also working with a group of some of the smartest people I've ever met and writing software for them for money. I couldn't really ask for more: hard problems in school, "I've done this before" problems at work, and people to learn from about business/R&D/scientific reasoning.

I'm getting paid to go to an afterschool special basically and getting to work for people who apreciate my skillset since it's alien to their own for the most part. Similarly I feel the same about them.

> For Physics try the Structure and Implementation of Classical Mechanics. It's SICP for Classical Mechanics. I will leave to others the reasons to know in depth Discrete Mathematics and Calculus.

I'll definetly have to give that a look. What we use here is absolutly useless.

> If you have so many ideas for a senior thesis, such ability in Phyics and so little desire to do the courses, why not try and get out of it?

I have very little clinical CS knowladge. I have a basic understanding of calculious and how radio behaves a little bit. Mish mash some concepts in and I've got a shakey but effective enough base in physics to be able to write the software I need to write.

> If that's true could you do enough meaningful work to get second authorship on a paper

Hopefully that's where this position I'm at is leading to. I've been mentioned in papers but I eventually want to write the parts that deal with data aquasition, agregation, and processing. I don't care about the physics past what's already well understood. I care about the software and systems behind everything.

> That would go a long way to persuading the relevant person to waive one course's requirements. But you need to be really, really persistent and annoying. I have seen people make an entire semester of tuition disappear by being really persistent, and get bureaucrats to make up a transfer of credit agreement just for them by being really annoying.

I doubt that will happen for me sadly. I have a situation right now where I'm basically stuck in a class that I don't belong in. It's a networking class that talks about implementing client & server architectures. In my free time I designed and implemented a network protocall for a game I was working on. It has a lot of features (multiparts, different prority streams, blob data, and untracked packets) that are useful for game networking projects. I took it to the professor and she said "yea it's cool but you still need to take the class". I wouldn't know where to go with this.

Similarly I was in an operating systems class that was talking about OS design & implementation.... only I don't care about design and they didn't teach any implementation. I've dabbled a bit on my own ( https://github.com/gravypod/Simple-OS ) and unfortunatly reached the limit of where I can take it in my own learning abilities. I got stuck with figuring how to get FS and MM working. I still got pretty deep into the theory part while reading and was able to pass the class with a B+. Still no way to skip it thoug...

> All of these things I've had to suppliment myself dating

> back into highschool when I started programming. I'm lucky

> I got a head start. There's graduate students at my school

> who couldn't for their life tell you what historically

> important programs/protocalls are like vim or telnet is,

> who don't know who RMS is, who don't know what Bell Labs

> is, who don't know that by writing code they own it to

> some degree acording to our country's legal system.

You really don't need to know the history of computing to make a dent in research; why should a protocl like telnet be relevant today, when we have much better alternatives? To learn from its mistakes? No, that's why you take design classes that you seem to dislike.

Leaving aside the lack of need to know those ancient things (I say this as a heavy user of vim), you seem to conflate engineering with computer science. There's a lot of CS that doesn't have anything to do with network protocols and UNIX programs

> why should a protocl like telnet be relevant today

A lot of software uses "telnet" as in TCP sockets with \r\n and ASCII encoding. That's all telnet is and that's how a lot of data is shifted around all the time.

> To learn from its mistakes?

Telnet wasn't a mistake. It was an obvious step from terminals via RS232 to terminals via TCP.

Also, telnet is everywhere. If you went into research and someone said "just hook into the telnet stream for $SENSOR" and you said "What's telnet" that wouldn't end well.

> No, that's why you take design classes that you seem to dislike.

No one in their right minds would call telnet, sending text over TCP, a bad design. It's a bad design for some things, but others it's the simplest way to do things. You can do a lot with it since it is very robust. What can go wrong with a telnet stream?

1) Client/Server drops connection to you 2) ...

What else? That's a tenant of fantastic design.

> Leaving aside the lack of need to know those ancient things (I say this as a heavy user of vim), you seem to conflate engineering with computer science.

I don't conflate it. Everyone in industry does. I'm marketing myself to industry so I will use their terminology. Their terminology associates Computer Science with "The programmer".

> There's a lot of CS that doesn't have anything to do with network protocols and UNIX programs

I and most places you'd go to work in industry aren't mainly concerned with those problems. Different data structures? Great yea I'd love to learn them. Proving some code mathematically? Ok, sure, I guess. I'll probably only do that once or twice. Memorizing Algorithms? Nope, you've lost me.

I need to know how to design my own algorithms, understand abstractions of these algorithms, then design the algorithms I'm good at designing and leave the rest to experts in their portion of the field.

> Leaving aside the lack of need to know those ancient things

I think this is completely wrong. You might what to watch this video series to see how much important and enlightening information comes from history: https://www.youtube.com/watch?v=JxAXlJEmNMg

Why is it important to know? You can easily see which arcane practices are still needed and which are just superstition. You also learn why specific systems were desgined and how they were implemented. They are usually far more basic and robust then current solutions and if we religate that all to the history books we'll loose all of that innovation from the very exciting dawn of computer science.

You were talking about grad students; those people are training not to be in the routine industry jobs.
Ah so it's only ok for the ignorant to stay in academia. Sounds reasonable. Those dolts shouldn't be expected of anything anyway.
If you're happy where you are then keep doing what you're doing. You need to supplement your learning yourself in all cases, not just college or high school. Pass the stuff you need to pass and get out.

If necessary quote in major and total GPA separately on your resumé for your first job. Get internships.

The reason I have a history degree and not a CS degree is because the asinine tie-ins with the mathematics department made it nearly impossible to get back on track if you did not take calculus 1 your freshman fall. I still fume, thinking about the data structures and algorithms clasd I suffered through, where we wrote reams of proofs, but not a line of executable code.
I wish you could hear my applaus. That's how I feel now. Luckily for me the school I go to is so disorganized no classes in the CS department have pre-reqs for the classes you actually need to understand to pass them.

I was able to come in, sign in to all CS classes all 3 semesters, ace all of them, and now I've got my thumb up where the sun dont shine waiting until I get my degree.

Yes a CS degree involves CS, I am a bit shocked that this was never made clear to you.
Read the "Credit By Examination" section on this page:

http://www5.njit.edu/registrar/transfer/

If you're willing to self-study and pay for some tests, you could potentially CLEP out of Physics, Calculus, your non-CS lower-level course requirements, etc. Talk to your registrar.

Testing out of all the basic stuff could cut your list of remaining classes by half, and you won't have to worry about some bad score in a history class bringing down your GPA because you only cared about passing.

And even if you wanted to be well-rounded, it'd still be a good way to bypass boring general education courses and get into more rigorous and interesting upper level classes where the professors and the students care more about the subject matter.

CBE only applies to specific courses. Not upper level.

" For students interested in gaining credit for more advanced (upper division) courses, most of our academic departments offer a limited number of exams in their academic area. Interested students should contact the individual departments and learn about the availability of tests and procedures for being tested. Once the academic department has approved a request for a departmental examination, the student may be referred to the Counseling Center to complete forms."

For CBE we would just give the students the tests in CS100. It doesn't work the same for upper.

Another problem is they want you to parrot back some things that they say. For instance in our OS class we had to learn about Solaris and memorize some commands for Solaris. We had to learn things like what is "JCL". These were not for the operating systems side. This was because the professor did that at his place of work before coming to NJIT. Naturally since he did it, it has to be good for all of us.

The courses are thrown together so CBE is near impossible. I'd say you need to know less about how something actually works and more about what the professor thinks is important.

You were complaining about having to take non-CS classes, many of which sounded like lower level general education classes, so I offered a potential solution: weed out some of those classes with CLEP exams.

I didn't see that your problem was related to your upper level CS coursework. If you aren't even interested in that, then you really should consider taking a break from school before you burn out. Maybe become a TripleByte candidate or something and get a software engineering job at a startup, or look for a local business that needs someone skilled to help them out.

I'm fine with the upper level CS classes but those are the only ones I could dream of making myself self study for.
Can someone with vouching powers vouch for the author, tiffany qi, who has been shadowbanned?
Seems like the ban was overruled.