## Book Review: Deep Work by Cal Newport

For many years, Cal Newport has been writing about ways to get better at doing difficult things. His first three books were manuals for students, advice on learning techniques and where to focus one’s efforts during high school and college. In 2012, he wrote So Good They Canâ€™t Ignore You, about building career capital by […]

Continue

## Combinations and Permutations for UVa 735

Combinations and permutations are worth learning about for programming puzzles, and for programming in general. UVa 735: Dart-a-Mania provides a basic introduction.

Continue

## Red-Green-Code: 2015 in Review

One year ago, I started writing here on the topic of deliberate practice techniques for software developers. This is my 52nd weekly post for 2015. With the year coming to an end, let’s review the story so far.

Continue

## Math Fluency for UVa 927

From time to time, I’ll run across a UVa problem description that makes liberal use of mathematical notation. UVa 927, the first starred problem in uHunt Chapter 3, is one of those. uHunt classifies it as a Level 4 problem, but most of the challenge is in interpreting the problem description. Once you figure out […]

Continue

## The Role of Questions and Answers in Learning

Here are two approaches you could take to learn something new: Passive review: Consume an explanation of the topic you’re trying to learn. For example, read a textbook chapter, watch a video lecture, or read an online article on the topic. Active recall: Do an activity that requires you to remember something that you know […]

Continue

It’s impossible to measure developer productivity. At least, that’s what the experts say. Martin Fowler came to that conclusion over 10 years ago in a classic article, and the consensus hasn’t changed since then. My favorite recent article on the subject is by Jim Bird, a development manager and CTO. So let’s take that as […]

Continue

## The Competitive Programming Debate

Which of the following statements best describes your opinion of competitive programming? -2: It is harmful to the software industry, and should be abolished. -1: It’s no worse than any other form of entertainment, but it has no educational value. 0: It may help some people get better at programming, but it’s a niche hobby. […]

Continue

## The Time Bank Productivity System

Earlier this year, I wrote a survey of the Productivity Habits that I’m using to keep my project moving along. This week, I’m going to focus on one habit, which I’m calling Time Bank. I’ll also share a handy spreadsheet that makes it easy to try out this system.

Continue

## Java Lessons from uHunt Chapter 2

This post is part of a series on Java syntax and libraries for solving the problems in each chapter of uHunt, a tool for competitive programming practice. You can find the rest of the posts in the series by visiting my uHunt Java post category. In the previous post in this series, a review of […]

Continue

## Lessons from Competitive Programming 3, Chapter Two

This post is part of a series of commentaries covering each chapter of Competitive Programming 3 by Steven and Felix Halim. You can find the rest of the posts in the series by visiting my CP3 post category. Competitive Programming 3 (CP3) Chapter 2 covers a selection of data structures that are useful for solving […]

Continue