Monday 30 May 2016

What is the single most influential book every programmer should read?

From Stackoverflow
  • Code Complete (2nd edition) by Steve McConnell
  • The Pragmatic Programmer
  • Structure and Interpretation of Computer Programs
  • The C Programming Language by Kernighan and Ritchie
  • Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
  • Design Patterns by the Gang of Four
  • Refactoring: Improving the Design of Existing Code
  • The Mythical Man Month
  • The Art of Computer Programming by Donald Knuth
  • Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
  • Gödel, Escher, Bach by Douglas Hofstadter
  • Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
  • Effective C++
  • More Effective C++
  • CODE by Charles Petzold
  • Programming Pearls by Jon Bentley
  • Working Effectively with Legacy Code by Michael C. Feathers
  • Peopleware by Demarco and Lister
  • Coders at Work by Peter Seibel
  • Surely You're Joking, Mr. Feynman!
  • Effective Java 2nd edition
  • Patterns of Enterprise Application Architecture by Martin Fowler
  • The Little Schemer
  • The Seasoned Schemer
  • Why's (Poignant) Guide to Ruby
  • The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
  • The Art of Unix Programming
  • Test-Driven Development: By Example by Kent Beck
  • Practices of an Agile Developer
  • Don't Make Me Think
  • Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
  • Domain Driven Designs by Eric Evans
  • The Design of Everyday Things by Donald Norman
  • Modern C++ Design by Andrei Alexandrescu
  • Best Software Writing I by Joel Spolsky
  • The Practice of Programming by Kernighan and Pike
  • Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
  • Software Estimation: Demystifying the Black Art by Steve McConnel
  • The Passionate Programmer (My Job Went To India) by Chad Fowler
  • Hackers: Heroes of the Computer Revolution
  • Algorithms + Data Structures = Programs
  • Writing Solid Code
  • JavaScript - The Good Parts
  • Getting Real by 37 Signals
  • Foundations of Programming by Karl Seguin
  • Computer Graphics: Principles and Practice in C (2nd Edition)
  • Thinking in Java by Bruce Eckel
  • The Elements of Computing Systems
  • Refactoring to Patterns by Joshua Kerievsky
  • Modern Operating Systems by Andrew S. Tanenbaum
  • The Annotated Turing
  • Things That Make Us Smart by Donald Norman
  • The Timeless Way of Building by Christopher Alexander
  • The Deadline: A Novel About Project Management by Tom DeMarco
  • The C++ Programming Language (3rd edition) by Stroustrup
  • Patterns of Enterprise Application Architecture
  • Computer Systems - A Programmer's Perspective
  • Agile Principles, Patterns, and Practices in C# by Robert C. Martin
  • Growing Object-Oriented Software, Guided by Tests
  • Framework Design Guidelines by Brad Abrams
  • Object Thinking by Dr. David West
  • Advanced Programming in the UNIX Environment by W. Richard Stevens
  • Hackers and Painters: Big Ideas from the Computer Age
  • The Soul of a New Machine by Tracy Kidder
  • CLR via C# by Jeffrey Richter
  • The Timeless Way of Building by Christopher Alexander
  • Design Patterns in C# by Steve Metsker
  • Alice in Wonderland by Lewis Carol
  • Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
  • About Face - The Essentials of Interaction Design
  • Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
  • The Tao of Programming
  • Computational Beauty of Nature
  • Writing Solid Code by Steve Maguire
  • Philip and Alex's Guide to Web Publishing
  • Object-Oriented Analysis and Design with Applications by Grady Booch
  • Effective Java by Joshua Bloch
  • Computability by N. J. Cutland
  • Masterminds of Programming
  • The Tao Te Ching
  • The Productive Programmer
  • The Art of Deception by Kevin Mitnick
  • The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
  • Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp
  • Masters of Doom
  • Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett
  • How To Solve It by George Polya
  • The Alchemist by Paulo Coelho
  • Smalltalk-80: The Language and its Implementation
  • Writing Secure Code (2nd Edition) by Michael Howard
  • Introduction to Functional Programming by Philip Wadler and Richard Bird
  • No Bugs! by David Thielen
  • Rework by Jason Freid and DHH
  • JUnit in Action
  • Discrete mathematics for computer scientists


Wednesday 18 May 2016

Review: Thinner Leaner Stronger: The Simple Science of Building the Ultimate Female Body

Thinner Leaner Stronger: The Simple Science of Building the Ultimate Female Body Thinner Leaner Stronger: The Simple Science of Building the Ultimate Female Body by Michael Matthews
My rating: 5 of 5 stars

If you're trying to lose weight, and have access to a gym, this could be the 2nd or 3rd best way to go about it. I like the book because it's to the point, short yet comprehensive. The author talks in a very genuine, clear tone, and describes everything in scientific enough way to make sense spilling any jargon around.

The book does a great job of motivating and inciting action, not by BSing you, but by simply making it look so easy. This book made Mike one of favs.

View all my reviews

Tuesday 10 May 2016

10 ways to have a better conversation


  1. Don't multitask. Don't think about anything else. If you want to get out of the conversation, get out of the conversation. Don't be half in it. 
  2. Don't pontificate. If you want to talk about without listening, write a blog (lol). Everybody you ever meet, will know something you don't. Everybody is an expert is something. Strive to learn that. Assume that you have something to learn. 
  3. Use open ended questions. Who What When Where How.
  4. Go with the flow. Ideas and stories are gonna come to you during the listening period, let them go. 
  5. If you don't know, say that you don't know. 
  6. Don't equate your experience with theirs. It's not the same. It's never the same. Every experience is the same. Secondly, it's not about you. Conversations are not a promotion opportunity. Conversations. Are. Not. A. Promotional. Opportunity!
  7. Don't repeat yourself.
  8. Stay out of the weeds. Forget the details. People don't care. 
  9. Listen! If you're moth is open, you're not learning. No man ever listened his way out of a job. 
  10. Be Brief. 

Monday 9 May 2016

When you really want to marry someone, but? By Mufti Abdur Rahman ibn Yusuf

Another Perspective


Seven things you should always keep secret


Copied verbatim from here


There are a few things which are always worth keeping to yourself. Telling the world about them — however much you want to — just won’t bring you anything good. Here are seven of the most crucial things we think you should always keep secret.


  1. Don’t reveal your most ambitious plans. Keep silent about these until you’ve actually managed to fulfill them. Such plans often have weak spots and ill-thought out parts which you haven’t noticed; therefore, the chances are that someone could pick them apart quite easily, leading you to become too disheartened to even try to overcome them.
  2. Don’t deliberately share information about any good or generous deeds or charitable work that you’ve done. The greatest virtue lies in doing something good without hope of recognition. Boasting about such things can quickly lead to arrogance. If you feel the need to, perhaps you should evaluate why it is that you’re really doing these things — is out of altruism, or the desire to be praised?
  3. Never reveal the secrets of your lifestyle. It’s not worth bragging about how you’ve gone on a diet, or overcome your habit of sleeping too much in the morning, or stopped indulging your appetite for sex. If you’ve given up on worldly pleasures for the sake of spiritual goals, then it makes no sense to talk about this — your emotional condition needs to be harmonious, and such a desire to impress others and receive praise is a sign that it is not.
  4. Another thing it is always worth keeping silent about are those moments when you’ve shown courage or heroism. We all come up against various challenges every day — both in the external world and on the inside, in our own minds. Your achievements in dealing with both, should they become known, will be rewarded appropriately. It’s not for you to decide whether they are worthy of recognition — therein lies the lesson.
  5. Never share your thoughts on what you consider to be your enlightened knowledge of the universe and on questions of life and death. It’s only your interpretation, rather than objective truth, and the chances are you will only seem condescending to others when you try to convince them that they’re mistaken.Only in very rare cases will someone benefit from your thoughts on this subject.
  6. It’s never worth revealing any conflicts or problems in your family life to others. Always bear in mind: the less you divulge such secrets about your family to others, the stronger it will be. Such things can only ever be resolved within the privacy of your own home, between loved ones. The more you complain to others about them the harder they will be to overcome.
  7. Don’t talk about all the unpleasant things you’ve heard people say or do. Just as it’s possible to get your clothes dirty, you can also soil your mind. And the person who recounts all the foolish and awful things he hears and sees going on in the world as soon as he gets home is no different from the one who forgets to take of his shoes when he walks through the door.