##
**Mathematical Reasoning Series:**

Have you has problems understand proof in physics or maths books? Yes I have, and I did not know why until I took basic algebra class to prepare myself for Master Degree in Mathematics. There, I learn about mathematical reasoning, and realize that what I am missing. In this series, I show different proof techniques, start with **Mathematical Induction**. I will add more later.

But first, I finish putting together blogs try to convince people that learning mathematics important, specially for computer sciences. This is a good introduction chapter for the series.

I have been ready about design pattern, GoF, Head First, Ruby design pattern, Enterprise design pattern , etc. I always have "what if" questions, such as what if I implement this in ruby? How is that going to look like in java or C/C++, is that possible to implement this pattern in erlang?, etc ... And here is my answer to those questions.

**Favor composition over inheritance**, the first of this series. It is my answer to the question: how it's going to look like when I implement strategy pattern with ruby? And it's also evolved into some thing else a little bit.- The second pattern, Observer. I thought is going to be easy, turn out to be not. First of all, ruby has a module implement this patter in standard lib. Also what the different between Publisher and Observer pattern. Some say, it's the same, some don't!