Every interested programmer needs to read this book once