What makes computer science hard?

In programming, ideas of Generics, Polymorphisms, Inheritance, Types, Classes, Sub-classes, Interfaces, Sub-interfaces all have mathematical properties and relate to design patterns. My question is, what intrinsically makes CS difficult?

You have theory of computation and algorithm analysis that also relate to mathematics. A lot of programming theory is mathematics. Even software engineering can be difficult.

So Veeky Forums what makes CS difficult? I'm not talking about code monkey stuff.

Other urls found in this thread:

en.wikipedia.org/wiki/László_Babai
twitter.com/SFWRedditImages

nothing, it isnt difficult you fucking brainlet

Can you elaborate on why you think CS isn't difficult? I think you're the brainlet and want to better understand your incorrect thinking.

I heard ~30% of students never fully grasp the concept of assignment.

Complexity analysis.

says the brainlet that thinks cs is print "hello world";

This. Complexity Analysis was made rigorous by peeps like Knuth. Doubt could solve majority of the difficult problems in TAOCP.

Most difficult things are Mathematics as you already noted, which isn't a surprise since CS (not your fucking bad Programming Degree with 7 classes for 7 different OOP programming languages) is applied Mathematics

programming isn't hard... especially that OOP stuff you listed

these anons are right

Formal Language theory was pretty fun desu. Challenging in some aspects.
I'd also say a lot of the more advanced AI stuff gets pretty difficult (I'm not referring to ML or "deep learning" or whatever the fuck other buzzword).

>computer science
>hard
Those two words don't go in the same sentence.

None of what you listed is computer science.

Try Turing Machines and Algorithms. Most of the hard stuff in CS is just Combinatorics, Algebra, and Logic.

You're a brainlet. The formalization behind the ideas in OP's post is category theory and type theory and programming language theory.

Pure mathematicians tend to study recursion theory more (since you're a brainlet this means computability theory) and theoretical computer scientist tend to study more theory of computation in relations to decidable problems (like computational complexity theory, analysis of algorithms).

Come back when you do actual pure math and theoretical CS. Once you take measure theory and functional analysis you'll see math isn't just computational based, I know it's the only thing you know now from your engineering math courses. It's funny to see low IQ engineers like you shitpost so much.

CS isn't even about programming. It's about the theory behind it.

And none of what you listed is in anyway "hard" for anyone with an IQ over 90.

If you wanna program apps go do a 6 month crash course, you'll get plenty of job opportunities after that.

Graduates from other disciplines can move into CS easily, and get good grades (they do in 1-2 years what it takes CS students 3-4 years to accomplish. I even saw a non-english speaking, middle-aged midwifery graduate ace CS). CS students themselves also get good grades because their modules aren't very difficult. The maths they do isn't at the same level of other STEM subjects, the science they do isn't at the same level of other STEM subjects, and many STEM subjects teach programming as a small part of their material, making most of CS a subset of other STEM subjects.

Most CS degrees are basically glorified software engineering degrees, and are not hard. The hard parts of CS are graduate level CS, and is better suited to graduates from other backgrounds (maths, physics, engineering).

>The math isn't at the same level as other STEM
Here you literally have all your math classes together with the all the other engineers. Actually most of the curriculum of the first 2 years is pretty much identical.

Perhaps it's just murricans once again lowering the difficulty so they can get more student shekels.
Repeating the same thing they did to the social sciences and humanities. Believe it or not, these fields used to be respectable.

See

I graduated with a pure math degree. No PhD program would accept me in CS because I don't have CS courses. The course requirements are data structures, algorithms, computer organizations, operating systems and the like.

In most schools you cannot take data structures until you take 1-2 programming courses, usually broken down into a beginner programming class and a more advanced programming class. That's two semesters of taking a single course each or a year of pre-reqs before you can take data structures. Then you still have to take computer organizations before you can take operating systems.

CS programs (even theory what I want to do) require baseline CS courses. Meme or not they require solid programming background coming in and don't let you say you "know programming".

Anyways, I begun taking CS courses to do research at the school I want to go to.

Odd. I got accepted into a PhD at a great university with a maths degree and no CS courses. Maybe it's because of the research you wanted to do?

I'm not 100% sure that social sciences and humanities were every respectable, but they certainly give university a bad reputation these days. There's actually some overlap with those subjects and some branches of CS, which is a shame.

What research area do you do? I'm interested in theory but applied for systems at the time. I'm mostly interested in theory and may apply for that but I think I'll go ahead and take the pre reqs due to the quals depth requirements at most schools. Utilize what school you go to since I may apply there if they accept pure math majors. I have an undergraduate publication in math as well (though it was at the undergrad level).

On mobile meant curious not utilize

Are you triggered that a combinatorist can do anything a Computer Scientist can?

No? why would I be jelly of a peer mathematician, even if he didn't focus on CS ?

Trying to build a complicated application with a lower level language like C because you have to manually control and implement a lot

Algorithmic analysis can be a little difficult

Recursive data structures

A lot of CS is abstract thinking that most people are not used to (since we are dealing with how a computer operates), so it can throw them for a loop and be intimidating even if it isn't necessarily impossible to grasp

The more you experience CS the more you get comfortable in the atmosphere but there's a barrier to entry that filters out a lot of casuals

most of what you mentioned is just OOP masturbation words. Don't be worried about that type of stuff.

What makes CS hard is not what you are told. Your frankly are probably not going to teach you much. It's what you infer. It's the hacking.

Real computer science, in its proper form, is about understanding the nature of computation relative to what machinery the universe allows to exist. People see "computer science" and think of a UNIX mainframe, their little smartphone toy, or a desktop. They think silicon, and they think wrong. CS is everything from a modern desktop, to the human brain, to ancient chinese water stream logic gates.

en.wikipedia.org/wiki/László_Babai

It's machine learning in medicine, but to be fair I had some experience in programming when I applied.

In CS? I'd say the difficulty is not so much in the depth, but the breadth (you really should at least be familiar with everything from geometry to category theory if you want to do research. Different branches will require different skills e.g. graphics will require more knowledge of linear algebra and geometry, while machine learning is definitely more focused on probability and statistics and also linear algebra, and complexity theory is pretty much all kinds of math). As far as the hardest course I took, definitely complexity theory.

In software engineering I would say Domain Driven Design was kind of hard to REALLY grasp at first before seeing real examples of it. After that it was just a matter of applying it repeatedly. Also didn't see the point in TDD until I got really good at it.