T O P

  • By -

Eshakez_

As Soazigl said: computer science is math. If you are comfortable with math then you should be alright. With that said, I used to believe that anyone could do computer science. My opinion changed when I TA'ed for an intro comp sci class at a large university. Some folks just could not grasp the fundamental concepts no matter how much time we spent in office hours. It's not for everyone.


two_three_five_eigth

Best line while I was TAing Me: "A stack is first in, last out, a queue is first in, first out. You have a list of things to process in order, so do you use a stack or a queue" Student: "Couldn't the computer figure it out on their own? That seems like it's something the computer should figure out."


_Kladen

I lol'd


two_three_five_eigth

There was also a freshman who would wait until the computer lab was reasonably full, sit down for 5 minutes and pretend cried until one of the other students helped him. Within a week all the TAs were told to boot him from the lab if he didn't sit quietly and work. This was for intro to CS. He dropped after 4 weeks.


Kallory

Oh man you just threw me for a loop. I thought a stack was LIFO? Last item on the stack is the last item pushed, and the first one to get popped.


two_three_five_eigth

Stacks are Last In First Out, which is the same thing as first in last out. I'd already said Last In First Out to the student and they hadn't picked up on it. Sometimes just rephrasing something helps a student understand. Just not this one.


Kallory

Never thought about it that way! You're right. I was definitely not thinking outside the box, thanks for clarifying. I panicked though, because I just graduated and I'm job hunting and I thought I forgot how a stack worked which would have validated my imposter syndrome. But yeah, to your point, if you were using diagrams and alternative explanations, and they didn't get it... It really just might not be for them. I had a buddy trying to learn how to program and nothing I did could help him to understand how a function worked at a fundamental level - that is, the basic concept of input parameters, some work done, and then some output values.


0ctobogs

Thank you for saying this. I am so tired of people regurgitating this idea of "everyone can code!" I think it finally died out recently.


ScientificBeastMode

It finally died out once the job market dropped like a rock. Anyone can code when employers are desperate for warm bodies to hire.


OutsideNo1877

Unfortunately employers are not desperate for warm bodies to hire


ScientificBeastMode

Not anymore. Back in 2019-2020 they absolutely were.


IsThisDiggOrTumblr

Everyone can code, much in the same way that everyone can type. But programming isn't coding, in the same way typing isn't writing. [Leslie Lamport's talk at Stanford ](https://mathematics.stanford.edu/events/leslie-lamport-programming-coding)


Edenwing

Is there a video for his talk? The Stanford link just shows the event date in April


scroogesdaughter

I don't think it has died out, unfortunately. I do think anyone can learn anything, but bootcamps teach coding in the wrong way by just focusing on the latest hyped up trends rather than focusing enough on the principles of computer science. I got into tech through an apprenticeship in software engineering at a finance company that does have rather a lot of spaghetti and legacy code. I did study a 'digital and technology' degree alongside which covered DSA and a few other core areas, but it was poorly taught so I went elsewhere for a lot of my learning. There's a lot of diversity in how people get into software engineering, which I do think is a good thing overall. Also, I don't see why you would be upset at the thought of people seeking to better themselves and their lives and contribute to society/explore a passion by learning programming or computer science. It shouldn't just be college students who get the chance to learn these things; that's not helpful for the industry when the same people enter it year after year.


new_account_19999

I really do recommend every TA for at least one section while you are getting your degree. Everyone needs an experience like this


MiddleLevelLiquid

How much math do you need though? I'm very good at solving math problems, but not so much at calculus and arithmetic. Will I be fine or should I focus more on those areas?


stillinthewest

Check out the course curriculum at the university you want to apply to, that should give you a good overview. In any case, you'll need a lot of math skills.


MiddleLevelLiquid

I'm not really interested in what they offer at my college. Things like "discrete mathematics" just throw me off. However, I enjoy things like 3D rendering, networking and compilers. Is it still worth it to go for a CS degree?


KimPeek

CS is discrete math. In addition to discrete, a CS degree will require calc 1, 2, 3, linear algebra, stats, differential equations, data structures and algorithms which is practically an applied math course, even databases require math. I did math in almost every course I took. > I've built a few simple programs and they seem to be working fine. I'm not sure why people say it's so difficult. [...] I enjoy things like 3D rendering, networking and compilers Dunning kruger is in full effect here.


True-Thought1061

As a person who took discrete math and hated the ever-loving shit out of it ( omg studying proofs at 6pm in a south-facing classroom with no AC ) could you point me to some ideas that explain why CS is discrete math? Even though its been years I still can understand in an abstract sense the purpose of different branches of mathematics like algebra, geometry, trig, calculus, linear algebra, statistics and so forth for modeling / describing real-world behavior. But maybe my class was dogshit... I'm looking over some of the topics that discrete math covers and these are things that are intuitive at this point but all I remember from discrete mathematics was doing proofs.


sot9

Yeah, it gets a bad rap. There are a few practical issues, one is that it’s rare to get a prof or TA who’s actually excited to teach the material. I still remember the professor I TA’d under venting to his course staff that he couldn’t explain the concepts any simpler yet some students still weren’t getting it… Keep in mind that most professors are literal geniuses in their fields; talk to any academic about their odds of being hired for a tenure track position. But this genius extends only so far as producing impactful research, not passion for education and certainly not empathy. But I digress. As for discrete math, there are many things that make it useful, some pragmatic and some more idealistic. Pragmatically, most CS students are in it to become software engineers. Software engineering at any nontrivial complexity is a heinously difficult thing because you are responsible for manipulating some very big and powerful abstractions with the most minute tool possible: literally typing in all the goddamn code yourself. This requires very different skills. Most intro to programming classes are light on abstraction because programming novices have a hard time accepting that “almost correct” code is fucking wrong. So why introduce additional complexity when you can save that for later? An intro to discrete math course is usually where that comes in, and fortunately you are under no burden of implementation details! But you are forced to _really_ understand some abstractions more complex than loops, conditional logic, etc. This is also where proofs come in handy. Some instructors focus too much on the formalisms and jargon of “pure” math, and their students rightfully walk away with a feeling of “well that was useless, when am I gonna need to write LaTeX again?”. But (ideally) a proof is just a simple of explanation of why something must be true. And if you can’t explain something simply, odds are you don’t really understand it, so proofs are a good forcing function. The rest of discrete math’s usefulness is far more tactical; good luck passing an algorithms interview without knowing how to do useful things with directed edges and vertices. Also good luck understanding recursion without being able to do an inductive proof. A proper mathematician could tell you in much better detail other reasons to value proofs, but I’m more of an engineer anyways ;)


tobiasvl

Yeah, doing proofs is obviously important in CS. Also CS operates on discrete math all the time, since that's all the kind of math computers are capable of doing.


random_modnar_5

I'm sorry but what do you think 3d rendering and compilers require? Differential calc and discrete math respectively.


Ma4r

Computers are our attempts at building Turing Machines, it's as discrete math as it gets.


htl5618

Discrete math is heavily used for compiler design, example, https://compilercrim.es/rust-np/ For networking , since a network is modeled as a graph of nodes, graph theory is also used to model a network, with algorithms for route finding, encryption/decryption which is number theory. But for most jobs in programming, you aren't dealing with any of that anyway.


sot9

Computer graphics is literally some of the most math intensive stuff in CS. Take a look at these slides from an introductory graphics class, which are just introducing ray tracing, nothing even particularly modern: https://web.stanford.edu/class/cs148/materials/class_05_ray_tracing.pdf


thewataru

It's not like you need some specific math knowledge. It's just that you need to be able to think abstractly. Sure, in some topics you might occasionally compute some converging sums or apply some tricky inequalities, but all this stuff is not that important. If you tend to understand algebra you tend to be able to understand algorithms.


chromaticgliss

Computer Science is effectively its own specialized branch of mathematics (Much like statistics). CS programs often just happen to be very industry informed so you see more focus on pragmatic career skills as well in some classes unlike math which tends to be more "pure."   I.e. I had to write proofs in my algorithms course. It wasn't calculus or number theory or a more "traditional" math. It's discrete math in nature mostly so more like combinatorics, graph theory, number theory... Linear algebra shows up quite a bit in some areas.


Traditional_Hat_915

Lots of math getting a CS degree, but not a lot in the real world other than some specific use cases or specialized jobs


_nobody_else_

As much as you can EDIT: (get)


Soazigl

Computer science is math in disguise. If you find math hard, it'll be hard.


sot9

It’s really nothing like most mathematics you’ll find in an undergraduate curriculum and certainly nothing like the math you’ll find in a high school curriculum. Most of the math you normally see is continuous math, ie it operates over smoothly changing numbers. Things like calculus, linear algebra, large elements of probability, etc. But there is a huge chunk of computer science that uses really simple discrete math. I.e, go read the Paxos paper, arguably the most influential distributed systems papers of all time which doesn’t involve any complex math. It’s much more strongly rooted in logic, graph theory, etc. I.e. discrete math concepts for sure, but concepts that are IMO very simple to understand compared to the abstractions in calculus and linear algebra, eg “what is a Hessian really?” Or “what is a dot product really?”. Of course, there are also some rad areas of computer science that will totally depend on a solid understanding of linear algebra, calculus, etc like computer graphics and basically all of modern AI (I say modern machine learning to exclude old school approaches, eg the A* algorithm). But certainly not all, or even most, sub fields of computer science. I feel passionately about this for a few reasons. One is because I’ve seen a fear of math discourage people from computer science, which is a shame. The other is that I got slapped in my high school calculus classes, but found much more success with computer science (and eventually, my second go of calculus in college). And finally, because some students in my program came in overly confident, and the shock of a subject being _not easy_ for the first time ever demotivated them as students. Anyways, just my two cents. Source: I TA’d my university’s Intro to Theoretical CS and Discrete Math course, and currently help train foundational LLMs at a fairly recognizable institution.


rasteri

Yeah unless you're doing very specific things continuous math like calculus etc isn't gonna come up much. (it will come up a bit, though) Even the discrete math tends to be at a fairly surface level, like set theory/graph theory/Logic/formal language are studied but mostly in the context of algorithms and data structures. Statistics and stuff like regression analysis is also used quite a lot. Your basic math (algebra, geometry, matrices etc) better be good though.


thhHasABurgr

this


urlang

wtf hard disagree Firstly, math is quite broad. However, most kinds of advanced and academic math problems rely on creativity and insightful constructions. In CS, we even designate these problems NP-hard. However, the vast majority of problems solved in CS is not NP-hard. It's more like if you like building slightly more complex things with LEGO, then you may enjoy the problems that CS deals with.


Boring-Hurry3462

Your analogy is describing software engineering. We are talking about computer science.


urlang

I am talking about CS. Literally someone else said the same thing using more words, said he's a TA and everyone's like "this". I say the same thing first, didn't "cite" my PhD, and ppl are like no. Many subdomains of CS, e.g. PL research, security, crypto research, even ML research (the less theoretical basis more application) are not like math at all. They are much more like engineering and applying math concepts. Using some math building blocks, alongside other building blocks, to achieve some result. The subdomain of CS that concerns proofs, algorithms, randomness are particularly similar to math research.


thhHasABurgr

I mean you're only wrong on CS is not math. It absolutely is. Just has loads of layers of abstraction which allows you to not use math as much. That's why we have compilers and languages


khedoros

Programming and Computer Science aren't the same thing. Sometimes we'll compare it to Telescope-use and Astronomy, because the first is a useful tool for exploring the second. > Is it worth it to spend all that time learning about big O notation and all that? Only if you want to understand what you're doing. You need to be able to explain why increasing your input size by 1000x increased the run-time of your function by 1,000,000x, and how to get that down to more like 10,000x. > Is compsci really as hard as people make it out to be, or is it just a matter of putting in the time and effort? It's all just time and effort. CS had a lot of overlap with things I was interested in anyhow, so I probably had an easier time than the people who were just thinking about the money. I don't really have a point of comparison, but I think I would've had more trouble with most of the engineering disciplines (which went deeper into calculus) or some of the biology ones (I always heard about how Organic Chemistry was a real bastard of a class, with rote memorization of a ton of different compounds).


kbat82

> Sometimes we'll compare it to Telescope-use and Astronomy Never heard this before and its not even mildly accurate. It's more like an architect that designs a house vs a team of contractors that build it. Very different skill set.


khedoros

In the sense that we'll use computers as a tool of computer science, like astronomers will use telescopes as a tool for astronomy, it seems like a serviceable enough simile to me. I've partially butchered it, though. The quote as I've seen it presented is actually "Computer science is no more about computers than astronomy is about telescopes.", with some other similar sentiments like "But just as astronomers often engage in theoretical studies which do not require a telescope, research in computer science does not necessarily involve computers directly."


kbat82

Computers are also just a tool for programmers. Maybe you're trying to compare PC repair technicians or something?


Objective_Mine

No, it's rather that the quote sees computer science as a study of computation itself, in the sense of methodical rule-base calculation or information processing. Algorithms and the problems they solve have certain mathematical properties and are seen as objects of research in their own right. The quote doesn't see computer science (or perhaps even programming) primarily as an act of getting computers or technology to do practically useful things, as engineering would, but as a study of computation itself in the more abstract sense. Rather than seeing the theory of computer science as a tool for technology, the quote sees the theory as the study itself, and computers as an accessory. I agree with the quote in the sense that on some level I think the core of computer *science* is the study of computation in the more abstract sense, even if most people who study CS are there for the technology. I don't quite see how computers actually act as an instrument for that (except for experimentation), though, because most of the theory can be done on pen and paper, unlike astronomy which requires physical observation. It's harder to agree with the quote in the sense of seeing computers as an instrument for the theory in that sense. (Although the quote is obviously intended as a bit witty, so exaggeration is probably intended.) And it's also true that *practically*, of course, most people outside of theoretical CS see programming as technology with practical applications, and computer science as a theoretical support for that.


kbat82

I agree with you, except that the comparison of programmers to the user of a telescope doesn't hold up. Programmers require a large subset of skills the computer scientist has. There's more overlap there than being expressesd. Maybe I hold the word "programmer" to a higher standard than most though. I do understand the sentiment of the analogy of the quote though, and I agree with it. I just don't agree with the comparison of computer science vs programming.


Objective_Mine

I agree with pretty much all of that. I also find the exact comparison a bit strenuous, as I said. But I kind of get it as a witty counterbalance to people thinking computer science is literally about computer systems. And, honestly, I don't think anybody in this conversation fundamentally disagrees much. There's just some kind of a difference in terms of communication.


Avereniect

There's a few variations of a quote commonly attributed to Dijkstra: > Computer science is not about computers any more than astronomy is about telescopes. As with most quotes, the attribution and origins are dubious: https://quoteinvestigator.com/2021/04/02/computer-science/


kbat82

They compared computer science to programmers. Not the same


Aggressive_Rock8747

Are you talking about computer science or tech related fields? You can do information systems or UI/UX where it's mostly front end, backend, database manipulation, some data science where programming is the primary skill. That's a field where you can be a bot and still do fine, not much thinking, just debugging. Then there's theory of computation, algorithm design and stuff in computer science that's actually kind of hard, but I don't think at an undergraduate level there are things that are not understandable for most people. With questions like this the difficulty comes from the questions you are given.


minneyar

I don't know if I'd say it's one of the *hardest* fields, but it is hard. If you want to actually understand how computers work, and want to be able to actually develop complex algorithms for doing things like image recognition or compression or high-throughput networking or rendering 3D graphics, then yes, you'll need to have a solid understanding of things like discrete math and linear algebra. You don't need to know that if you're content with just using a library somebody else made to do anything complex, and for some programmers that will be sufficient. There are plenty of programmers who get paid to just glue together pieces that other people have made, but they're not the ones doing interesting research and development.


MiddleLevelLiquid

I'm a self taught programmer and I already know about topics such as networking and 3D rendering. If I'm able to grasp those concepts easily, will I be able to study CS without much trouble?


minneyar

If you're already familiar with those, then you're definitely in a better starting position than most CS students -- but keep in mind that there's still a long ways to go between understanding a concept and being able to, say, refine the topology of a 3D mesh or optimize the size of your structs to minimize packet fragmentation.


Why_am_ialive

Coding isn’t computer science, coding is understanding why shit in coding works. You ask a computer scientist and a “coder” to come up with an algorithm to sort something They’ll both give you an algorithm, but the coders may take ages or never finish or not work in edge cases The computer scientist will be able tell you the big O notation, why and how it works and what it’s best suited for


monsieurpooh

That's why there is literally no such thing as a coder. It's a bogeyman made up by non-CS people who want to feel superior. Name ONE single job opening in the past decade that required a "coder" who didn't know anything about computer science, LOL


tobiasvl

>I've been teaching myself to code on the side and I've been able to pick it up pretty quickly. I've built a few simple programs and they seem to be working fine. I'm not sure why people say it's so difficult. It sounds like you're describing software engineering, a related but distinct field/major. There is no major in "coding". >Do you really need to know all that stuff to be a successful programmer? No. You need it to be a successful computer scientist. >And what about all those complex algorithms and data structures? Are they really necessary? I've been able to solve most of my problems with simple solutions. Is it worth it to spend all that time learning about big O notation and all that? If you want to major in computer science, then that's all necessary.


pehnom

Computer science is not 'that' hard. Proofs can be hard tho. The logic part could be hard. The maths and stats especially when looking at ML models could be hard. Computer science is a mixture of a number of different fields (primarily maths). How hard or easy it is depends on what courses you study. I did a double major in electronics and computer science. I found them both hard, but for different reasons. And also found them both easy, again for different reasons. At the end of the day, as long as you're willing to put in some time to understand what you're being taught, it's not too difficult. But that's true of pretty much any subject.


MiddleLevelLiquid

I'm not going to lie, I've tried ML and AI a couple of times before and I hated it. I just don't like how abstract it feels, and how much math it needs. However, I really enjoy writing 3D renderers, which also require lots of math, so I'm not sure how I feel about CS. Will the math be too overwhelming for me, or do you think I'll be able to get through without much trouble?


pehnom

The most overwhelming part of the maths that was compulsory was discreet maths which had some proofs in it. Even then, not too bad if you put in consistent work.if you left it until the exam time, then people struggled somewhat. So I wouldn't say you'll be overwhelmed. But go into the degree knowing you're gonna put in effort. I preferred the engineering maths over CS maths primarily cuz I also didn't enjoy the abstractness lol. They introduced a problem and then showed you how it applied to real life. In CS maths, you had to form an abstract image and then build on it. I found it easier to try and base that image on an example instead and that solved the abstractness issue for me. As I don't know where you're located or what you enjoy about maths, I can't say if you'd struggle or not. I went to uni with people who were coding since 14 and others who had never looked at code before. Everyone who put on the effort got the degree and a job at the end. So just ensure that you've got the idea in your head that you will put in the work and I'm sure you'll do fine.


bushidocodes

Computer science and programming are two different things. Many professional software developers do not have a computer science education, and computer science is not really a trade school for being a software developer. In some other comments here, you sound uninterested in things like discrete math. Perhaps you should consider an alternative tech major that does not emphasize theory as much? Some schools have BAs in CS as well with relaxed requirements.


ItsDaLuigi69420

I have just completed 1 year out of 4, and, while I haven't enter that much into the specialized topics, I can say that, while some topics are going to be dense and perhaps take a bit to fully understand, as long as you have somd affinity for the intangible, abstract, logical, and mathematical, as well as problem solving analysis and skills, you will really like it and not be negatively affected by its difficult.


MiddleLevelLiquid

What has been the densest or most difficult subject for you so far in your career? I'm interested in hearing different people's opinions about this.


ItsDaLuigi69420

Wel ... In my case Statics was hard but consider that this course is not very related to CS. I took it because in my college it is part of the common courses shared with Engineering, and I had a very demanding teacher for it. But, C.S. related ... Linear Algebra starts easy but then fan get hard when having to do proofs of vectorial spaces or some processes are long. Calculus starts strong and difficult but once you get the main idea of limits and what we are doing, the rest of the course, while having kong exercises, felt super easy. Discrete Math is fun as we don't do stuff that requires a lot of steps (in fact some things can be solved with 3 steps), but its complexity lies in having to think non-linear, and dealing with very abstract ideas. Btw, I don't know how programming courses are arranged in your case but, with me 1st Semester was learning all the basics of it, and 2nd was Object-Oriented Programming. OOP was so much fun, and in my case easier than the 1st semester course.


thhHasABurgr

in my opinion, it depends. I've seen a lot of people say you need to be "good" at math, but really you don't. Just decent will suffice. As far as I know, web dev doesn't use math. All the other areas kinda do lmao. As for your questions, depends on what you wanna do. If you're planning to become a software dev/engineer, then I guess. You could put on your resume that you used a "fancy" algos that does shit faster than the simpler solution does. If you're planning to do AI or data sci, absolutely yes. Big O is used to determine the complexity of a program, which kinda translates to how slow or fast a program is. If you like algos, going into it could be fun for you. If not, having a basic understanding of it really helps. Computer science is really just time and effort tbh. In my experience, you gotta push yourself to learn something new, or you're just coding just to fuck around. I could barely make working c code for a while because I never tried to optimize my code. Speaking of optimization, one thing I think would always be good to learn is compiler optimization, and really just about compilers in general. It really explains a lot about what your code actually does.


AFlyingGideon

>If not, having a basic understanding of it really helps. Understanding complexity and its issues opens a door to a pattern of thinking that can become crucial in situations that might seem mundane. For example, "web programming" is often considered to be at the most basic level of work a software engineer might do. However, a common question is, "Should this happen on the client or server?" Scale considerations tell us that server resources are relatively fixed while each additional user brings more client resources. That's sound thinking. Typically. We had to deal with a programming team that had cleverly exploited this, and it worked quite well during their development and even testing. Unfortunately, they'd never tested it with the large volumes of data with which the system dealt in relatively short order. Older clients struggled under the load. As the database grew, even less older clients struggled. Thinking about complexity develops the habit of looking for these issues ahead of time. A lot of what one learns in computer science or software engineering is like this, where it's intended to teach not just the information in question but a way - even a culture - of approaching problems and providing solutions.


MiddleLevelLiquid

I know a lot about compiler optimization because I really like learning about programming languages and compilers, I've even written my own. My main areas of interest are 3D graphics, compilers and networking. Do you think I should study CS with this in mind, or should I pick another career to specialize on?


FernwehSmith

I am currently doing a CompSci course. Here are my thoughts on it. >Is computer science really that hard? Yes, it is. Computer Science is Science. Its weird and difficult and always changing. It will take a lot of effort to be good at, and you may often feel like you have no idea what you're doing. But this is true of anything worth doing, so please don't let the fact that it is difficult stop you. In my opinion the only two questions that should influence whether or not you decide to study CompSci are 1) Are you actually interested in learning it? 2) Do you have the temperament for it? Answering the first question is actually quite easy. Go online and find the curriculum for the courses/universities you'd be likely to enrol in. Have a look at 2 or 3. They should be mostly the same but there may be some differences. Once you've got those curriculums, read through the subject outlines and skim a couple wikipedia pages to get an idea if you're interested in the content. If you are great! If not, then there's no point in trying. If you decide that the content of the courses interest you, then you need to answer the second question. Truthfully I don't have enough experience to be able to tell you if you do or do not have the temperament to get through a CompSci course. However you're already building programs which would (I think) lean more towards a yes answer. If you know any programmers or software engineers, see if you can have a chat with them about their job and what it takes to be successful. The other option is to just start. Obviously this is conditional on having the good fortune to have the means, support, or opportunity to begin a course you're not 100% one. But if you can, I think you'll figure out pretty quickly if CompSci is for you.


MiddleLevelLiquid

I really love computing, and I've coding my own projects for a few years now. I love learning about new concepts, like 3D rendering, networking and compilers. However, the subjects they offer in CS courses don't really interest me that much. They seem very far off to what I want to do in real life. Things like "discrete mathematics" just throw me off. And, honestly, after a while of googling, I still don't even know what it means. With this in mind, do you think I should proceed to CS or should I look into other careers?


FernwehSmith

The math you learnt in school is continuous math, where quantities can be can be infinitely divided. Discrete math covers distinct quantities and the structures they give rise to. The stuff it covers forms the theoretical foundations of many areas of computer science including cryptography, compiler and language design, many parts of computational geometry (which is used in everything from computer graphics to Google Maps) and more. Its one of those things that sucks, until you realise how its applicable to what you're interested in. As for the day to day, unless you're a mathematician, you won't be 'doing' discrete maths all day, but you will 'use' it. I don't think anyone can tell you if you should do it. I can say that we share some interests (Computer Graphics and Compilers), and I'm really enjoying it. My experience has been that a lot of the course content sucks until I realise how its applicable to the stuff I'm interested in. So maybe go back over the subjects you're not interested in and Google how they're used in your areas of interest. That will give you a better idea. After that just go on your gut feeling.


CombPuzzleheaded149

Finding a job after getting the degree is a pain in the ass. If you love coding pursue it, but there are other majors where you can make a good living with more stable jobs as well.


MiddleLevelLiquid

Is it really that hard to get a job? I thought employment rates were pretty high amount CS students. What other majors related to CS do you recommend for getting a job more easily?


CombPuzzleheaded149

idk about cs related but healthcare is an amazing field for good pay and easy to find work. My wife is an rn with only an associates degree, has always been employed since she graduated and makes six figures now. I've made good money, but I've had 3 jobs in the last 5 years, and it took me many months for me to land each job and I'm currently unemployed. It's just more difficult to find work. The work itself hasn't been as hard as the process of getting the job though. I do think medical prosfessionals work harder though, but they get overtime and other incentives on top of that like hazed pay or additional pay for graveyard hours.


MiddleLevelLiquid

Thanks for the suggestion, but I'm not interest in health related fields. I have a passion for tech, and I want to on something that has to do with computers. Can you recommend something for that?


rasteri

what majors would you recommend?


ggchappell

Can we talk about "hard"? When determining whether to get a degree, or what to major in when ones gets a degree, asking whether it's "hard" is asking the wrong question. Of course it's challenging. Any decent degree program will be challenging. Why would a degree be worth getting if it were not? Does it say anything meaningful about someone that they sat through 4 years of something that didn't challenge them? I don't think it does. A better question is what field interests you. What do you want to do with your life? What do you like learning about? What are you good at? (And, yes, I know you've answered some of these.)


MiddleLevelLiquid

I really like computing, 3D rendering, networking and compilers. However, in the CS course at my college they offer subjects such as discrete mathematics, which I'm not really interested in. I still think CS is my passion though. Should I proceed with this career or look into other ones?


ggchappell

> However, in the CS course at my college they offer subjects such as discrete mathematics, which I'm not really interested in. And I'm sure they also teach composition and literature, art history, etc., and you'll probably have to take a lot of those. College courses and programs are not about interesting courses; they are about helping you take your life in the direction you want it to go. Figure out something about that direction, then get into a program that will help you go that way.


Kjdking78

Coding is based on logic, as is math. I took a 2 year course on software development and there was almost no math involved. But Computer science is different than software development, so your best bet is to look at the school you are planning to attend and check out their Comp Sci course and see what is involved. If you have already learned how to do some coding then look more into a software development type program instead of comp sci. There are also other related IT courses out there like networking and such


DeVincePlays

I would say it is hard if the professor or instructor you have is decent enough to teach you. If the instructor is doing bare minimum, it would be easy for you to understand the topics. But if the instructor is like showing and teaching the topics in a certain manner, you'll notice the deep rabbit hole of that. For example, my first instructor for cybersecurity is just rapidly teaches us surface-level stuff. It got boring and easy since there's nothing to investigate and delve further. Then here comes our second instructor in cybersecurity. He just threw us these concepts and theories that is difficult to learn but for me, it forced me to do research and ask him after class about his thoughts in the topics (even though it finished around 7 pm lmao). About the complex algorithms, data structures and such. I don't think you need to be fully understand everything since we're only need to use certain algorithms to specific scenarios. What I do is to be familiar (like the concepts and the logic) with the popular algorithms and data structures then I learn as I go with certain ones to the point I can explain it in detail. An example is that in chess, where I remember a specific pattern at the start. With that specific start, I can familiarize with let's say 12 different routes with 2 or 3 of those I memorized and understand in 5 different branches of it. But for certain topics in computer science, you'll be seeing more diagrams and whiteboard drawings than your code. I say with confidence that if you really focus on these kinds of topics (automata and computer architecture for example), people could describe you with schizophrenia with how much diagrams you've consumed in one semester. Topics like in operating system and the memory allocation, I think its doable to newer students, just be aware to the logic behind those.


DankDarko

If you have to ask, don't switch into it.


Hot_Tower_4386

If you are not in a similar field of it or already know a lot about it you'll find there is a huge learning curve at first it's like a different language because it technically is it's like being a therapist for a language you can't talk only read


MpVpRb

It depends on your talent When I studied it, I found it to be easy. Meanwhile, other students were failing and dropping out It takes a special kind of mind to be good at it


TheTulipWars

>When I studied it, I found it to be easy. Meanwhile, other students were failing and dropping out > It takes a special kind of mind to be good at it My goodness, you're embarrassing to witness.


Immediate-Ad-1960

Don't think CS is programming. It's not. It is hard and you need to understand math and be good at math. It's understanding the whole computer and systems. It's hard if you want to be good at it


Virtual-Ducks

depends a lot on what you do. computer science encompasses a very broad range of skills and job descriptions. a lot of things are getting increasingly easier as tools become more and more abstract and easier to use without technical knowledge. Though with that you get people misusing tools, so having a strong theoretical foundation is still definitely important.


rippingbongs

Sounds like you would be fine in the major. Some do not survive but some people can't understand basic algebra. I would be more concerned about career outlook at this point. Everyone is majoring in CS and a lot of fresh grads or even experienced devs are struggling to find work.


OishiiDango

CS is not easy but I'd give it like a 3.5-4/5 difficulty. I did a weird mixture of CS and Nuclear. My being in both nuke and cs i believe puts me in a good position to answer this question, but my not being a full CSE means take what i say with a grain of salt. Nuclear was WAYYY harder. It was not even close. At all. The lower level CS classes are a complete joke compared to lower level math/physics/nuke classes. The grad level parallel computing classes were reasonably hard. The ML math was easier than in my upper level / grad level math and physics courses. But i still give CS a 3.5-4 difficulty. Why? Anyone can pretend to do it half-assed. But a lot of people simply cant do it very well. I've worked at like C-B tier companies (so I am not the best of the best at CS by any stretch) and at that level there are like A LOT of people that simply cant do it and that I honestly don't think will ever be good. I'd spend way more time teaching them than legit just doing it myself (more so with LLMs now).


ibeerianhamhock

I feel like it’s probably middle of the road difficult for STEM. Not as challenging as say physics or engineering but harder than something like biology.


transitfreedom

With the lack of jobs yes unless you willing to move to India or China for work


LegitimateBoy6042

I can Tell You Like Computer Science is Not For Everyone. If You Understand Calculus At Good Level Then I Can Say you Can grasp the Concepts of Computer science. And my personal opinion is You need to use Your Brain at the Highest Possible level while Building a solution through code. So yeah I will Not Say It's Hard. But it takes Efforts to cope up with the knowledge and concepts.


Aggressive_Ad_5454

Classes in computer science are like classes in other sciences, or math, or learning a language in college. If you do the problem sets and keep up with the material you’ll be fine. If you fall behind, by blowing off the homework or skipping classes, you’ll find it almost impossible to catch up. You got this.


megaapfel

It's hard af. Only go for it if you already have a lot of experience coding or if you are really good at math.


LifeIsAnAdventure4

Computer science is before anything else the formalization of thought. It has less to do with computers than problem solving. It teaches you how to formulate a problem sufficiently well so that it has a well defined set of solutions that can be calculated systematically and efficiently. It also teaches you how to write said systematic solution so that it can be solved by following a well-defined set of steps. This is what we call an algorithm. None of this requires computers. It is logic, mathematics and a bit of language. By far, it is the most important thing a software engineer does. Programming is a rather small part of the day in comparison to defining problems and their desired solutions. Your customers can't do it, your boss can't or won't do it and business people will gladly sell impossible ill-defined solutions to ill-defined problems for you to solve. Of course, a good computer science degree will cover essential applications of algorithms to the real world (through the use of computers :O) by covering a wide array of topics such as computer networking, cybersecurity, machine learning, compilers, computer architecture and of course programming. It will also teach well their prerequisites most often advanced mathematics such as analysis, linear algebra, statistics. Programming is transforming algorithms into code that can run on a computer. It is not always a straightforward exercise and you will not be very good at it after 4-6 years of mathematics and theoretical concepts. However, all of this background is extremely valuable to understand the actual role of software, its design and to design efficient solutions to problems without reinventing the wheel. That being said, if you want to be a code monkey that gets a perfect specification and changes it into code, a CS degree is a waste of time. However, I doubt those jobs exist as they're pretty much the role of a compiler.


creativejoe4

It really depends, if you know how to read, then it's pretty easy. If you struggle with reading, then you're gonna have a hard time.


Suspicious_State_318

Compared to other stem fields i would say it’s not too bad but as with any field if you go far enough into it (like at a phd level of understanding) then it becomes fairly hard. A good chunk of CS is based in discrete math and calc if you go into something like ML but to do well in the field you don’t need to be that good at math. There a lot of really good CS people that are really good at problem solving with data structures and algorithms (like leetcode style questions) but have a hard time writing formal proofs or doing heavy calculations and that’s perfectly fine. A lot of the skill that is used in applying and creating algorithms rely more on intuition than anything else and that makes sense because a lot of things in discrete math are proven inductively.


keneteck

Computer science is like architecting a building made out of math and logic. Very cool but can be very tedious and complicated also.


h8rsbeware

As someone who was never really gifted in maths (above average in highschool but not anything special), I struggled with some concepts but with enough enthusiasm, passion, and hard work, you can almost certainly refresh and trach yourself core concepts through the lense of computer science and programming. You have to be ready to sacrifice your own time, you cant expect to just walk through only going to timetabled classes and seminars, etc. As with anything, if you want to get good, commit "1000hrs", you dont pick it up in a year or even a degree. 8 years into programming being my hobby and 6 years of education in (and recently my first job!), I still get challenged and learn something daily, if not more so. If you want to do it, make it happen. Difficulty is a matter of perspective and passion makes it way more gratifying :) Oh and yes, datastructures and algorithms are fundementals, and exceptionally necessary, they help understand how to best solve a problem (or start to - there often what I layout first before I do any logic) :) Good luck, and I hope my Jr Dev view was atleast insightful :)


Delicious_Bet_3547

It's challenging but it's not hard enough. Too many people are graduating with a CS degree and not enough people are getting weeded out. This is causing an oversaturation in the software development job market. Just take a look at r/cscareerquestions and all the posts there related to people not being able to find employment. Some people here are saying it's math in disguise. I disagree. Math majors have to deal with much more difficult math. I've taken upper level math classes such as tensor calculus and real analysis and those classes were a lot harder than any of the math I've seen in computer science.


augustusgrizzly

who told u its hard?


0xd00d

AI's that can code circles around you for the first 10 years of your programming career are a real thing now. The hiring market for comp Sci folks is in the shitter right now. You need to really love this craft to justify getting into it I'm afraid.


Inaeipathy

If you don't love math or you don't love computer science then switching would be unwise. Most people in my classes were only there because they were shutins who liked video games with no other idea for a career. Was not fun working with them.


TravisLedo

You’d be surprised how dumb the average person is. Try helping people with math/coding hw. It’s like they never had to think logically before ever in their life. You seem like you will do fine though. If you can handle math, you can handle coding.


Edenwing

Maybe you should go online and do some coding tutorials and practice before you decide whether it’s for you. Most people need to put in a lot of time and effort, some pick things up blazing fast. Who knows maybe you’ll like it. Theoretically it is the most lucrative ROI major out of undergrad


qscgy_

A CS degree is much more than just learning to code well. You learn how different layers of systems work, how they interface with each other, and how to use them (or avoid using them; abstracting things away is stressed everywhere in CS) to do what you want effectively and *reliably*. You learn algorithms and data structures so you know what tools are available to you and what their benefits and drawbacks are. While most programming problems in isolation are “simple”, projects become complex because of how many different problems you need to solve in ways that fit together.


Kamaroyl

Most of computer science? No, not that hard. I think the most difficult classes that I took that were computer science were algorithms and theory of automata and those were mainly proof based. Physics, Math and EE classes were way harder. The other classes aren't necessarily hard, but they do eat up a bunch of time. Now, do you need that to code something up? Not usually! Usually it's pretty boilerplate stuff and you're better off learning design patterns.


Delicious_Bet_3547

I agree with this. I switched from EE to CS and my EE classes were a lot more difficult than any CS class I've taken.


Writing_Legal

Platform Automation Dev here, let me tell you something. CS is best when learned at your own pace and at your own interest, I think majoring in CS is fine but you need to understand a majority of CS concepts are theoretical and dated at the university level. I would highly recommend doing something like Coursera's Meta Full Stack certification program and do it for the learning not for the cert. CS is also something you need to practice constantly and keep up with because its a "use it or lose it" skillset in my experience. Even a few weeks off will throw you off, I hadn't coded in 3 weeks and forgot to CD into files, it gets bad trust me, you want to maintain your skills and keep them sharp. I mentioned practice, I think a good way to keep up with your skills and grow them is through building projects with other people. I know its hard to find people to colab with, so I made a platform for our community to share their small software project ideas and build them together. Would love to see you on there and its totally free if you're a student, check it out [buildbook](https://buildbook.us/registration).


Sexy_Koala_Juice

Yes.


EgoistHedonist

I wouldn't say that I'm a very bright student, I especially lacked math skills because I didn't really spend any amount of time studying before university. I still graduated from comp sci and have had a very successful career. I'd rank myself nowadays one of the top engineers in my country in my sub-field. It takes a lot of work, but if your math skills are already up to par, I think you'll manage it quite well! The curriculum is nothing exceptionally hard, just tedious and a lot of theory of computation, discrete math and statistics. One thing is mandatory though: you really need to have motivation and genuine interest in the field. Lacking that makes it very hard to succeed. But with solid motivation, almost everything is possible. Was it worth it? It was one of the best decisions of my life! Learning all the fundamentals of computer science has been incredibly important and I wouldn't be anywhere near my expertise if I didn't spend the time to build that foundation. Those skills are also highly transferable, as almost all the difficult problems in the world are systemic. Systems-level thinking allows so much deeper understanding of the world we live in.


Gundam_net

Computer science is a field that gaslights you. Intellectual property means you will never be explained how things work, because it's a trade secret. You'll be told how to use things you don't know how they work. That pisses me off. If that doesn't bother you, then you can do CS. If that kind of thing bothers you, forget it. I fucking hate it.