summaryrefslogtreecommitdiff
path: root/public/posts/studying-computer-science
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 /public/posts/studying-computer-science
initial commit
Diffstat (limited to 'public/posts/studying-computer-science')
-rw-r--r--public/posts/studying-computer-science/index.html91
1 files changed, 91 insertions, 0 deletions
diff --git a/public/posts/studying-computer-science/index.html b/public/posts/studying-computer-science/index.html
new file mode 100644
index 0000000..e4dd70c
--- /dev/null
+++ b/public/posts/studying-computer-science/index.html
@@ -0,0 +1,91 @@
+<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
+ <link rel="manifest" href="/images/site.webmanifest">
+ <link rel="stylesheet" href="/css/style.css" />
+ <link rel="stylesheet" href="/css/fonts.css" />
+</head>
+
+<div class="container">
+ <ul id="bar">
+
+
+ <li>
+ <a href="/">home</a>
+ </li>
+ <li>|</li>
+
+
+ <li>
+ <a href="mailto:mati.rewa@gmail.com">mati.rewa@gmail.com</a>
+ </li>
+ <li>|</li>
+ <li>
+ <a href="https://git.denounce.ai/">git.denounce.ai</a>
+ </li>
+ <li>
+ |
+ </li>
+ <li>
+ <a href="https://ohmyghost.nl">ohmyghost.nl</a>
+ </li>
+ <li>
+ |
+ </li>
+ <li>
+ <a href="https://atlarge-research.com/mkwiatkowski/">research</a>
+ </li>
+ <li>
+ |
+ </li>
+ <li>
+ book blog
+ </li>
+</ul>
+
+
+</div>
+</div>
+<div class="container">
+ <p>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&rsquo;s one that has been bugging me the most: Computer Science is 90% reading and understanding and 10% coding.</p>
+<p>With the proliferation of the so called &ldquo;vibe-coding&rdquo; 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.</p>
+<p>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&rsquo;t think that is the mindset a programmer should have &ndash; that is, to solve a problem is not about getting to a solution somehow.</p>
+<p>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&rsquo;t a difficult (by proxy important) problem to be solve in the first place.</p>
+<p>Reading code is hard.
+It&rsquo;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&rsquo;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.</p>
+<p>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&rsquo;s blog long ago, when exploring Jamie Zawinski&rsquo;s blog and looking for top figures in CS to study.
+On his <a href="https://www-cs-faculty.stanford.edu/~knuth/email.html">blog</a> Knuth writes: &ldquo;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&rsquo;t have time for such study.&rdquo;
+There it is.
+Computing takes time.
+There&rsquo;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: &ldquo;The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility[&hellip;]&rdquo;.
+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&rsquo;t know anything, we are just pretending we do.</p>
+
+</div>
+<footer>
+ <center>
+
+ © Copyright 2024-2025 Mateusz J. Kwiatkowski. All Rights Reserved.
+
+ </center>
+</footer>
+</body>
+</html>
+