18 Apr 2011 by Sergey Alexandrovich Kryukov
Every line of the in this Question deserves a whole book dedicated to answer.You can try to find such books. You can get to it through you everyday experience, if you do your work very well.However, this is one well-known universal Answer to this:Peter Norvig, Teach Yourself Programming...