learn java, it's nifty and well documented and also what most intro university courses instruct you in. some good beginner challenges: * how much time to paint the wall (variable wall dimensions, variable rate of painting) returns how much time to paint the entire wall. * greatest common denominator (two or more variables) returns the gcd of the variables entered * roots of a polynomial (variable degree, user defined coefficients) returns the even, odd and double roots of the polynomial [NIGHTMARE MODE] imaginary roots * n-queens (variable sized board n x n) prints the solutions to the size of n-queens problem entered. if you find you really like programming, code the programs you made in java, in C.
Regarding the topic: everything has been written already so I'll switch to OT. Typical blogger that writes a lot more than he thinks about it. And he learns new things even less than he spends on thinking. You can guess (maybe I'm wrong) that he had never learnt a succinct language. C++ sucks because it leads to crashing programs, that's all. C++11 isn't used anywhere in the real world, most people have to used compilers 5 or more years old. His questions are also a bit too easy. And no. If you can program in C++, it doesn't imply being able to program in Haskell or other really *different* languages. Java is just dumbed down not different. Python is duct tape of the Internet and everything else. I've never seen Perl so awful as I average Python code you get to see. Lisp not LISP. Lisp suggests it's Common Lisp or Scheme. That means real but unpopular languages. And the most popular Lisp dialect - JavaScript. Interview advice like can be useful but it depends on how technical the company is. If you're interviewed by lead programmer and project manager then chances are high that as long as you do questions right and not be a total jerk, you'll get the job.