8 ms·
Computer science is the formal study of problem solving. Hence, algorithms - deterministic, mathematically tractable, general solutions to problems. Hence progr
by HenryR 17y ago
Computer science is the formal study of problem solving. Hence, algorithms - deterministic, mathematically tractable, general solutions to problems. Hence programming language theory - ways to efficiently express solutions to problems. Hence the study of data structures: building blocks that solve small problems, which crop up in many, many larger spaces, very effectively. Hence the study of the formal theory of computation: tractable models of mechanisms for general computations that happily map onto physically reliable machines. Hence computing machines: devices that allow us to compute solutions to problems at high speed. Hence machine learning, computer graphics and natural language processing: studies of specific classes of problems that happily submit to some general (but domain specific) approaches.
Computer science shares some of the creative sensibilities of mathematics: the building blocks (theorems) may be well understood, but there is a creativity and insight required to arrange them in such a way as to produce an [efficient/elegant/small/general] method to solve a given problem (proof). At the same time, this is why coding on its own is such a pale shadow of the entire field of computer science. Implementations at their worst are merely transcriptions of someone else's work.
Don't aspire to be an artist with your code; it's not the medium for art. There's a different aesthetics at work here. You will not habitually provide commentary on society or the human condition. Don't begrudge others the fact that they might. They don't begrudge you the beauty that you produce.