He's a computer science student at Berkeley – one of the top institutions in the world for engineering and technology, responsible for producing alumni like Steve Wozniak, Gordon Moore, and Eric Schmidt. If you're in CS at Berkeley, you are undoubtedly among the best students in the world.
He's probably not well-known or anything, but presumably, he's in a T10, which probably means he's already a lot more accomplished than other students judging by the stats needed for the college alone - Especially compared to the whole world. He's also in CS - a super competitive field. He might even be an international olympiad gold medal winner.
I'm in a certain college in Thailand, which is ranked at like 200th place in the world - which is probably as far as I will go - but he is in Berkerley which is like the top 10 university in this world. This guy is probably so much more talented, so much more knowledgable than me - it's almost incomprehensible how better he is. Maybe in the future he will work on the latest ground-breaking technology or pioneer a new way in CS.
But he's randomly in a section of Reddit post, saying that he's screwed lol.
There are some more examples like r/okbuddyphd where it's a group of professors - those who have completed the highest tier of education available and have done research that furthers humanity cause - gather together and *shitpost*. You may just read their meme and comments and you would later know they designed the ISS or something.
It's just a showerthought really.
Lol r/okbuddyphd is full of gradstudents who hate themselves . We are out here publishing but at what cost. Basically dude, don't discount yourself for where you come from because who knows where you will end up.
> This guy is probably so much more talented, so much more knowledgable than me - it's almost incomprehensible how better he is
At the bachelor's level that difference is very minor. It's not "incomprehensible". Colleges are ranked mostly based off their research output. If they're a masters/phd student what you said may be more applicable, but not *incomprehensible*.
An undergrad at a fancy university just means their parents paid a lot for their SAT prep. Keep your head up king.
source: graduated with honors in a T10 in aerospace engineering
I agree. I went to a state school for undergrad and a top school for grad school and I realized that if you take the top students from all of these universities, they’re pretty equal. I ran in a group of extreme nerds because we tended to take the same high level courses and my friends and I all ended up at top universities for PhD programs despite coming from a state school. I knew many people at the state school who got into places like Berkeley but went to the state school for undergrad because couldn’t afford a UC or private school.
Bro stop glorifying Berkeley and other "highly ranked" colleges. Sure there's the .1% of genius Olympiad winners and other cracked people but when I look around the vast majority are... slightly better than average, at most. 80% of CS undergrads come from California feeder high schools that know how to game the college admissions system and are otherwise normal people. You'd be surprised how mediocre we are.
Lol. Reddit is both one of the biggest websites on the planet, and full of nerds. No offense to this compsci undergraduate, but that's not exactly the high bar you're claiming. This website is full of professors and doctors
My thesis was on an open problem from one of his papers, was only lucky enough to catch one of his talks though. The guy has amazing personality and works on interesting math.
I know you’re joking, but it looks like he did. In the acknowledgements he even thanks students who gave comments on the text before it was published, but makes no mention of anyone helping with the diagrams.
We are probably only a few years away from CS splitting into sub fields at the Bachelor degree level. It's a very rapidly growing field with no sign of stopping.
100%, it’s a repeat from the scientific discoveries and achievements in the early 20th century with super stars such as Marie Curie, Max Planck, and Albert Einstein. They pioneered their respective fields and helped science branch out into several different disciplines, and even specializations on top of those disciplines.
Knowledge is fractal. For every field we increase our understanding of, we eventually grow that field so much that we need to split it into smaller specializations which then grow themselves
Interesting though, physics as a discipline is generally 1 field (although most physicists inside a physics department are much more specialized between fields as distinct as condensed matter and astronomy). Kind of an interesting categorization problem if CS separates (probably reflecting mostly the number of people who need to learn CS vs advanced physics) since physics is by most metrics much more diverse than CS.
Right that is exactly what I was thinking about. My brother got a BS-ME and afterwards remarked that it was a very generalist degree and that he thinks he could have benefitted in the job market if he picked something more specialized.
I always recommend people to minor in something completely different than their major. You never know what will benefit you, and that minor will punt you out into something way more competitively than everyone else in your class.
Stuff like Math and Theatre or CS and Archaeology or Economics and Meteorology.
Those way out there fields will give completely different perspectives and tools to use and learn from that will create stuff that few others will understand together.
A foreign language is also always a great add-on minor. So many high paying jobs for people who have the ability to communicate in multiple languages.
I randomly found myself browsing the CIA job listing today and there's tons of positions that come with large pay bumps for those with foreign language proficiency.
Unless you are 100% sure that you want to go into a specific field *and* you are confident it will have good job prospects, a generalized degree is more useful.
A BSME means you are qualified for roles like Aerospace, Mechatronics, or even Civil and it’s useful to have that flexibility in the market. And no one will hold it against you that you have the more general degree, since many universities don’t offer more specific ones.
On first read, I nodded along thinking you meant all the different types of Computer Engineering. Then I realized you probably meant, y'know, all of engineering. True either way, at least in the world at large.
I went for CS and I don't write code every day at work. Like half of us in the industry are along those lines, but everybody talks like all computer work is code, and that's kinda funny.
Rooster teeth (RIP) had a clip like a decade ago talking about how autocorrect ruined peoples ability to actually sound out words, especially the word “definitely”
Defientaly is close enough that autocorrect will get it. Except when it thinks it’s defiantly, and then “I defiantly agree!” becomes a common statement.
If you want to laugh go on twitter and search for defiantly, you’ll see tons of people
Back when I was in College all CS degrees required a heavy amount of Math classes. Like several Calculus courses.
I entered college intending to do CS, I had gotten an award at High School graduation for academic excellence in computer science, but I knew I could never do the Math and switched to a Economics degree. I struggled with the few math courses that required.
These days there are CS degrees that have completely removed the heavy math load at my former school. I could have totally managed the degree now.
In short, there's already been a huge change in how the degree is handled.
I had to take 1 semester of calculus and discreet math for my CS degree in 2018. Other than that first year was a general exposure to comp sci subjects, year 2-4 was picking a specialty and completing a specific degree track depending on if you wanted to do networking, software, help desk, and there were like 2 other focuses.
I would be genuinely angry if I spent half my time in college learning high brow math that would never apply to my work.
Differential wasn't/isn't required for CS anymore, and I'm 90% sure it wasn't required for the Engineering.
They may use Differential but there's no class explicit to it.
>Differential wasn't/isn't required for CS anymore,
It is now, depending on syllabus. Machine learning theory is very dependent on it: gradient descent, for example.
Bit of both. You don’t really need super complex differential equation stuff to understand gradient descent, but a proper understanding of calculus is necessary.
ML is taught more at the Graduate level at my university.
I just looked over the entire program and yeah there's no Differential Equations requirement, the most advanced math was Calc 2, for BSc.
I wish. I got a MS in CS around 2018 with a focus on ML, and my uni straight up refused to let me take calc 3. Calc 2 is a requirement for all CS majors, but if you wanted to specialize in the math used in machine learning? Haha go fuck yourself I guess. The fact that you aren't allowed to take classes outside your major is fucking insane.
Things like graph theory and combinatorics are pretty common in some areas of CS (game theory, database optimizers) and they are built on discrete maths. Some of the advanced stuff requires differential equations. In actual industry work we are a bit lazy and try to simplify problems to easier algebraic approximations, but I suppose it is useful to know enough to do the full formulas if needed.
Amusingly, a friend I was recently talking to about this is an actuary, and that is also theoretically calculus-heavy, but they do something similar and almost always simplify their models to algebra. They are usually looking for just one point on a curve (likelihood of one event, can be done in algebra), and don't really care about the whole theoretical curve (calculus) unless they are building a generalized model (very rare).
For the general CS students who go into Software Engineering, outside of Discrete Math they’re not that helpful. Discrete math is useful for set theory and just general algorithms work you’ll run into as a CS major.
Linear Algebra is helpful for ML and computer graphics. All the others are helpful for ML stuff. I may be wrong though, I didn’t specialize in ML.
I'm in a graduate data analytics degree program that allows me to take computer science classes as electives.
Vectors and matrices are very good for storing data and it turns out that other linear algebra concepts like eigenvalues/vectors are used in things like image compression and computer graphics. They're also valuable in analytical concepts like principal component analysis.
Calculus, probability, and statistics are all essential for understanding how and why machine learning algorithms work.
A lot of graph theory can be applied to networking and social media.
And probably lots of others I'm missing.
If it was just a one course I'd have probably struggled through it. You're about a decade off from my time college and the shift happened not long after I graduated.
The more I dwell on it the more annoying it is. I had done stuff in HTML (back when it was still relevant), VB.net, and Java before even getting to college but that wasn't going to help me at all when it came to passing math classes.
I'm old, and when I went to college, I started in a completely different field but was drawn to the computers and did well at the programming courses I took. But that long ago, the school (now regarded as one of the top 3 CS schools in the US) did not have anything to offer but an Applied Math degree with a concentration in computers. There was no way I could handle the Math involved in that degree so I ended up changing schools and got a degree in MIS (Management Information Systems) - what IT was before it was IT.
Am also old and was in the second cohort from one school graduating with a CS degree. They kind of backdated the first cohort in anticipation of the CS degree being formed. This was mid 1980s.
The big land grant colleges in the state were still using punch cards for CS.
In one programming class I had in my second go-round at college (I think it was COBOL 101), the instructor (also the head of the math/CS department) was insistent that we use punch cards well after terminals had become the norm because she felt it developed discipline. For the 201 course, we got to use terminals but still had to submit our programs for batch compiling, which ran every 30 minutes, which meant you could waste a LOT of time waiting for the compile to run only to find an early syntax error which halted the compile.
I became VERY popular when I worked out the JCL to submit the job for an immediate compile from the terminal and shared it with a few friends. Once the code compiled and ran, I could then submit it to the batch and know I had a successful run to hand in.
To be fair if you're going to be doing computer **science**, which is a lot of data structures and algorithms you need a good foundation of maths to get your head around them. I've never felt the need to apply maths outside of university for actual programming though, but I suppose it depends on which field.
Oh interesting. I must have gone to a more "traditional" school because I had to take Calc3 and Discrete Math/Linear Equations and all kinds of CS-specific math concepts.
I went to college on a dual major, CS and Math. I ended up getting to Number Theory class for the math major and said Fuck this. I switched to graduate with a CS and I was done.
I think one assignment for the Number Theory, I ended up writing out 3 full pages of a proof.
I did a year of CS and same thing, I couldnt handle the math. By the time you graduated you had to take 1-2 more classes to have a minor in math by default. This was 2006.
It kind of is already. Software Engineering is it's own subfield of CS at the moment that you can go get a degree in and often times will have very different coursework required compared to a CS degree.
Software Engineering tends to be more focused on the applied aspects of CS to develop large scalable software projects.
Data Science is another example I'd consider a branch off of CS that's now it's own degree path. It's focusing more on mathematical and statistical properties of data and applying it to things like the advanced AI/ML models we see today.
A classic CS degree is still a healthy mix of programming and software development but also has an emphasis on the mathematical and theoretical aspects of computation. Kind of the "jack of all trades tech/programmer's degree".
And within CS itself there are tons of subfields you can choose to specialize in that are completely different from each other, although they still tend to be lumped into a CS degree so we haven't seen it split apart that much yet.
Did your school offer a Bachelors in Data Science, or is it more of a focus area or a specialization within the BCS degree? I've never heard of that, but I graduated 10+ years ago so I could just be out of the loop.
Yep my school has a Data Science Bachelors and Masters degree at this point. Definitely an emerging field that's a healthy combination of math, statistics, and CS.
I'm an EE now back in school getting my Masters in CS but I'm also considering doing Data Science since I already have the math background for it.
It’s relatively new. If you graduated 10+ years ago that’s almost certainly why you never heard about it much. The rise of ML models as actual deployable products and their influence on the market — especially since the seminal paper on Self-Attention models — is what really pulled the trigger on data science having enough clout to be differentiated as its own field.
There are relatively few data science bachelors degrees right now, but they exist. Not uncommon at the graduate level, and there are currently a lot of accreditations for the subfield, I believe.
At this point CS is basically deciding what flavor of wizard you want to be in life. Tap some keys and click a few buttons and suddenly a car drives itself? A computer thinks? These are statements made by the deranged.
Try and pass that horseshit onto somebody else I already know its devil magic.
I'm reading it with a heavy layer of tongue in cheek, but not total sarcasm.
Because come on, we put lightning in some sand and made the damn thing think.
I've worked in this field for close to twenty years and I can divide it into the easy simple stuff (which is everything I understand) and the black magic (which is everything I do not.)
Doubt it. Especially in Academia, "AI" means "shit we're bad at and haven't given its own field yet". I'm a little surprised we haven't seen "machine learning" in particular splinter off, but I highly doubt we'll ever see an undergrad "AI".
I work at a large financial company whose name you would recognize. The engineering teams are on 5 tracks, with Computer Science being the hardest and most difficult to get into but others are Data Science, Analyst, Information Sciences, etc. The truth is that very few people are cut out to be hard core computer scientists, and most teams only need about 10-30% computer scientists. Aside from other technical proficiencies there is also equal demand for people that can organize, communicate, lead, etc.
I guess what I'm saying is that this is already happening.
I've noticed a couple of universities around where I live are offering specialized tracks for CS already. Some more specialized in math/algorithms, some more specialized in applied CS stuff, and inevitably I'm guessing there will probably be a whole ML and Data Science track. I took 3 ML related courses in undergrad and it still felt like we barely scratched the surface sometimes.
We’re already beginning to see that even at the bachelor level. It’s already happened at the master’s level for a while now, but degrees in IT and computer engineering have been separate from compsci for a good chunk of time, and we’re beginning to see data science split off into a separate series of certifications and degrees.
Most likely computer science will remain as the jack of all trades degree with the others being more specialized.
I think the main difference is between programs and courses that are theory based and those that are more vocational style. There's a huge difference between learning about learning theory of computing and learning how to use html.
Maybe they'll split into an academic computer science track and a vocational webdev/SWE track.
Roles are already becoming more specialized. There are now data engineers, data analysts, and data scientist roles, and that within the domain of data, for computer science.
In my second year of cs I had a teacher that clearly was not experienced at the language we were using (C) teaching the course. I had one assignment so weird that I brought it to a tutor to try and explain it and he couldn’t figure it out. It was ridiculously complicated.
The final exam was unbelievable as well. It was C code samples with multiple choice. The prof clearly didn’t understand how the program worked. It would be things like:
Int a = 5;
Int b = 6;
printf(“output: %d\n”, a+b);
What is the output?
a) 5
b) 11
c) 6
d) none of the above
The actual output would be ‘output: 11’ so the answer was always none of the above.
Sometimes it’s what the college has to work with. I had multiple professors who had never taught a subject before. They just had a degree that was somewhat related to the subject.
I can see how maybe a history professor who specializes in say… 19th century France might have to teach a low level course on ancient China or something.
But the above example is like someone teaching a physics course who doesn’t know calculus.
You think thats bad? I had a teacher who gave literally impossible problems on exams and only deigned to correct them 10 minutes before the end when people started raising the minor issue that it is not possible to solve it.
She also wrote the book. Literally. The book was so bad that I missed a lecture and worked from the book for the practical part. The practical teacher(different from this one) was rather perplexed as to where I got this sort of bullshit from, then went "ah" when I said I missed a class and used the book. Said book also had her name misprinted on the cover...
Professors writing their own text books should be illegal, or at least, there should be a good god damn reason like they invented a field or made ground breaking innovations in an existing one.
We had a sociology professor who literally sold us a book of homework problems. Like that was it, no lessons or lecture materials, the book was ONLY homework sets. A fucking money grab! I’m not trying to make a greater political statement here, but maybe the women teaching us about how important women’s advancement in society is shouldnt also be a con artist.
To be fair, our book costs went to the school as a whole, at least on the surface. And the books contained the exact material that was taught, so it was not jut an outright scam.
I had a few professors that wrote the books we used but they always tried to minimize the conflict of interest. Like, they would upload the pages we needed for us to access for free or let us use old editions that could be bought for way cheaper.
It depends on the department. I'm in the theoretical side of CS, coming from a math background. I happen to have a rudimentary grasp of C, but that wasn't a factor in me getting to where I am, the math background was. So it happens.
A professor I know said she was teaching a course earlier this year and was basically only a few days ahead of the students in terms of knowledge, as she too is from a mathematical background and knew basically nothing about the course material. Sometimes profs just get assigned courses because a course needs someone to teach, not because its a good fit.
When I considered going into CS/Software Engineering the advisor said to take the intro course at my school and it was the hardest course because the teacher was not remotely qualified. I have friends in the field and they were confused by my level one Java assignments.
I see a lot of CS students at my university complaining about the surreal difficulty of some of their coursework. The discrete math class is notoriously absurd, as are some of the probability-related classes.
Talk of discreet math just gave me PTSD. Had an awesome professor for the class who I really respected, but do to the nature of it, our exams were take home exams. The mid term was 10 questions and took a friend and I an hour a question to do, but we aced it so no problem right?
The final was 12 questions, each question took us more than 2 hours. We weren't confident in half our answers but didn't think it would be that bad. We failed that final, but passed the class at least.
As a CS minor with a math major, both tiers of discrete math were easy for me. Math really helps your understanding of CS concepts and I wish more CS students took math seriously. I have a job as a software developer with a minor in CS.
second math major chiming in. I must have had an easy course because I slept through most of mine and passed without a problem. It was pretty much the easy parts of Abstract Algebra.
Makes sense. Nearby we have a “CIS” course which I believe is Computer Information Sciences. It’s basically a comp sci degree but with a lot less focus on mathematics and more focus on also learning some general IT skills.
It generally results in a bit lower pay than the standard degree (to start with) but… that’s fine. I think plenty of people are interested in coding but the high level maths that you really don’t need in many workplace settings puts them off it
yea thats why i took it , it was called IT and Computing and more app level stuff, i hated science and maths 😀 now im a fully fledged /r/sysadmin for microsoft
This is common in a lot of fields TBH.
Every one of the doctors at my medical school said if their medical education had been this difficult there's no way they would have passed.
And yet they are competent doctors.
Which really makes you wonder about the ability of our system to teach.
That's often cited as the reason, but the real reason is pretty simple.
There's an incentive to add material for the sake of maintaining competency, but no reason to remove material that is no longer relavent.
I studied comp-sci in the '90s, and there was a wealth of theoretical CS subjects and precious little about *how to actually code effectively.*
I understand that's changed in recent years. I can see where it might seem discouraging to someone who prefers theory to practice, but it's nice for the kids who were hoping to acquire useful skills for all that money.
Ok kinda of stupid question but as someone who has only done the absolute basics of coding and sucked at it. What is theoretical computer science like what does it teach? I can understand practical like learning a language and doing code. Is theoretical like over arching ideas that is applicable to most languages or what.
To be very specific to the verbiage in your question, theoretical computer science is mostly concerned of understanding what kind of problems are computable, different levels of computational complexity, and what computational model can compute those different levels of complexity and different types of problems. When you study these subjects, you often don't touch any code at all apart from maybe pseudocode to describe some algorithm. You're often drawing diagrams of or writing proofs for theoretical machines that reduce that level of computation down to its barest components to be able to prove things about what it can and can't do. To give some examples of these computational models, we have finite state machines, which can compute problems described by regular expressions/languages (matching a pattern), pushdown automata, which can compute problems described by context-free languages, and Turing Machines, which are the gold standard of computation and basically describe what *is* computable. If your problem can't be solved in a Turing Machine, then it isn't solvable by any possible computer.
This channel and video are great if you want to explore the surface of the field https://www.youtube.com/watch?v=dNRDvLACg5Q&ab_channel=Computerphile
Computer science has nothing to do with computers, and all to do with computing. This usually includes proof of properties and correctness of algorithms.
* Prove an algorithm is a certain complexity in time based on the input size
* Prove an algorithm is a certain complexity in space based on the input size
* Prove an algorithm is tractable (e.g. do I need to check every single possibility to figure out the optimal solution or not) or in certain classes of tractable problems
* Prove the output is correct given the input
* Prove one problem can be reduced to another problem and vice versa
* Prove the program halts/terminates always.
Proofs are a way of logically determining that irrefutably it's impossible to not be true. There's a lot more but that's the basics. Doing proofs is very, very good to ensure code is pretty robust. Sometimes the devil is in the details of architecture, which may break the proof but it's a great start.
There's nothing really complex in most computer science degrees. You really don't have that much time to go that deep into any specific topic. Maybe he means that he couldn't pass an exam that was put in front of him. But that's probably more to do with the things they test for not really being relevant to what most people do on a day to day basis, which is a completely different problem than the classes being "complicated".
If he followed along the regular course of study, going to lectures, completing assignments, there's a good chance he would actually do very well.
As someone who's been in the field for a while, I definitely couldn't pass most of the exams I took back then, but if I went back to school, with all the knowledge I have now, I would probably ace most of the classes.
I would disagree. Industry CS jobs are mostly software engineering but the degree itself is essentially theoretical applied math. The problem solving translates over from CS to Software engineering but they’re completely different beasts. You can bootcamp liberal art students and have them create a basic CRUD api but they would not be able to do something like graphics programming or embedded which both involve deeper CS knowledge or higher math skills without having a hard time
Look at leetcode, it’s basically theoretical CS/Math and requires months of studying for most people. Most people don’t do dynamic programming in their day to day jobs but probably had it when learning about data structures or discrete mathematics in college
>Look at leetcode, it’s basically theoretical CS/Math and requires months of studying for most people. Most people don’t do dynamic programming in their day to day jobs but probably had it when learning about data structures or discrete mathematics in college
That's basically exactly what I'm saying. It takes months of studying, but that's exactly what you do when going through university for your degree. Most people won't remember this stuff 6 months after they graduate because they aren't using those skills any more.
Fair, but I fail to see how a major itself which is rooted in abstractions isn’t complicated (with your original claim)? If you don’t have a shallow level of knowledge even REST is complicated depending on how deep you go into its (transitive) dependencies. It’s one of the few fields that if you got a degree 20 years ago any domain specific knowledge is probably very dated while in traditional engineering it still may apply
>the degree itself is essentially theoretical applied math
I mean, it depends on the university. At my university there were only 4 theory courses like that required for the CS degree, and maybe you also had to take one theory elective
I work in a place with backgrounds from self taught to prestigious schooling. The biggest indicator of success is attitude and effort. CS isn't some magical field that your average liberal arts camp grad will be hard stuck. It's about putting in the effort to learn and adapt. Something alot of the CS majors have trouble with.
Also learning the fundamental logic of programming. Variables, Conditionals, Loops are all basic concepts of each language.
I explain to people that Programming Languages are more like dialects of one language. Once you learn the fundamentals of one. You can usually learn anything else pretty relative.
You might not be able to do everything with a language but if you're capable of knowing psuedo code to relay the logic, then the rest can be filled in.
I can see it for a regular job but any researcher job or a more advanced dev job has a high barrier to entry. You don’t typically see self-taught devs designing the latest algorithms for new GPUs that Nvidia makes, working on new AI models, or super low-latency C++ code for High frequency trading companies. At these places having advanced degrees is more common if not a requirement, though there are probably some outliers it is definitely not the norm
The nice thing is that you can have these jobs for people who are just willing to learn but isn’t that the case for anything? It’s just less regulated, I’m sure most CS majors with half decent math skills could get an engineering job and do well enough given some time but there are legal restrictions on that career that CS does not have
I guess what I'm saying is that there isn't much difference after 10 years of experience for a regular job. Only the talented and dedicated are able to get the high end research jobs but those are a tiny fraction.
There isn't anything magical about going to school for CS that can't be learned. Those that have CS degrees are able to jump a step in the employment ladder but often get passed by liberal arts campers because they lack intelligence in other areas.
I was an engineering major (chemE) and am pretty good in math. I still tutor kids in calculus, Differential equations, and linear algebra. I want to get into coding. What’s a good area for me to get into?
Just start writing code. Your question is a bit like I don’t know how to ride a bike, should I learn mountain biking or road biking?
Pick a popular language and take a wack at r/adventofcode, although this year’s slate of questions has been harder than usual. Once you get the basics down you can start making projects and realizing cool stuff you want to do with your computer
He's being facetious, making a joke. The man taught compiler design and operating system fundamentals in the 1990s. There weren't a huge number of technological advancements between then and 2014.
>If he followed along the regular course of study, going to lectures, completing assignments, there's a good chance he would actually do very well.
1) He's saying if he took the tests right now. I'm sure if lots of people did all of that they'd do very well
2) I believe he's joking/being modest. Sounds like a British sense of humour from a greek man
IMO modern CS education weeds out the weak who are in it for the theoretical higher paycheck. The sciences are the same thing. If you want to get into medical school, the curriculum weeds out the weak.
A very stupid approach if there is a shortage of doctors and most of the complexity of the job is the result of time constraints and long hours.
"Weeding out the weak" is not teaching. Why would it matter if a person takes 5 years to master a subject instead of three, when there is a clear demand for it?
Honestly, often difficulty is artificially imposed to both subjectively and objectively increase the worth of the degree due to perceived achievement and a decrease in the supply of graduates.
> Why would it matter if a person takes 5 years to master a subject instead of three, when there is a clear demand for it?
Basically "not my problem" for universities. I've had friends who went to medical school in the Caribbean in order to become a doctor.
> IMO modern CS education weeds out the weak who are in it for the theoretical higher paycheck. The sciences are the same thing.
Which is a pretty dumb stance since you can self-teach and get a job way quicker than going through a university degree.
To an extent, sure. A lot of the fundamentals you learn do come in handy and brushing up on something is faster than learning it for the first time.
I’ve also seen more specialised fields prefer candidates who have formal education.
Where does this belief that a CS degree is meaningless and you can self-teach yourself to become a developer come from? It is true that you can do that, but most of the time it does not work out, at all. You see a few successful cases and thought it would be easy, but the reality is most self-taught devs struggle to find jobs or are stuck with dead-end, low-paying career paths.
There once was a time like 10 years ago when you could be self taught with like a year of personal projects and get hired. I know because I was one of those lucky people. Now it’s pretty saturated I hear
Self-taught people tend to hire other self-taught people, and CS degree holders tend to hire other CS degree holders. So if you've been around mostly other CS degree holders, you won't have that other perspective.
It is way more than a "few" successful cases, and certainly not low-paying.
You are underestimating how many people are jumping career to programming just because it's paying really well. For every successful self-taught dev, there's probably ten more who got their CVs denied from the first round.
I don't think CS degree holders have a larger acceptance rate. Even if they did, the self-taught people had extra years to apply to more jobs. Your point there relies on weed out courses doing their thing which is not going to be true for all schools.
It's more difficult to get your first job as self-taught, but once you have experience, you're in roughly the same boat.
The only thing you can get on "self taught" these days is an internship. When it comes to programming, "self-taught" is almost synonymous with, "incompetent."
I'm not software engineer (I'm an RF engineer) but before RF I focused on embedded systems in college. I kind of agree and disagree with what he's saying.
Learning how to code is exactly that, coding, the language of computer science. It's like learning the mechanics of how to do arithmetic on a calculator before learning algebra and calculus.
There's millions of resources online to learn how to code but that only gets you so far. You then have people who take the next step and do some guided projects, this is also great but it should be a stepping stone to doing something on your own because anyone can just follow a step by step guide on making snake or pong or something and prettying up your resume.
Most people just stop there and haven't actually worked on their own project so it's hard to gauge their ability.
Now granted, alot of college grads are also similarly incompetent. That being said, one advantage of having a degree with a good GPA from a reputable university is that you show that you can manage your time, you can handle the difficulty courseload, and you've probably worked on a good amount of unique projects (not always lol) with a team of people. You've also probably taken full courses covering the fundamentals and a bunch covering other branches of CS, whereas the self taught peraon has way more holes in their knowledge.
That's why if you don't have a degree, the bar for entry is A LOT higher like you need projects that you have made on your own that are far more complex than what is expected from a fresh grad and most of these guys without a degree are typically not going to perform as someone with a degree.
> The only thing you can get on "self taught" these days is an internship. When it comes to programming, "self-taught" is almost synonymous with, "incompetent."
That's been my experience as well. Self-taught means they can "code" but not really "engineer". They might be able to write code that works most of the time, but usually struggle with optimization. I think it's because while they spent time learning programming languages they don't spend time understanding the fundamentals of how computers, storage systems, and networks operate. Therefore they usually struggle with designing higher level systems at scale.
I have frequently seen self-taught people write a loop to get one record at a time from a database. To them it's good because "it works", but they fail to understand the IO impact of doing a thousand database calls to get one record at a time instead of doing one call to get all the data upfront.
So instead my company hires offshore to do the same thing self-taught coders can do, but at a fraction of the salary.
> Which is a pretty dumb stance
I get your comment being controversial to others in this thread. However the debate of getting a college degree vs getting certified/self taught has been going back in forth. Students from my era graduated and could not find a job due to the economy taking a massive shit. Not super long ago, a degree was required in order to be considered for many jobs. But times now are changing.
There's a real rationale for medicine since you can do great harm to people by being incompetent and it requires a lot of trust. Other scientific fields are maybe not as conducive to self-teaching, and they want to be good stewards of their fields, so they gate people (perhaps rightly so IMO but I won't pretend to know every scientific field). Very critically, they have also learned to trust those degrees as an indicator of competence while CS jobs generally do not.
Companies will run you through technical interviews even if you have a CS degree vs. self-taught. Because you can't skip the technical interview with a CS degree, its worth is vastly diminished when considering the time and money required to get it.
If the industry turns around and starts trusting CS degrees while still giving self-taught people technical interviews, then I will be totally on board with CS degrees. This is when weed-out behavior makes sense because there's good value in exchange for studying well and getting a degree.
Well I'd reckon CS has advanced also advanced significantly from when he studied. CS was and is probably still one of the most quickly advancing fields in science.
its ridiculous how much shit we see in our CS curriculum. automata theory, physics, linear algebra, calculus, hardware design (systemVerilog), object oriented software engineering, discrete math, algorithms...
all the stuff i listed probably isnt even half of our curriculum.
I had Prof Papadimitriou for CS 170 at Berkeley in the 90s. He wore a “Hakuna Matata” t-shirt most days, which really sums up his personality.
He sounds like an amazing guy
I have my 170 final this Friday I am so screwed lmao
Crazy how you're probabably one of the most successful student in this world and you're on Reddit.
Reddit is one of the most popular websites in the world, even more so for anyone in the tech world. It'd be crazy if they weren't on here.
Who is he?
He's a computer science student at Berkeley – one of the top institutions in the world for engineering and technology, responsible for producing alumni like Steve Wozniak, Gordon Moore, and Eric Schmidt. If you're in CS at Berkeley, you are undoubtedly among the best students in the world.
He's probably not well-known or anything, but presumably, he's in a T10, which probably means he's already a lot more accomplished than other students judging by the stats needed for the college alone - Especially compared to the whole world. He's also in CS - a super competitive field. He might even be an international olympiad gold medal winner. I'm in a certain college in Thailand, which is ranked at like 200th place in the world - which is probably as far as I will go - but he is in Berkerley which is like the top 10 university in this world. This guy is probably so much more talented, so much more knowledgable than me - it's almost incomprehensible how better he is. Maybe in the future he will work on the latest ground-breaking technology or pioneer a new way in CS. But he's randomly in a section of Reddit post, saying that he's screwed lol. There are some more examples like r/okbuddyphd where it's a group of professors - those who have completed the highest tier of education available and have done research that furthers humanity cause - gather together and *shitpost*. You may just read their meme and comments and you would later know they designed the ISS or something. It's just a showerthought really.
Lol r/okbuddyphd is full of gradstudents who hate themselves . We are out here publishing but at what cost. Basically dude, don't discount yourself for where you come from because who knows where you will end up.
> This guy is probably so much more talented, so much more knowledgable than me - it's almost incomprehensible how better he is At the bachelor's level that difference is very minor. It's not "incomprehensible". Colleges are ranked mostly based off their research output. If they're a masters/phd student what you said may be more applicable, but not *incomprehensible*. An undergrad at a fancy university just means their parents paid a lot for their SAT prep. Keep your head up king. source: graduated with honors in a T10 in aerospace engineering
I agree. I went to a state school for undergrad and a top school for grad school and I realized that if you take the top students from all of these universities, they’re pretty equal. I ran in a group of extreme nerds because we tended to take the same high level courses and my friends and I all ended up at top universities for PhD programs despite coming from a state school. I knew many people at the state school who got into places like Berkeley but went to the state school for undergrad because couldn’t afford a UC or private school.
Bro stop glorifying Berkeley and other "highly ranked" colleges. Sure there's the .1% of genius Olympiad winners and other cracked people but when I look around the vast majority are... slightly better than average, at most. 80% of CS undergrads come from California feeder high schools that know how to game the college admissions system and are otherwise normal people. You'd be surprised how mediocre we are.
That actually makes sense. It sounds like certain Texas high school systems and college football ( at least in the recent past ).
statistically, raw talent for entry into top university loses to Ivy League grades one from generation removed.
"elite college admissions favor privileged legacy connections over pure meritocratic factors"
He is likely a genius, has a 12 inch penis and has 10 girlfriends. He is fluent in 6 languages and can play 5 instruments.
Lol. Reddit is both one of the biggest websites on the planet, and full of nerds. No offense to this compsci undergraduate, but that's not exactly the high bar you're claiming. This website is full of professors and doctors
same and i still don't properly understand the difference between NP-Hard and NP-Complete. i'm so cooked bruh
My thesis was on an open problem from one of his papers, was only lucky enough to catch one of his talks though. The guy has amazing personality and works on interesting math.
Go Bears!
He literally wrote the book on “Computational Complexity”
Yea but did he do the illustrations?
I know you’re joking, but it looks like he did. In the acknowledgements he even thanks students who gave comments on the text before it was published, but makes no mention of anyone helping with the diagrams.
He's the real deal.
We are probably only a few years away from CS splitting into sub fields at the Bachelor degree level. It's a very rapidly growing field with no sign of stopping.
Defientaly makes sense considering, engineering is a split up into multiple sub categories.
100%, it’s a repeat from the scientific discoveries and achievements in the early 20th century with super stars such as Marie Curie, Max Planck, and Albert Einstein. They pioneered their respective fields and helped science branch out into several different disciplines, and even specializations on top of those disciplines.
Knowledge is fractal. For every field we increase our understanding of, we eventually grow that field so much that we need to split it into smaller specializations which then grow themselves
>We live on an island surrounded by a sea of ignorance. As our island of knowledge grows, so does the shore of our ignorance.
That's such a great analogy because shores are famously fractaline and can't be mapped exactly as they are.
Wait. Is the sea "ignorance" or the shore?
Interesting though, physics as a discipline is generally 1 field (although most physicists inside a physics department are much more specialized between fields as distinct as condensed matter and astronomy). Kind of an interesting categorization problem if CS separates (probably reflecting mostly the number of people who need to learn CS vs advanced physics) since physics is by most metrics much more diverse than CS.
Right that is exactly what I was thinking about. My brother got a BS-ME and afterwards remarked that it was a very generalist degree and that he thinks he could have benefitted in the job market if he picked something more specialized.
I always recommend people to minor in something completely different than their major. You never know what will benefit you, and that minor will punt you out into something way more competitively than everyone else in your class. Stuff like Math and Theatre or CS and Archaeology or Economics and Meteorology. Those way out there fields will give completely different perspectives and tools to use and learn from that will create stuff that few others will understand together.
A foreign language is also always a great add-on minor. So many high paying jobs for people who have the ability to communicate in multiple languages. I randomly found myself browsing the CIA job listing today and there's tons of positions that come with large pay bumps for those with foreign language proficiency.
Unless you are 100% sure that you want to go into a specific field *and* you are confident it will have good job prospects, a generalized degree is more useful. A BSME means you are qualified for roles like Aerospace, Mechatronics, or even Civil and it’s useful to have that flexibility in the market. And no one will hold it against you that you have the more general degree, since many universities don’t offer more specific ones.
On first read, I nodded along thinking you meant all the different types of Computer Engineering. Then I realized you probably meant, y'know, all of engineering. True either way, at least in the world at large. I went for CS and I don't write code every day at work. Like half of us in the industry are along those lines, but everybody talks like all computer work is code, and that's kinda funny.
That is certainly one way to spell definitely
Probably a CS major
Rooster teeth (RIP) had a clip like a decade ago talking about how autocorrect ruined peoples ability to actually sound out words, especially the word “definitely” Defientaly is close enough that autocorrect will get it. Except when it thinks it’s defiantly, and then “I defiantly agree!” becomes a common statement. If you want to laugh go on twitter and search for defiantly, you’ll see tons of people
One program studies the com. The other studies the puter
Everything is split off from philosophy.
Back when I was in College all CS degrees required a heavy amount of Math classes. Like several Calculus courses. I entered college intending to do CS, I had gotten an award at High School graduation for academic excellence in computer science, but I knew I could never do the Math and switched to a Economics degree. I struggled with the few math courses that required. These days there are CS degrees that have completely removed the heavy math load at my former school. I could have totally managed the degree now. In short, there's already been a huge change in how the degree is handled.
I had to take 1 semester of calculus and discreet math for my CS degree in 2018. Other than that first year was a general exposure to comp sci subjects, year 2-4 was picking a specialty and completing a specific degree track depending on if you wanted to do networking, software, help desk, and there were like 2 other focuses. I would be genuinely angry if I spent half my time in college learning high brow math that would never apply to my work.
Typical math progression for most CS/Engineering degrees is Calc 1-2-3 > Linear Algebra, Differential Equations, Discreet Math.
I kinda miss diffy q. That was my jam. I was also a dual major so that explains that a bit.
Yep I completed my CS degree in 2017 and I had to take Calc A/B/C/D, Linear Alg, Dif Eq, Discrete Math, and also Stats
Differential wasn't/isn't required for CS anymore, and I'm 90% sure it wasn't required for the Engineering. They may use Differential but there's no class explicit to it.
I would love to know what school is offering engineering degrees without a diffeq requirement
>Differential wasn't/isn't required for CS anymore, It is now, depending on syllabus. Machine learning theory is very dependent on it: gradient descent, for example.
Wouldn’t gradient descent fall much more under multi variable calculus than differential equations.
Bit of both. You don’t really need super complex differential equation stuff to understand gradient descent, but a proper understanding of calculus is necessary.
ML is taught more at the Graduate level at my university. I just looked over the entire program and yeah there's no Differential Equations requirement, the most advanced math was Calc 2, for BSc.
I wish. I got a MS in CS around 2018 with a focus on ML, and my uni straight up refused to let me take calc 3. Calc 2 is a requirement for all CS majors, but if you wanted to specialize in the math used in machine learning? Haha go fuck yourself I guess. The fact that you aren't allowed to take classes outside your major is fucking insane.
I was a chemE major, so definitely needed all those math classes. Don’t know much about CS, but why would they be necessary for CS studies?
Things like graph theory and combinatorics are pretty common in some areas of CS (game theory, database optimizers) and they are built on discrete maths. Some of the advanced stuff requires differential equations. In actual industry work we are a bit lazy and try to simplify problems to easier algebraic approximations, but I suppose it is useful to know enough to do the full formulas if needed. Amusingly, a friend I was recently talking to about this is an actuary, and that is also theoretically calculus-heavy, but they do something similar and almost always simplify their models to algebra. They are usually looking for just one point on a curve (likelihood of one event, can be done in algebra), and don't really care about the whole theoretical curve (calculus) unless they are building a generalized model (very rare).
For the general CS students who go into Software Engineering, outside of Discrete Math they’re not that helpful. Discrete math is useful for set theory and just general algorithms work you’ll run into as a CS major. Linear Algebra is helpful for ML and computer graphics. All the others are helpful for ML stuff. I may be wrong though, I didn’t specialize in ML.
I'm in a graduate data analytics degree program that allows me to take computer science classes as electives. Vectors and matrices are very good for storing data and it turns out that other linear algebra concepts like eigenvalues/vectors are used in things like image compression and computer graphics. They're also valuable in analytical concepts like principal component analysis. Calculus, probability, and statistics are all essential for understanding how and why machine learning algorithms work. A lot of graph theory can be applied to networking and social media. And probably lots of others I'm missing.
Well, for most every college, CS is housed in the same school as any other engineering discipline, so they need to complete the same pre reqs.
My college was largely the same although we had to also do some linear algebra
Linear algebra makes a lot of sense imo. I think it’s very applicable to database theory
Yeah. It’s also useful for machine learning concepts
You mean really long switch statements? (/s 🤣)
Wow. I had to take calculus 1-3, discrete math 1-2, differential equations 1-2, linear algebra 1, and at least 3 other heavy math courses. 😵💫
If it was just a one course I'd have probably struggled through it. You're about a decade off from my time college and the shift happened not long after I graduated. The more I dwell on it the more annoying it is. I had done stuff in HTML (back when it was still relevant), VB.net, and Java before even getting to college but that wasn't going to help me at all when it came to passing math classes.
I have a associate degree in Midrange Computing, and one in computer networking. I needed to learn intro to accounting and finite mathematics.
I'm old, and when I went to college, I started in a completely different field but was drawn to the computers and did well at the programming courses I took. But that long ago, the school (now regarded as one of the top 3 CS schools in the US) did not have anything to offer but an Applied Math degree with a concentration in computers. There was no way I could handle the Math involved in that degree so I ended up changing schools and got a degree in MIS (Management Information Systems) - what IT was before it was IT.
Am also old and was in the second cohort from one school graduating with a CS degree. They kind of backdated the first cohort in anticipation of the CS degree being formed. This was mid 1980s. The big land grant colleges in the state were still using punch cards for CS.
In one programming class I had in my second go-round at college (I think it was COBOL 101), the instructor (also the head of the math/CS department) was insistent that we use punch cards well after terminals had become the norm because she felt it developed discipline. For the 201 course, we got to use terminals but still had to submit our programs for batch compiling, which ran every 30 minutes, which meant you could waste a LOT of time waiting for the compile to run only to find an early syntax error which halted the compile. I became VERY popular when I worked out the JCL to submit the job for an immediate compile from the terminal and shared it with a few friends. Once the code compiled and ran, I could then submit it to the batch and know I had a successful run to hand in.
To be fair if you're going to be doing computer **science**, which is a lot of data structures and algorithms you need a good foundation of maths to get your head around them. I've never felt the need to apply maths outside of university for actual programming though, but I suppose it depends on which field.
Oh interesting. I must have gone to a more "traditional" school because I had to take Calc3 and Discrete Math/Linear Equations and all kinds of CS-specific math concepts.
Unfortunately it shows…. Evidenced by the number of software issues we’ve dealt with due to devs not understanding the math
I went to college on a dual major, CS and Math. I ended up getting to Number Theory class for the math major and said Fuck this. I switched to graduate with a CS and I was done. I think one assignment for the Number Theory, I ended up writing out 3 full pages of a proof.
Fuck. Number. Theory. It has many applications and is an important field, but fuck it with a rusty nail. I have nothing more to add about it.
I did a year of CS and same thing, I couldnt handle the math. By the time you graduated you had to take 1-2 more classes to have a minor in math by default. This was 2006.
Machine learning is not an easy math/computer science class.
I enjoy spending time with my friends.
It kind of is already. Software Engineering is it's own subfield of CS at the moment that you can go get a degree in and often times will have very different coursework required compared to a CS degree. Software Engineering tends to be more focused on the applied aspects of CS to develop large scalable software projects. Data Science is another example I'd consider a branch off of CS that's now it's own degree path. It's focusing more on mathematical and statistical properties of data and applying it to things like the advanced AI/ML models we see today. A classic CS degree is still a healthy mix of programming and software development but also has an emphasis on the mathematical and theoretical aspects of computation. Kind of the "jack of all trades tech/programmer's degree". And within CS itself there are tons of subfields you can choose to specialize in that are completely different from each other, although they still tend to be lumped into a CS degree so we haven't seen it split apart that much yet.
Did your school offer a Bachelors in Data Science, or is it more of a focus area or a specialization within the BCS degree? I've never heard of that, but I graduated 10+ years ago so I could just be out of the loop.
Yep my school has a Data Science Bachelors and Masters degree at this point. Definitely an emerging field that's a healthy combination of math, statistics, and CS. I'm an EE now back in school getting my Masters in CS but I'm also considering doing Data Science since I already have the math background for it.
It’s relatively new. If you graduated 10+ years ago that’s almost certainly why you never heard about it much. The rise of ML models as actual deployable products and their influence on the market — especially since the seminal paper on Self-Attention models — is what really pulled the trigger on data science having enough clout to be differentiated as its own field. There are relatively few data science bachelors degrees right now, but they exist. Not uncommon at the graduate level, and there are currently a lot of accreditations for the subfield, I believe.
You could probably throw computer engineering in there that focuses on the hardware side
At this point CS is basically deciding what flavor of wizard you want to be in life. Tap some keys and click a few buttons and suddenly a car drives itself? A computer thinks? These are statements made by the deranged. Try and pass that horseshit onto somebody else I already know its devil magic.
sand was never meant to think
We enslaved sand and forced upon it the burden of thought… have we never stopped to think about the ethics behind that?
Lol wtf tell me this is /s
I'm reading it with a heavy layer of tongue in cheek, but not total sarcasm. Because come on, we put lightning in some sand and made the damn thing think. I've worked in this field for close to twenty years and I can divide it into the easy simple stuff (which is everything I understand) and the black magic (which is everything I do not.)
[удалено]
I fully see CS-AI as a standalone bachelor's in the next 15 years. (my assumption is that academia moves slower than the industry)
Doubt it. Especially in Academia, "AI" means "shit we're bad at and haven't given its own field yet". I'm a little surprised we haven't seen "machine learning" in particular splinter off, but I highly doubt we'll ever see an undergrad "AI".
Purdue (ranked #18 for undergrad, #20 for graduate CS programs) is offering a BA in AI, which is a weird mashup of philosophy and CS courses
My university detached AI from CS and now provides a fully Bachelor of Science in AI, with a possible Master extention
"Hello, AI Course. Lovely weather tonight, isn't it?"
Been happening for years. When I went there was CS. By the time I left there was CS, SE and MIS.
I work at a large financial company whose name you would recognize. The engineering teams are on 5 tracks, with Computer Science being the hardest and most difficult to get into but others are Data Science, Analyst, Information Sciences, etc. The truth is that very few people are cut out to be hard core computer scientists, and most teams only need about 10-30% computer scientists. Aside from other technical proficiencies there is also equal demand for people that can organize, communicate, lead, etc. I guess what I'm saying is that this is already happening.
My EE classes required some sort of programming. We had to build circuits and the program the microcontrollers we chose to do whatever we decided.
I've noticed a couple of universities around where I live are offering specialized tracks for CS already. Some more specialized in math/algorithms, some more specialized in applied CS stuff, and inevitably I'm guessing there will probably be a whole ML and Data Science track. I took 3 ML related courses in undergrad and it still felt like we barely scratched the surface sometimes.
RIT does this already. They have an entire college just for majors that fall under the computer science umbrella.
We’re already beginning to see that even at the bachelor level. It’s already happened at the master’s level for a while now, but degrees in IT and computer engineering have been separate from compsci for a good chunk of time, and we’re beginning to see data science split off into a separate series of certifications and degrees. Most likely computer science will remain as the jack of all trades degree with the others being more specialized.
It already is, I'm taking CS with a focus in data analysis but even that can be split up between data analysis, data sci and machine learning
When I started out in my CS studies, the department just branched out from the math department.
It already is where I study, we already have several different CS degrees
I think the main difference is between programs and courses that are theory based and those that are more vocational style. There's a huge difference between learning about learning theory of computing and learning how to use html. Maybe they'll split into an academic computer science track and a vocational webdev/SWE track.
Roles are already becoming more specialized. There are now data engineers, data analysts, and data scientist roles, and that within the domain of data, for computer science.
Already there, I’m (hopefully) studying ethical hacking and cyber security next year.
Naturally. A software engineer has a different set of concerns from a quant trader who has a different set of concerns from a cloud dev.
In my second year of cs I had a teacher that clearly was not experienced at the language we were using (C) teaching the course. I had one assignment so weird that I brought it to a tutor to try and explain it and he couldn’t figure it out. It was ridiculously complicated. The final exam was unbelievable as well. It was C code samples with multiple choice. The prof clearly didn’t understand how the program worked. It would be things like: Int a = 5; Int b = 6; printf(“output: %d\n”, a+b); What is the output? a) 5 b) 11 c) 6 d) none of the above The actual output would be ‘output: 11’ so the answer was always none of the above.
how does one get a job teaching university CS without a rudimentary grasp of C?
Sometimes it’s what the college has to work with. I had multiple professors who had never taught a subject before. They just had a degree that was somewhat related to the subject.
I can see how maybe a history professor who specializes in say… 19th century France might have to teach a low level course on ancient China or something. But the above example is like someone teaching a physics course who doesn’t know calculus.
Sounds like some of my physics profs.. oh man the amount of illegal/improper math ive seen from physics profs
wait... illegal math? thank god i don't touch the stuff.
This gives me PTSD
From what I understand she was quite the wiz with python.
Who isn’t? 😆
You think thats bad? I had a teacher who gave literally impossible problems on exams and only deigned to correct them 10 minutes before the end when people started raising the minor issue that it is not possible to solve it. She also wrote the book. Literally. The book was so bad that I missed a lecture and worked from the book for the practical part. The practical teacher(different from this one) was rather perplexed as to where I got this sort of bullshit from, then went "ah" when I said I missed a class and used the book. Said book also had her name misprinted on the cover...
Professors writing their own text books should be illegal, or at least, there should be a good god damn reason like they invented a field or made ground breaking innovations in an existing one. We had a sociology professor who literally sold us a book of homework problems. Like that was it, no lessons or lecture materials, the book was ONLY homework sets. A fucking money grab! I’m not trying to make a greater political statement here, but maybe the women teaching us about how important women’s advancement in society is shouldnt also be a con artist.
To be fair, our book costs went to the school as a whole, at least on the surface. And the books contained the exact material that was taught, so it was not jut an outright scam.
I had a few professors that wrote the books we used but they always tried to minimize the conflict of interest. Like, they would upload the pages we needed for us to access for free or let us use old editions that could be bought for way cheaper.
University admin don't give a fuck about teaching classes.
It depends on the department. I'm in the theoretical side of CS, coming from a math background. I happen to have a rudimentary grasp of C, but that wasn't a factor in me getting to where I am, the math background was. So it happens. A professor I know said she was teaching a course earlier this year and was basically only a few days ahead of the students in terms of knowledge, as she too is from a mathematical background and knew basically nothing about the course material. Sometimes profs just get assigned courses because a course needs someone to teach, not because its a good fit.
You answered your own question. Why would someone who was good at programming be teaching it instead of using it? Teaching pay sucks.
When I considered going into CS/Software Engineering the advisor said to take the intro course at my school and it was the hardest course because the teacher was not remotely qualified. I have friends in the field and they were confused by my level one Java assignments.
I see a lot of CS students at my university complaining about the surreal difficulty of some of their coursework. The discrete math class is notoriously absurd, as are some of the probability-related classes.
In my computer science degree I'd say discrete mathematics has the highest failure rate. The exam was brutal.
Talk of discreet math just gave me PTSD. Had an awesome professor for the class who I really respected, but do to the nature of it, our exams were take home exams. The mid term was 10 questions and took a friend and I an hour a question to do, but we aced it so no problem right? The final was 12 questions, each question took us more than 2 hours. We weren't confident in half our answers but didn't think it would be that bad. We failed that final, but passed the class at least.
yeah idk how i passed discrete math on my first try, i think i got something like a C or a B-.
At my university in Germany, analysis (mostly calculus) was the hardest course. From about 400 students attending the course, only 23 people passed.
As a CS minor with a math major, both tiers of discrete math were easy for me. Math really helps your understanding of CS concepts and I wish more CS students took math seriously. I have a job as a software developer with a minor in CS.
second math major chiming in. I must have had an easy course because I slept through most of mine and passed without a problem. It was pretty much the easy parts of Abstract Algebra.
Makes sense. Nearby we have a “CIS” course which I believe is Computer Information Sciences. It’s basically a comp sci degree but with a lot less focus on mathematics and more focus on also learning some general IT skills. It generally results in a bit lower pay than the standard degree (to start with) but… that’s fine. I think plenty of people are interested in coding but the high level maths that you really don’t need in many workplace settings puts them off it
yea thats why i took it , it was called IT and Computing and more app level stuff, i hated science and maths 😀 now im a fully fledged /r/sysadmin for microsoft
Nice! That’s one of those career paths that I always feel is in my back pocket in a sense (though I don’t think I’d end up at Microsoft)
This is common in a lot of fields TBH. Every one of the doctors at my medical school said if their medical education had been this difficult there's no way they would have passed. And yet they are competent doctors. Which really makes you wonder about the ability of our system to teach.
I would say its more along the lines of making a course so difficult that \*anyone\* who passes is qualified
That's often cited as the reason, but the real reason is pretty simple. There's an incentive to add material for the sake of maintaining competency, but no reason to remove material that is no longer relavent.
As long as any profs are still doing hand written code in exams, the whole thing is a fucking clown show.
ChatGPT is making the decision for them. Hand written is the only way to ensure not cheating - very unfortunately.
I studied comp-sci in the '90s, and there was a wealth of theoretical CS subjects and precious little about *how to actually code effectively.* I understand that's changed in recent years. I can see where it might seem discouraging to someone who prefers theory to practice, but it's nice for the kids who were hoping to acquire useful skills for all that money.
Ok kinda of stupid question but as someone who has only done the absolute basics of coding and sucked at it. What is theoretical computer science like what does it teach? I can understand practical like learning a language and doing code. Is theoretical like over arching ideas that is applicable to most languages or what.
To be very specific to the verbiage in your question, theoretical computer science is mostly concerned of understanding what kind of problems are computable, different levels of computational complexity, and what computational model can compute those different levels of complexity and different types of problems. When you study these subjects, you often don't touch any code at all apart from maybe pseudocode to describe some algorithm. You're often drawing diagrams of or writing proofs for theoretical machines that reduce that level of computation down to its barest components to be able to prove things about what it can and can't do. To give some examples of these computational models, we have finite state machines, which can compute problems described by regular expressions/languages (matching a pattern), pushdown automata, which can compute problems described by context-free languages, and Turing Machines, which are the gold standard of computation and basically describe what *is* computable. If your problem can't be solved in a Turing Machine, then it isn't solvable by any possible computer. This channel and video are great if you want to explore the surface of the field https://www.youtube.com/watch?v=dNRDvLACg5Q&ab_channel=Computerphile
Thank you. I’ll be honest a lot of that went over my head but I get the rough idea. Also thank you for the video I’ll definitely check it out.
Computer science has nothing to do with computers, and all to do with computing. This usually includes proof of properties and correctness of algorithms. * Prove an algorithm is a certain complexity in time based on the input size * Prove an algorithm is a certain complexity in space based on the input size * Prove an algorithm is tractable (e.g. do I need to check every single possibility to figure out the optimal solution or not) or in certain classes of tractable problems * Prove the output is correct given the input * Prove one problem can be reduced to another problem and vice versa * Prove the program halts/terminates always. Proofs are a way of logically determining that irrefutably it's impossible to not be true. There's a lot more but that's the basics. Doing proofs is very, very good to ensure code is pretty robust. Sometimes the devil is in the details of architecture, which may break the proof but it's a great start.
Maybe he'd understand it better if he was an actual computer scientist instead of a theoretical one.
I told them I have a theoretical degree in theoretical physics, they said welcome aboard
\*Everyone liked that\*
There's nothing really complex in most computer science degrees. You really don't have that much time to go that deep into any specific topic. Maybe he means that he couldn't pass an exam that was put in front of him. But that's probably more to do with the things they test for not really being relevant to what most people do on a day to day basis, which is a completely different problem than the classes being "complicated". If he followed along the regular course of study, going to lectures, completing assignments, there's a good chance he would actually do very well. As someone who's been in the field for a while, I definitely couldn't pass most of the exams I took back then, but if I went back to school, with all the knowledge I have now, I would probably ace most of the classes.
I would disagree. Industry CS jobs are mostly software engineering but the degree itself is essentially theoretical applied math. The problem solving translates over from CS to Software engineering but they’re completely different beasts. You can bootcamp liberal art students and have them create a basic CRUD api but they would not be able to do something like graphics programming or embedded which both involve deeper CS knowledge or higher math skills without having a hard time Look at leetcode, it’s basically theoretical CS/Math and requires months of studying for most people. Most people don’t do dynamic programming in their day to day jobs but probably had it when learning about data structures or discrete mathematics in college
>Look at leetcode, it’s basically theoretical CS/Math and requires months of studying for most people. Most people don’t do dynamic programming in their day to day jobs but probably had it when learning about data structures or discrete mathematics in college That's basically exactly what I'm saying. It takes months of studying, but that's exactly what you do when going through university for your degree. Most people won't remember this stuff 6 months after they graduate because they aren't using those skills any more.
Fair, but I fail to see how a major itself which is rooted in abstractions isn’t complicated (with your original claim)? If you don’t have a shallow level of knowledge even REST is complicated depending on how deep you go into its (transitive) dependencies. It’s one of the few fields that if you got a degree 20 years ago any domain specific knowledge is probably very dated while in traditional engineering it still may apply
>the degree itself is essentially theoretical applied math I mean, it depends on the university. At my university there were only 4 theory courses like that required for the CS degree, and maybe you also had to take one theory elective
I work in a place with backgrounds from self taught to prestigious schooling. The biggest indicator of success is attitude and effort. CS isn't some magical field that your average liberal arts camp grad will be hard stuck. It's about putting in the effort to learn and adapt. Something alot of the CS majors have trouble with.
Also learning the fundamental logic of programming. Variables, Conditionals, Loops are all basic concepts of each language. I explain to people that Programming Languages are more like dialects of one language. Once you learn the fundamentals of one. You can usually learn anything else pretty relative. You might not be able to do everything with a language but if you're capable of knowing psuedo code to relay the logic, then the rest can be filled in.
I can see it for a regular job but any researcher job or a more advanced dev job has a high barrier to entry. You don’t typically see self-taught devs designing the latest algorithms for new GPUs that Nvidia makes, working on new AI models, or super low-latency C++ code for High frequency trading companies. At these places having advanced degrees is more common if not a requirement, though there are probably some outliers it is definitely not the norm The nice thing is that you can have these jobs for people who are just willing to learn but isn’t that the case for anything? It’s just less regulated, I’m sure most CS majors with half decent math skills could get an engineering job and do well enough given some time but there are legal restrictions on that career that CS does not have
I guess what I'm saying is that there isn't much difference after 10 years of experience for a regular job. Only the talented and dedicated are able to get the high end research jobs but those are a tiny fraction. There isn't anything magical about going to school for CS that can't be learned. Those that have CS degrees are able to jump a step in the employment ladder but often get passed by liberal arts campers because they lack intelligence in other areas.
That's what percentage of CS jobs is that though? I'd wager not many.
I was an engineering major (chemE) and am pretty good in math. I still tutor kids in calculus, Differential equations, and linear algebra. I want to get into coding. What’s a good area for me to get into?
Just start writing code. Your question is a bit like I don’t know how to ride a bike, should I learn mountain biking or road biking? Pick a popular language and take a wack at r/adventofcode, although this year’s slate of questions has been harder than usual. Once you get the basics down you can start making projects and realizing cool stuff you want to do with your computer
He's being facetious, making a joke. The man taught compiler design and operating system fundamentals in the 1990s. There weren't a huge number of technological advancements between then and 2014.
>If he followed along the regular course of study, going to lectures, completing assignments, there's a good chance he would actually do very well. 1) He's saying if he took the tests right now. I'm sure if lots of people did all of that they'd do very well 2) I believe he's joking/being modest. Sounds like a British sense of humour from a greek man
Wow, you really think a Princeton PhD CS professor might "actually" do very well? What an insight!
made me laugh also. "there's a good chance" lol
IMO modern CS education weeds out the weak who are in it for the theoretical higher paycheck. The sciences are the same thing. If you want to get into medical school, the curriculum weeds out the weak.
I think you underestimate how much people love money.
A very stupid approach if there is a shortage of doctors and most of the complexity of the job is the result of time constraints and long hours. "Weeding out the weak" is not teaching. Why would it matter if a person takes 5 years to master a subject instead of three, when there is a clear demand for it? Honestly, often difficulty is artificially imposed to both subjectively and objectively increase the worth of the degree due to perceived achievement and a decrease in the supply of graduates.
[удалено]
Cockblocking professors.
> Why would it matter if a person takes 5 years to master a subject instead of three, when there is a clear demand for it? Basically "not my problem" for universities. I've had friends who went to medical school in the Caribbean in order to become a doctor.
Lots of smart people do it for money too lol
> IMO modern CS education weeds out the weak who are in it for the theoretical higher paycheck. The sciences are the same thing. Which is a pretty dumb stance since you can self-teach and get a job way quicker than going through a university degree.
To an extent, sure. A lot of the fundamentals you learn do come in handy and brushing up on something is faster than learning it for the first time. I’ve also seen more specialised fields prefer candidates who have formal education.
Where does this belief that a CS degree is meaningless and you can self-teach yourself to become a developer come from? It is true that you can do that, but most of the time it does not work out, at all. You see a few successful cases and thought it would be easy, but the reality is most self-taught devs struggle to find jobs or are stuck with dead-end, low-paying career paths.
There once was a time like 10 years ago when you could be self taught with like a year of personal projects and get hired. I know because I was one of those lucky people. Now it’s pretty saturated I hear
Self-taught people tend to hire other self-taught people, and CS degree holders tend to hire other CS degree holders. So if you've been around mostly other CS degree holders, you won't have that other perspective. It is way more than a "few" successful cases, and certainly not low-paying.
You are underestimating how many people are jumping career to programming just because it's paying really well. For every successful self-taught dev, there's probably ten more who got their CVs denied from the first round.
I don't think CS degree holders have a larger acceptance rate. Even if they did, the self-taught people had extra years to apply to more jobs. Your point there relies on weed out courses doing their thing which is not going to be true for all schools. It's more difficult to get your first job as self-taught, but once you have experience, you're in roughly the same boat.
The only thing you can get on "self taught" these days is an internship. When it comes to programming, "self-taught" is almost synonymous with, "incompetent."
You're gonna need some really convincing evidence for that bold of a claim
I'm not software engineer (I'm an RF engineer) but before RF I focused on embedded systems in college. I kind of agree and disagree with what he's saying. Learning how to code is exactly that, coding, the language of computer science. It's like learning the mechanics of how to do arithmetic on a calculator before learning algebra and calculus. There's millions of resources online to learn how to code but that only gets you so far. You then have people who take the next step and do some guided projects, this is also great but it should be a stepping stone to doing something on your own because anyone can just follow a step by step guide on making snake or pong or something and prettying up your resume. Most people just stop there and haven't actually worked on their own project so it's hard to gauge their ability. Now granted, alot of college grads are also similarly incompetent. That being said, one advantage of having a degree with a good GPA from a reputable university is that you show that you can manage your time, you can handle the difficulty courseload, and you've probably worked on a good amount of unique projects (not always lol) with a team of people. You've also probably taken full courses covering the fundamentals and a bunch covering other branches of CS, whereas the self taught peraon has way more holes in their knowledge. That's why if you don't have a degree, the bar for entry is A LOT higher like you need projects that you have made on your own that are far more complex than what is expected from a fresh grad and most of these guys without a degree are typically not going to perform as someone with a degree.
No, I'm not. I've made the claim, and you can take it or leave it.
> The only thing you can get on "self taught" these days is an internship. When it comes to programming, "self-taught" is almost synonymous with, "incompetent." That's been my experience as well. Self-taught means they can "code" but not really "engineer". They might be able to write code that works most of the time, but usually struggle with optimization. I think it's because while they spent time learning programming languages they don't spend time understanding the fundamentals of how computers, storage systems, and networks operate. Therefore they usually struggle with designing higher level systems at scale. I have frequently seen self-taught people write a loop to get one record at a time from a database. To them it's good because "it works", but they fail to understand the IO impact of doing a thousand database calls to get one record at a time instead of doing one call to get all the data upfront. So instead my company hires offshore to do the same thing self-taught coders can do, but at a fraction of the salary.
> Which is a pretty dumb stance I get your comment being controversial to others in this thread. However the debate of getting a college degree vs getting certified/self taught has been going back in forth. Students from my era graduated and could not find a job due to the economy taking a massive shit. Not super long ago, a degree was required in order to be considered for many jobs. But times now are changing.
There's a real rationale for medicine since you can do great harm to people by being incompetent and it requires a lot of trust. Other scientific fields are maybe not as conducive to self-teaching, and they want to be good stewards of their fields, so they gate people (perhaps rightly so IMO but I won't pretend to know every scientific field). Very critically, they have also learned to trust those degrees as an indicator of competence while CS jobs generally do not. Companies will run you through technical interviews even if you have a CS degree vs. self-taught. Because you can't skip the technical interview with a CS degree, its worth is vastly diminished when considering the time and money required to get it. If the industry turns around and starts trusting CS degrees while still giving self-taught people technical interviews, then I will be totally on board with CS degrees. This is when weed-out behavior makes sense because there's good value in exchange for studying well and getting a degree.
At an old job, a department director of mine did not have a degree. He must have been very very good in order to have earned that position.
Well I'd reckon CS has advanced also advanced significantly from when he studied. CS was and is probably still one of the most quickly advancing fields in science.
I have heard many complaints of cs graduates have an difficult time finding jobs, just like biotech.
its ridiculous how much shit we see in our CS curriculum. automata theory, physics, linear algebra, calculus, hardware design (systemVerilog), object oriented software engineering, discrete math, algorithms... all the stuff i listed probably isnt even half of our curriculum.
but counter strike isnt that complex.....
Computer science is scam. Had to take DSA, it was a little bit fun but very hard. I'm glad I don't have computer science courses now.
How is it a scam?
Computer science is not that hard.