Author: Diana Cibu Public orators have played a major role in spreading knowledge and driving progress since the early days of oratory in Ancient Greece. I’ve always been fascinated by speakers’ unique ability to catch an entire audience’s attention and how they turn messages into valuable takeaways that stick with you long after their speech is done. If there’s one…
#learning
33 posts
19 May
15 Jun 2025
Since 2002, I have been keeping track of all the tricky bugs I have come across. Nine years ago, I wrote a blog post with the lessons learned from the bugs up till then. Now I have reviewed all the … Continue reading →
8 Feb 2025
This week I attended the Jfokus software development conference in Stockholm, Sweden. I first went in 2011, and I have been back many times through the years. The conference has a Java focus (duh!), but many talks cover general topics … Continue reading →
7 Jul 2024
Before I read The Man from the Future by Ananyo Bhattacharya, I only knew about John von Neumann in two contexts: that computers use the von Neumann architecture, and that he appeared in a story about a mathematical problem I … Continue reading →
10 Sept 2023
I really like this quote from Jeff Bezos: “Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.” Lately I have been thinking about what I have changed my mind about … Continue reading →
12 Feb 2023
I really enjoyed reading Algorithmic Trading: A Practitioner’s Guide by Jeffrey M. Bacidore. Before starting, I imagined it would cover various strategies for trading in the markets, along the lines of “buy on this condition, sell on this condition”. But … Continue reading →
25 Nov 2020
This fall I took the course Mathematical Modelling of Football from Uppsala University. It was taught by Professor David Sumpter, and I believe this is the first academic course of its kind. The main subjects covered are modelling and analysis … Continue reading →
19 May 2020
I really enjoyed reading Artificial Intelligence – A Guide for Thinking Humans by Melanie Mitchell. The author is a professor of computer science and an artificial intelligence (AI) researcher. The book is her attempt at working out if the singularity … Continue reading →
22 Mar 2020
I really like Secure by Design. The key idea is that there is a big overlap between secure code and good software design. Code that is strict, clear and focused will be easier to reason about, and will have fewer … Continue reading →
4 Jan 2020
In the book club at work, I just finished reading Grokking Deep Learning by Andrew Trask. It is an introduction to deep learning, but there are some problems. It spends a lot of pages on the basics, and in the … Continue reading →
27 Oct 2019
I really enjoyed Classic Computer Science Problems in Python by David Kopec. It covers many different problems I hadn’t read detailed explanations of before. For example: neural networks, constraint-satisfaction problems, genetic algorithms and the minimax algorithm. Unlike many other books … Continue reading →
27 Jul 2019
What a great book Designing Data-Intensive Applications is! It covers databases and distributed systems in clear language, great detail and without any fluff. I particularly like that the author Martin Kleppmann knows the theory very well, but also seems to … Continue reading →
25 Jun 2018
When I switched jobs four years ago, I went from using subversion (svn) to using git as the version control system. Even though I am a pretty quick learner, it took me a quite a while to really understand git. … Continue reading →
13 Mar 2018
In the book club at work, we recently finished reading Exercises in Programming Style by Cristina Videira Lopes. The book consists of a simple program implemented in 33 different programming styles. It is a great way of showing the different … Continue reading →
17 Dec 2017
For the past two months, I have been helping my son’s grade 8 class to learn to program. All students wrote Python programs and got a feel for what programming is. This post has details on how we organized the … Continue reading →
10 Jul 2017
Last week I attended a software development conference, QCon in New York. Here are my impressions of it, as well as some thoughts on programming conferences in general. For me, there are several reasons to attend developer conferences. You have … Continue reading →
15 Jan 2017
Last month we finished reading “The Effective Engineer” by Edmond Lau in the book club at work. It is a great book full of practical advice on how to get more done as a software developer. In fact, it is one … Continue reading →
8 Nov 2016
For several years now, we have been running a developer book club at work. We pick a book relevant to software development, and read a chapter a week. Every other week we meet for 30 to 45 minutes and discuss … Continue reading →
27 Oct 2016
In the book club at work, we recently finished reading Release It! by Michael T. Nygard. It is a book I have been meaning to read for a long time, but somehow I never got around to it until now. … Continue reading →
16 Jun 2016
In Learning From Your Bugs, I wrote about how I have been keeping track of the most interesting bugs I have come across. I recently reviewed all 194 entries (going back 13 years), to see what lessons I have learned from them. … Continue reading →
28 Apr 2016
Bugs are great learning opportunities. So how do we make sure we learn as much as possible from the bugs we fix? A method I have used for more than 13 years now is to write down a short description of … Continue reading →
7 Mar 2016
When I graduated from university with a degree in Computer Science, I wanted to continue and get a Ph.D. But I also wanted to work as a software developer, so I worked for five years in industry before going back … Continue reading →
27 Dec 2015
I recently finished reading Ghost in the Wires by Kevin Mitnick. It is the story of Mitnick’s hacking career, from the start in his teens, through becoming the FBI’s most wanted hacker, to spending years in jail before finally being … Continue reading →
20 Oct 2015
I just finished taking the course Software Security from the University of Maryland via Coursera. It was a relatively easy course (at least if you know C) that gave an overview of the following areas: buffer overflows and other memory attacks, … Continue reading →
16 Apr 2015
Here is my list of heuristics and rules of thumb for software development that I have found useful over the years: Development 1. Start small, then extend. Whether creating a new system, or adding a feature to an existing system, I … Continue reading →
1 Jan 2015
I recently finished the Coursera course Computational Investing Part 1 by professor Tucker Balch at Georgia Tech. The focus of the course is on portfolio analysis and selection. Almost all the analysis uses the daily closing prices of stocks as the … Continue reading →
15 Dec 2014
What is the half-life of programmer knowledge? It is quite common with claims that the half-life is something like 5 years. In other words, half of what you know about programming will be obsolete in 5 years. A similar sentiment … Continue reading →
22 Jun 2014
Three months ago I changed jobs, and in the process switched from Java to Python. Here are the differences that have stood out for me since making the switch. I have previously worked a bit in Ruby, but I had no … Continue reading →
18 Feb 2013
I recently finished the Coursera course Algorithms: Design and Analysis, Part 2 by Professor Tim Roughgarden of Stanford. I’ve already reviewed part 1, and here are my thoughts on the second part. The main theme of part 1 was the divide … Continue reading →
12 Dec 2012
I recently gave a presentation on what it is like to work as a software developer to first-year engineering students at KTH taking an introductory programming course. I wanted to give my view on the main differences between professional software … Continue reading →
21 Oct 2012
Every once in a while I read something along the lines of: “most developers just want to write new features, they don’t want to work with maintenance and bug-fixing”. If that’s true, then most developers are missing out on the fun … Continue reading →
8 May 2012
I recently finnished the Coursera course Design and Analysis of Algorithms I, given by Professor Tim Roughgarden of Stanford. This was my second on-line course from Coursera (last fall I took Introduction to Databases, which I wrote about here), and … Continue reading →
18 Dec 2011
Last weekend I finished the free on-line course Introduction to Databases taught by Professor Jennifer Widom of Standford University. The course was given entirely over the web, with pre-recorded video lectures, and assignments and exams that were automatically graded when submitted. … Continue reading →