I get why natural sciences can be hard — they deal with understanding things (nature) that neither created nor controlled by humans. The understanding is based on lots of hypothesizing and experimentation.
I get why social sciences can be hard — they deal with understanding things (human aspects) that is heavily influenced by humans but in an organic and indirect manner. Again, the understanding is based on hypothesizing and experimentation.
When it comes to computer science , I am perplexed that it is hard. Humans have direct control over the creation of hardware and protocols. Humans have direct control over the creation of programming languages and the programs. Since we control pretty much everything in computer science, why do we need hypothesizing and experimentation for understanding (not evaluation) in computer science? Why can’t our understanding in computer science stem solely from the construction of concepts and entities? Are we doing a bad job constructing (and combining) concepts and entities in computer science? Or are we doing a bad job communicating (both writing and reading documents) concepts and phenomena in computer science?
I agree there is a human aspect in computer science. I agree this aspect is a big factor when we consider end users. However, I wonder if it is (or should be) such a big factor on how non-end users create and use concepts and entities in computer science.
How can we explain the hard time we have in understanding and using concepts and entities in computer science defined by us as a community?