summaryrefslogtreecommitdiff
path: root/content/posts/dijkstra-knuth.md
diff options
context:
space:
mode:
authormjkwiatkowski <mati.rewa@gmail.com>2025-12-21 12:06:52 +0100
committermjkwiatkowski <mati.rewa@gmail.com>2025-12-21 12:06:52 +0100
commit87370a6c7d891a30d6a50ed66ac98feda5a63817 (patch)
tree8d2654ca3ab3e77bf52358ff7f21bcb45f8bb047 /content/posts/dijkstra-knuth.md
initial commit
Diffstat (limited to 'content/posts/dijkstra-knuth.md')
-rw-r--r--content/posts/dijkstra-knuth.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/content/posts/dijkstra-knuth.md b/content/posts/dijkstra-knuth.md
new file mode 100644
index 0000000..1f0e140
--- /dev/null
+++ b/content/posts/dijkstra-knuth.md
@@ -0,0 +1,35 @@
++++
+date = '2025-12-14T17:14:30+01:00'
+draft = false
+title = 'Dijkstra and Knuth'
++++
+
+It has long lingered on my mind to reflect partially on my experience of the last 3 years, as 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, most important of which is this: Computer Science is 90% reading and understanding and 10% coding.
+I believe it to be the most important thing I have learned about the field itself in the last 3 years.
+Here is why.
+Dealing with complex problems is hard.
+Programming is all about solving complex problems, 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, at this stage, 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 one might have about their own solution.
+Needless to say, 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 of staring at the screen you conclude you don't understand anything anymore.
+One of my favourite quotes about computing from Temple OS creator, [Terry Davis](https://en.wikipedia.org/wiki/Terry_A._Davis), reflects this perfectly (it's too long to include here, so [this is the link to the GoodReads quote page](https://www.goodreads.com/quotes/10916333-what-s-reality-i-don-t-know-when-my-bird-was-looking)).
+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 my views about Computer Science aligns with those of Donald Knuth and Edsger Dijkstra the most.
+I had first stumbled on Donald Knuth's blog long ago, while exploring Jamie Zawinski's blog and looking for top figures in CS to study.
+On his [blog](https://www-cs-faculty.stanford.edu/~knuth/email.html) 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 about this too.
+What describes my experience over the last 3 years well 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, because so often computers help us verify and point out that we indeed really don't know anything, we are just pretending we do.
+