Books I found particularly helpful

2009-03-12 18:44
During the last few years I have quite a few books that one could easily file under the category "Hacking books". Some of them were particularly interesting to me and have influenced the way I write code. The following list certainly is not complete at all - but it is a nice starting point.

  • Effective C++ - I have comparably little experience with C++ but this book really helped understand some of the particularities.
  • Effective Java - even though I have been developing in Java since a few years reading and revisiting Effective Java helps understanding and dealing with some of the quirks of the JVM.
  • Mythical Man Month - although classical literature for people dealing with software projects, although very well known, although easy to understand it is scaring to see that the exact same mistakes are still common in today's software projects.
  • Concurrent programming in Java - quick start on concurrent programming patterns - primarily focussed on Java. Fortunately no collection of recipes but thorough background information.
  • Working effectively with legacy code - I really like to have a look into this book from time to time. Shows great ways of untangling bad code, refactoring it and making it testable.
  • XP books by Kent Beck - if you ever had any questions on what XP programming is and how you should implement it: These are the books to read. Don't trust what people call XP in practice as long as they are not willing to refine and improve their "agile processes". Keep on working on what stops you from delivering great code.
  • Why programs fail - a guide to systematic debugging - If you ever had to debug complex programs - and I bet you had - this is the book that explains how to do this systematically. How to even have fun along the way.
  • Zen and the art of motorcycle maintenance - Not particularly on Software Development but the techniques described match stunningly well on software development.
  • Release It! - just about to read that one. But already the first few pages are not only valuable and interesting but also entertaining.
  • Implementation Patterns - forgot that yesterday.
  • Presentation Zen - another one I forgot. Really helped me to make better presentations.

There are still quite a few good books on my list. If you have any recommendations - please leave them in the comments.

There are a few other book lists online in various blogs. Two examples are the ones below:

Erlang User Group - Scala

2009-03-09 12:25
What: Scala Presentation by Stefan Plantikow.
Where: Cockpit of the Box119 (Ring at UPSTREAM)
When: Wednesday, 11.03.2009, 8:00 p.m.

Yesterday the Erlounge, organised by Jan Lehnardt, took place in the Cockpit of Box119 in Berlin. Topic of the evening was an introduction to Scala.

Scala is a functional language that compiles to Java Bytecode and runs on the JVM. It tries to combine the best from two worlds: Object oriented languages and functional programming. So every function is an object and every object is a function.

Some interesting bits of information:

  • Scala is a statically typed language - but you can omit the types most of the times as type inference in the compiler is pretty good.
  • Everything is an object - there is no difference in primitives and objects.
  • There are packages for distributed computing - spawning processes and sending messages is not as fast as in Erlang there is still room for improvement.
  • The developers are currently about to tidy up the syntax and take care of corner cases.
  • It is easy to start with Scala as you can start out with a subset of the language and extend your knowledge as you need.
  • Scala means Scalable language. Scalable in terms of projects and tasks you can accomplish with it.

If you want to see a second nice presentation that is slightly less focussed on comparing Scala to Erlang you might also find this year's FOSEM presentation interesting: (video should be up soon as well).