
What is the hardest thing in Computer Science? - sidntrivedi
&quot;There are only two hard things in Computer Science: cache invalidation and naming things.&quot; — Phil Karlton
======
arethuza
I like the variation on that quote:

"There are 2 hard problems in computer science: cache invalidation, naming
things, and off-by-1 errors."

~~~
sidntrivedi
Haha...BTW, if I may ask, what do you find the hardest in Computer Science?

~~~
arethuza
Semi serious answer: people!

~~~
AnimalMuppet
Not semi serious. Absolutely serious. As soon as you start writing a program
that takes more than one person to complete, or where you're writing not for
you to be the one and only user, people problems come in. And I'm just talking
about communicating intent and design among people. The bigger the project,
the more that's a problem.

Then there's the unrelated problem of dealing with other peoples'
personalities. The bigger the project, the more different people, and the more
this aspect is a problem as well.

~~~
arethuza
I remember once on a complex project a senior manager going "That may be what
I asked for, but its not what I want" and in a startup I joined where the CEO
was adamant that any feature he could think of could be implemented in less
than 48 hours - and this was a video technology/devices startup not a web app!

I've made horrific technical mistakes at various points in my career - but at
least it is possible to learn straightforward lessons from those. Learning
about people - now that's a challenge!

~~~
konradb
I find it quite interesting that a natural inclination of some people is to
believe that if it was simple for someone to think, in some way, of the
feature they want, that it should also be simple to implement. Have seen this
a lot.

------
Hackbraten
Security.

It needs to be built into every phase of computing, starting with the CPU
micro-code, going through network protocols, up to the topmost JS framework
layer.

Screw up one piece and you may end up with a major vulnerability.

Many software project owners avoid it due to complexity. To some extent, even
academia sometimes eschews it.

~~~
sidntrivedi
Umm..what about Compilers and their implementation? Isn't it hard?

PS: I find them the hardest.

~~~
nikofeyn
compilers do a known thing. security means protecting against unknown things.

~~~
sidntrivedi
I get your point. Seconded.

------
peter_d_sherman
Making your code so simple (and well documented!) that it can be understood by
programmers with much less experience than you, while not compromising speed
or functionality.

“Everything should be made as simple as possible, but no simpler.”

-Albert Einstein

~~~
karmakaze
This is the one I strive for. Making a challenging thing self-evident and
appear like it wasn't that much work, even when it was an explosion of code
later distilled.

------
sloaken
1) Keeping up with an ever growing and changing tech environment.

2) Dreading visiting my parents, because you always hear:'Oh good, come here
and look at this problem I have'. My wife even volunteers me to fix other
peoples stuff, which is real annoying.

~~~
uvw
Am I the only one who don't mind fixing stuff like that. I sometimes do get
satisfaction of making things work no matter how trivial.

~~~
ChefboyOG
I have this weird polarity in the work I enjoy.

I'm like you in that I enjoy just making things work, even when they're
trivial. I particularly like doing it for other individuals.

On the other hand, I also enjoy harder research problems. Obsessing and
learning new things quickly is probably the biggest joy I get out of work.

What I hate is the middle ground. I hate solving trivial problems, but in a
high-pressure environment, for people I'm only circumstantially committed to.

------
lgl
The hardest things so far will probably be one of the unsolved problems in
computer science that you can see here:

[https://en.wikipedia.org/wiki/List_of_unsolved_problems_in_c...](https://en.wikipedia.org/wiki/List_of_unsolved_problems_in_computer_science)

------
CyanLite2
People--including end-users and non-technical managers.

------
nunez
Predicting what users will do with your software.

------
bobbyz
If I'm being cheeky, its other people.

------
tromp
Determining the next Busy Beaver number. Every time you determine one, a
harder problem takes its place. And eventually the problem becomes unsolvable,
as only finitely many values can be determined.

------
cbm-vic-20
Telling the difference between Computer Science and Software Engineering.

~~~
sidntrivedi
Haha XD

------
kn0where
Printers.

More seriously, robustness/security. Everything we “engineer” is incredibly
fragile. Nothing is built and able to be “done” if it needs continuous
security maintenance for its entire life.

------
diehunde
I don't know about hard to understand but if we are talking about getting
things right:

\- Concurrency

\- Building distributed systems (databases, messaging systems, distributed
file systems, etc)

\- Low level programming

------
shahbaby
Not exactly computer science but the hardest thing I've found is preparing for
algorithmic coding interviews.

------
ern0
The hardest thing is to accept that you don't really need CS as a software
developer. Even programming tasks - digging into legacy code, implementing
features etc. - requires no CS knowledge, and programming is just one thing sw
devs do.

Other words: there's no CS topic which helps you during an estimation meeting.

------
tcgv
I have a simple theory on why it is hard to name classes ;)

\- [https://thomasvilhena.com/2019/10/why-is-it-hard-to-name-
cla...](https://thomasvilhena.com/2019/10/why-is-it-hard-to-name-classes)

------
sloaken
Determining when something is done, because you always feel like you can
improve on it.

------
DoofusOfDeath
Learning about topics that are professionally useful, but in which I have
absolutely no interest.

In my case, web development.

------
acoye
Creating a `complete` (in a mathematical sense) computing system.

~~~
exdsq
There's some cool work in this area though! :D

~~~
sidntrivedi
Any context about this? Any links about a complete computing system?

------
jonnypotty
Complexity

~~~
kleer001
I'd like to hear some reasoning behind that. Maybe more adjectives?

IMHO Complexity, in general, is good. Nature conserves it when its adaptive.

~~~
jonnypotty
I don't mean to sound flippant but there actually seems to be lots of
different hard problems in computer science, or computing (to be honest I'm
not sure which we're talking about here) but all of the ones that I know of
are hard due to complexity. Our science is good at reductionism, finding
fundamentals, but when it comes to complex systems it simply informs our
inadequate simulations. So I think the hardest problems in computer science
will exist where we try and apply it in the real world to complex machines. In
computing there are many hard things to make, databases, operating systems,
programming languages, the list goes on - and they are hard because they are
big and complicated and so making them is hard because to some extent it
doesn't matter how much resource or intelligence you have because the problems
that arise in complex systems start to get chaotic and intractable.

------
techbio
trust

