7 ms·
The Only Three Classes That Mattered from My College Degree
- mulmen 4y agoCollege degrees are not job training programs.
- jfengel 4y agoThey certainly shouldn't be. Unfortunately a lot of employers require it without knowing why. They could often get cheaper employees with sufficient technical skills. I am a big fan of what college can bring, to the interested student. But that stuff is hard to test for and often isn't what employers are interviewing for. (And when they do, they often lump it under "culture fit", which is too often used to exclude people based on their prejudices.)
- mulmen 4y agoBeing a prerequisite is not the same as training.
- tgv 4y agoThis post should not get more attention. It's edginess for clickbait's sake by someone who doesn't value education, and doesn't understand that you have to learn more than the basics to get a good grip on the basics, nor that other skills can be useful if you want to understand more, both in breadth and in depth. Only if you know the future, you can skip irrelevant classes. E.g., I had classes in computer architecture and had to write microcode to implement IEEE754 on an IBM/360. Do I ever use that in real life? Obviously not. Did it make me understand a bit better how CPUs work? Yes. Would it be useful for people who want to make a career in hardware? Certainly.
- mynameisvlad 4y agoThat just sounds like incentives are not aligned properly. If your goal is to get a job, then you’re not going to prioritize ”[valuing] education”, you’re going to prioritize the things needed to get that job. The problem isn’t that the OP doesn’t value education; that’s not even a problem, it’s entirely a personal choice. Some people just don’t value that, and it’s ok. The actual problem is that employers require a 4 year degree which means that everyone wanting that job now has to do a 4 year degree whether they’re want to or not. And that degree is never going to be tailored to those just wanting a job; that’s what trade schools are for.
- SketchySeaBeast 4y agoI wonder when this individual graduated - I can't remember which particular classes are exactly relevant to my day to day work and which are relevant to the edge cases I've come across through my career.
- topaz0 4y agoTheir linkedin is easily accessible from the article. They graduated in 2017.
- panarky 4y agoMy dad told me a four-year degree from a quality university is a life changer for some people, and close to worthless for others. He said if my goal was to gain a technical skill to get a good job, university is almost certainly the wrong choice. My undergrad experience was a life changer, but I didn't go expecting job training.
- _Rabs_ 4y agoIf you are trying to push a bunch of people into this field by saying "these are the only courses you need to know to be able to pass FAANG interviews". What you're describing to me is a failure of interview process itself. You are not wrong to say this, but you are actually highlighting a more serious problem about this field than you give credit too. There are many subject matter classes that one should be aware of. The lack of focus on security and good coding practices outside of OWASP Top 10, is startling. I had to specifically opt for those classes because it was not required for the piece of paper that grants you easy entry into a Software Engineering job.
- tromp 4y ago> Assignments “N” days late would lose 2^(N-1) points. (2^N)-1 makes more sense, since it is 0 for N=0.
- ryanlpeterman 4y agoAn assignment isn't late if N=0
- PuppyTailWags 4y agoIt seems myopic that the author apparently learned nothing from any other class applies to their software work. The ability to critically assess the language, tone, rhetoric, etc. from written communication remains one of my most useful skills as I increasingly engage with executives and shareholders. While my other classes helped round me out to my co-workers. I took a figure drawing class once and now appreciate art way more, and have lively and interesting things to talk about.
- deleted 4y ago[deleted]
- juancampa 4y agoLinear Algebra is very important if you work in video games or graphics. Statistics is important if you work in AI
- ryanlpeterman 4y agoAgreed, there's some classes that will matter if you're in a particular field. I haven't used statistics or linear algebra in the last 5 years as a systems generalist though
- algoatecorn 4y agoIsn't the primary goal of a Bachelor's degree to make someone a well-adjusted individual that can craft a reasonable world view?
- bregma 4y agoAll my classes mattered. A few of them were even relevant to my later employment. Also, a lot of non-class activities mattered and some were even relevant to my later employment. I am not a job, I am a well-rounded human being with interests and relationships and who happens to exchange my labour for tokens that allow me to acquire goods and services.
- ketzu 4y agoI have a really hard time quantifying how useful any of my college courses were. There are various pieces that turn up in things I work with. Parsing with data, some specific algorithms and data structures, design and structure, b-trees, security and more. But many shaped how I think k about all of those,memory layouts, complexity analysis, statistics, discrete math, crypotgraphy. Maybe I am deluding myself into valuing something I spend a lot of time on, maybe picking out those bits I use day-to-day and just learning them would make me a worse e gineer. Overall, I find conclusions of the Form "I only directly use X" often unconvincing, because some people I had this discussion with could not recall they actually did learned something in college, which they claimed was never covered. (again, my memory might be the faulty one...)
- ryanlpeterman 4y agoYeah that's a fair point. There may be a lot of implicit understanding I have that I can't trace to a specific class that has helped me. Still, I think I could cut out at least half of the classes which I'm confident didn't matter and still have similar thinking.
- angarg12 4y agoWhen I studied my BsC in Computer Science 20 years ago it was a grueling 5 years with lots of cruft and fluff. Even the more useful parts weren't particularly current, e.g. we used waterfall for all of our projects. I'm convinced today you could become a better engineer with 1 years of self directed and focused online learning, for a fraction of the cost (even free). Also, although the credentials of a good school are nothing to scoff at, simply being good at leetcode (and maybe a small portfolio of personal projects) goes a long way to getting you a job. It's definitely more time efficient.
- deleted 4y ago[deleted]
- ryanlpeterman 4y agoAgreed, 100%. Eventhough most of the classes didn't matter for my career, getting the credential was worth it to help me get my foot in the door for interviews.
- throwaway173738 4y agoKnowing how to use a command line doesn’t make you an engineer. Understanding how to identify and rationalize trade-offs between conflicting values within a system makes you an engineer. It’s like the difference between knowing how to build a wall out of common lumber and knowing how to describe a building that people can actually live in.
- tayo42 4y agoInteresting to see. I remember when I was trying to get started in programming out of college I hard a time. I had a degree but not a compsci degree so I had some imposter syndrome, especially with all the rejections and how hard the job search process is to deal with. At some point I took a look what classes an actual cs degree needs. Like half of it was gen ed stuff. Which i took a lot of(liberal arts lol), I was good there. Then there was a ton of advanced math which I already barely got through or decided probably isn't relevant to most jobs unless i want to work with graphics. in hindsight I think i was right on that call At that point there really isn't that many classes left to fill a degree. One or two classes of fundamental cs topics like ds and algorithms, which is all free online to learn. an OS class, db class networking class and some elective cs fun stuff. Degree felt less necessary and more like a checkbox. i learned it all on my own, think i did alright.
- 1bent 4y agoI can name three, too: Algorithms and Data Structures, Compiler Construction, and Artificial Intelligence. But their usefulness built atop a lot of math and electrical engineering. In hindsight, I wish I'd taken more history, economics, philosophy, and the like, but I was pretty narrowly focused coming out of high school, alas.
- justeleblanc 4y agoAnd what do you do when you get laid off because your knowledge can be summarized by three classes and there are dozens of new graduates every day willing to work for less money than you? Having diverse skills and an open mind is what differentiates someone who's going to be a technician their whole life (and lose their jobs once fresher meat or a recession comes around) and someone who's going to adapt to the nooks and crannies of life's progression.
- mynameisvlad 4y agoThis seems like an extremely weird interpretation of what the article is saying. You’re implying that the only knowledge this person has, period, is those three courses, and that’s absurd. While working, they would have ostensibly already picked up enough knowledge and skills to be able to readily compete with those dozens of new graduates who have might not yet had relevant work experience. Just because someone didn’t get much out of their college education does not mean they don’t have “diverse skills and an open mind”.
- deleted 4y ago[deleted]
- cue_the_strings 4y agoIf you don't learn about grammars, lexers, parsers, ASTs,... you're at a huge disadvantage in many situations. 'Compilers' was my favorite course in university, and I've used most of that knowledge many times. I was also often the only person on the team who had enough experience to immediately start doing it (say, writing a parser for something, or writing a clang-tidy plugin to detect and fix some issue in the codebase). You're equally likely to need this sort of knowledge when writing software for non-technical users (say in finance), and when you write dev tools, linters, checkers, fixers, etc. If you're doing anything web-related or even vaguely server-client, you're at a huge disadvantage if you didn't have a good networks course. You'll likely be stuck in a loop of half-knowledge and cargo culting. I had a terrible network course, skipped on deep diving into networking for years (I worked in embedded; SPI, I2C, RS-232/422 and CAN were all I needed), and only relatively recently figured out how much I had missed. I see the author mentioned operating systems as a second-tier course. I find it to be the differentiator (that, and C++ knowledge) when it comes to any serious project, especially understanding of processes, threads, IPC, and such. Databases are very easy to learn on your own, and are generally easy to learn, even the theoretical aspect (relational algebra, b-trees,...). Most of the time, and in most shitty universities (the majority of universities everywhere if we're honest with ourselves), for most courses, you're better off picking a couple of good books on whatever subject (classics are classics for a reason) and just learning. That + OCW from MIT, Stanford, Harvard for assignments for practice. The best courses in my university blatantly stole materials from MIT and Stanford.
- ryanlpeterman 4y agoNetworking is worth an honorable mention I agree. > If you don't learn about grammars, lexers, parsers, ASTs,... you're at a huge disadvantage in many situations. Can you get an example? I don't recall a time where I used this knowledge in the last 5 years as a systems generalist in big tech.
- sn9 4y agohttps://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html https://steve-yegge.blogspot.com/2007/06/rich-programmer-foo...
- omginternets 4y agoI'm disheartened by this trend of only caring about things to the extent that they land you a job or otherwise earn money. If the only classes that matter to you are the ones that allow you to take shortcuts, I submit that you have missed at least half the point of higher education, and almost everything interesting and rewarding in CS/programming. I also submit that you are more likely to find yourself pigeonholed into writing REST endpoints for the bulk of your career, and turn into one of those jaded programmers who complains about how they're not solving interesting problems. And if you care about excellence, consider the following. No matter how hard you study, you'll sooner or later find yourself competing against someone who's studied as hard as you, and also loves what they're doing.
- michaelt 4y agoSome people feel, because the costs of college are so high, they can only be justified by increased earning potential. If you're on a student's budget and cash is so tight you have to share a bedroom - do you want to learn to ballroom dance at $250 per credit hour?
- omginternets 4y agoIf your tuition costs are so high, then surely you're trying to get the most out of higher education. What the OP is preaching is exactly the opposite of that.
- tayo42 4y agowhen a degree is going to put me in debt it better return something though... id like to go back to school as mature adult, to expesnive, ill just watch youtube and read books to satisfy my curiosities lol
- Illniyar 4y agoThese aren't shortcuts. The other classes are just not relevant to the profession. Besides you pay a lot of money to higher education to get a job. If you want to learn, just read a book or something.
- layer8 4y agoOne of the most important parts for me was to learn how formal proofs work. Because when writing software, you “prove” to yourself all the time in your head that given assumptions X, the results Y of that piece of code will be correct with regard to requirements Z. You learn what assumptions you are actually making, and what information is missing to be able to complete the proof. You learn what proper interface contracts have to look like.
- intrepidhero 4y agoOne of the most useful classes I took in college was a freshmen level philosophy class that I took because I needed 3 more credits of gen. ed. and it was at a convenient time. The prof spent the entire first lecture on this seemingly obvious concept: If your ideas aren't clear, your writing won't be clear either. It was like fireworks went off in my head. The realization that unclear writing (prose or code) was a signal that something was missing in my mental model, that there is a continuous feedback loop between the work I'm setting down and the ideas that I'm refining, became the foundation of all the work I've done since, from system design, to troubleshooting problems, to exploring my internal self. That kind of clarity, where I knew the thing I was learning was going to be important was rare even in technical courses from my chosen field. But a lot of classes that felt "useless" at the time turned out to have important effects, seen only in hindsight.
- ryanlpeterman 4y agoThis is an interesting take. Thanks for providing a perspective that isn't a technical class. I agree clear thinking is critical.
- Aaronstotle 4y agoI majored in Philosophy, and the largest benefit is that you walk away from the discipline with a good sense for how to communicate well, a natural consequence of distilling large ideas into short papers.
- SketchySeaBeast 4y agoNot just communicate well yourself, but also to understand what someone else is communicating poorly.
- asplake 4y agoI majored in maths, did as much computing as I could (even getting special dispensation along the way to drop statistics), and passed on the philosophy and business options. It worked out well enough (I got a 1st), but still, nearly 40 years later, if I had my time again I might make different choices.
- kaslai 4y agoThis is why I think that the trade school model of teaching software development should really be developed further. Having been in charge of hiring software developers a number of times in the past, I have found that a Bachelors in Computer Whatever barely tells me anything about whether you can actually program. The most it tells me on paper is that you have seen some amount of code at some point in your life and know a few buzzwords. This isn't to say that a College degree is worthless, but it is not a job training tool, and the sooner that people realize that the better. I would love to see a world where software development is treated more like some of the trades. Rather than insisting that all applicants have a BS in Computer Science or equivalent, we should hire promising kids fresh out of High School (Or college) and fund their 1 year education in programming + apprenticeship. I feel like that would lead to a healthier industry as a whole, and bring a lot more highly talented individuals into the world of programming. And no, web dev bootcamps are not what I'm talking about. They are closer to my ideal than a college, but they have a lot of other problems that keep them from being useful in general.
- PennRobotics 4y agoAs a mechanical engineer, Statics (a course all about calculating internal forces of non-moving structures) was the course that made the difference. It had almost nothing to do with the content---I think about internal forces of a thing about once a year---but that was the course where a structured and reliable engineering process was first introduced: • Draw the full system • Split into parts • Build a free-body diagram of all parts • Build an equation for every point of interest. For statics, the sum of all forces is zero and the sum of all "torques" is zero. Start here every time. • Identify all "knowns" and put them in one place. • Identify all "unknowns" and group them in a second place. • DO NOT PROCEED UNTIL # of equations = # of unknowns! If this isn't true, you need to think harder about what equations are missing, start making assumptions, or change the points of interest (e.g. from method of joints to method of sections). • Be prepared to defend your assumptions (gravity, friction, mounts, reference frame, material properties) • Make sure all signs "match" and make sense. • Solve, step-by-step, equation-by-equation. • Make sure all units match and make sense. • Sometimes ignore intuition. Parts that look like tension can be compression and vice versa. (If you need an example, those "impossible floating tables" can confuse a lot of people's intuition about force equilibrium.) • All work should be clearly organized and clearly marked---especially the answer, with proper units. ... and as a bonus ... • You can't push a rope.
- Illniyar 4y agoIt's nice that he found some classes that were relevant to his work. I could really only think of one - Algorithms/Data structures (because it taught me about complexity). Everything else were either irrelevant, or could (and has) been replaced by a book or short video course.
- compiler-guy 4y ago"Intro to Finite Theory Automata" or "Intro to Compilers" (which is the practical version of automata) would be on my list. Of course, I am a compiler-guy, but they have been incredibly useful for understanding many problems and solutions not directly related to compilers.
- ryanlpeterman 4y agoI loved CS181 ("Intro to Finite Theory Automata"). I don't remember using much from what I learned there in the last 5 years as a SWE but wow that was a fun class!
- logical_cache 4y ago100% this. I had a class called "software tools" taught by a bored grad student that covered the standard unix utils (including "sed", "awk", "lex", "yacc", etc.). That's the single most relevant class I took in 6 years of undergrad and grad school and I use its skills virtually every single day ("formal languages and automata" was fun, but I've only ever written a single LALR parser since university and that was on a personal project).
- neilv 4y ago> UCLA has a notorious class called CS35L, which is a weekly series of time-consuming labs. This class, although painful, is what creates software engineers. > > In it, we learned how to use the command line (e.g. shell commands, scripting) and change management (e.g. Git), which is core to writing code in a collaborative professional environment. Lastly, we learned how to use basic software debugging tools. That's just some of the superficial tools "lab skills" of churning out code. Software engineering (for real, when it has to be effective over time) is a larger and more difficult space. I think the three courses this person is talking about are all about passing a FAANG-like "coding interview" that is targeted at new college grads with no industry experience. LLMs will now gladly launder open source software into churning out code, much faster than a new grad, and will even (statistically, emergently) apply more software engineering practice than these classes will teach you to do.
- deleted 4y ago[deleted]
- _Rabs_ 4y agoThe Author feels like something I'd read on /r/LinkedinLunatics. Is this a parody account designed to get us enraged?
- johnea 4y agoOnly 3 huh? No wonder the current generation is incapable. Maybe you should have paid more attention?
- BrandoElFollito 4y agoI use 1% of what I learned at the University at work. 0.01% of I add my PhD (both in physics, I work in IT). But I have an idea how the world works, can understand my electricity bill and realize how biased are any numbers presented to the public. I can buy a coffee in Spain and Germany without using English. I lerned to love French Middle Ages. This article is simply sad.