Writing essays

I am not a naturally good writer. It took me writing a 450-page book and countless pages of notes, reports, essays and posts to only start building a sane mechanism to identify the exact flaws in my writing (and in the text creation process itself). I found an introductory document on writing essays by J.B.Peterson to be of a great use for me. I think it is valuable for someone like me who has to write a lot of text for his PhD, albeit the domain is computer science. These are my notes for it.

Variance in programming languages

Covariance, invariance, and contravariance are concepts many students have difficulties to grasp. However, the idea behind them is pretty simple. This post will attempt to illustrate that in a shortest and simplest way possible.

Advice for programming students

There are many things I wish I knew when I started my journey as a programming student. Almost 10 years have passed since, and, sadly, I can not share my experience or insights with my past self, only with my younger colleagues. This post collects some of the most useful bits of advice I wish I heard when I was 18.

Why every programming student should learn Coq

My personal experience with Coq proof assistant over the last years made me think, that such tool, as exotic and niché as it might seem, is invaluable in a programmer’s education. Maybe we should include it in common Software Engineering and Computer Science master programs, so that students prove theorems using it.