Seol mar théacs é seo: Thinking as a programmer :