From a96d8ec708500b10cf48298213922b7dc0398d9a Mon Sep 17 00:00:00 2001 From: mjkwiatkowski Date: Sun, 21 Dec 2025 12:28:33 +0100 Subject: refactor: moved files from themes to layouts and static --- public/posts/studying-computer-science/index.html | 91 ----------------------- 1 file changed, 91 deletions(-) delete mode 100644 public/posts/studying-computer-science/index.html (limited to 'public/posts/studying-computer-science/index.html') diff --git a/public/posts/studying-computer-science/index.html b/public/posts/studying-computer-science/index.html deleted file mode 100644 index e4dd70c..0000000 --- a/public/posts/studying-computer-science/index.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - -
- - - -
- -
-

It has long lingered on my mind to reflect partially on my experience of the last 3 years. -The B.Sc. of Computer Science I have recently undertaken is soon coming to an end. -Fortunately, this is not the end of my journey as a Computer Scientist, but there are specific things that I did not realize about Computer Science before I embarked on this endeavour. -Here’s one that has been bugging me the most: Computer Science is 90% reading and understanding and 10% coding.

-

With the proliferation of the so called “vibe-coding” and use of generative AI to streamline production of code this might seem like a medieval thought at first, but bear with me, as I believe it to be the most important thing I have learned about Computer Science in the last 3 years.

-

Dealing with complex problems is hard. -Programming is all about solving problems, we programmers live by optimizing our code the best we can, and try to find solutions to problems that we encounter while doing so. -While it is no doubt nice to have a working code that does something cool, or a solution to a problem that meets the specification, I don’t think that is the mindset a programmer should have – that is, to solve a problem is not about getting to a solution somehow.

-

Solving coding tasks requires time. -This might be difficult to admit for some, as it has been for me. -But understanding a problem requires patient reading and digesting the context, possible solutions and most importantly doubts. -On top of this, if you have solved a problem without asking questions about it, then it wasn’t a difficult (by proxy important) problem to be solve in the first place.

-

Reading code is hard. -It’s sometimes like reading an essay in a foreign language. -Your head hurts, your eyes are getting sore, and after 6 hours at staring at the screen you conclude you don’t understand anything anymore. -It would almost seem like this time has been wasted, since you might have not produced a line of code. -Nevertheless, this is all there is to programming.

-

After 3 years, it appears to me that the views about Computer Science as a disciple of Donald Knuth and Edsger Dijkstra seem the most correct. -I had first stumbled on Donald Knuth’s blog long ago, when exploring Jamie Zawinski’s blog and looking for top figures in CS to study. -On his blog Knuth writes: “What I do takes long hours of studying and uninterruptible concentration. I try to learn certain areas of computer science exhaustively; then I try to digest that knowledge into a form that is accessible to people who don’t have time for such study.” -There it is. -Computing takes time. -There’s no silver bullet yet, and we as programmers have to take our time to think about problems in depth. -There have been many comments on the peculiar style of teaching and way of being of Edsgar Dijkstra, but I believe he has made some really good points. -I greatly encourage you to watch his Turing Award lecture. -Nevertheless, what describes my experience over the last 3 years is his quote: “The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility[…]”. -I think this the approach to take, and certainly one that I will take on my future escapes to the CS world. -So often computers help us verify and point out that we indeed really don’t know anything, we are just pretending we do.

- -
- - - - -- cgit v1.2.3