Programming Ideas

Would you like to take your programming skills to the next level? Are you looking for ideas on what to program next? Have you outgrown the simple toy programs discussed in most programming books? In this case, Programming Ideas might be the book for you.

Programming Ideas is based on the notion that reading and writing real programs is the only way to master programming. Therefore, instead of teaching you how recursion works in theory, the book demonstrates a wide range of practical applications, from drawing fractals and geometric curves to multiplying arbitrarily large integers. The same approach is used to illustrate many other concepts such as backtracking, graph algorithms, functional programming, encoding data using bits, hashing, and computer arithmetic. All topics are illustrated using complete, working Java programs that can also be downloaded from Github.

The book was designed with self-learners in mind: every chapter includes a wide range of exercises and programming projects, usually with complete solutions.

Read the Book

Programming Ideas is currently available in two formats:
An online version that can be read free of charge and an electronic book in PDF format (DRM-free).

The two versions are mostly identical, but the PDF includes better cross-references and two extensive indexes.
A print version is in preparation.

Read online Purchase PDF

Sample Chapters

Front matter
Front matter
Chapter 1
Chapter 1
Chapter 6
Chapter 6
Back matter
Back matter

About Me

picture of the author

Hi, I'm Daniel

I'm a programmer and freelance writer based in northern Germany. Previously, I worked as a research assistant at the University of Konstanz and as a software engineer at Nik Software and Google. Among other things, I contributed to Halide, Google+, Snapseed, and Nikon's Capture NX. I have a PhD in computer graphics from the University of Konstanz and a Diploma (M.Sc.) in physics from the University of Heidelberg.

Programming Ideas is my attempt to capture what I love about programming. It covers many of the topics I was interested in when I learned programming back in high school—in many ways, it's the programming book I was missing back then. You can contact me at mail@dheck.net.