Mod note: This thread is an off topic splinter that has been brutally chopped out of the original thread. I am not sure if this thread has any merit but have perserved it for all the effort but into replys. Integral Depends on what you want to do. Contrary to most people, I would not recommend C and C++, you need to understand how the machine and computers works for that (and quite frankly, I've a feeling from reading about how people approach C and C++ here, that they hardly understand C/C++ or its reason to choice it and just use it because they know no other languages) C is mainly oriented at making software, if you want to program as in, automate tasks or getting a firm grip on structure of programming, it's certainly not the best place to start. C has many constraints which will seem absurd to you if you don't understand how a computer works on the inside, C programs also tend to be very unsafe unless you know what you're doing. All this comes at the benefit of excellent performance, this is why most low-level software such as operating systems and firmware is written in C, regardless that programmes written in C lack security by default. For most people, Perl or Python is the optimal solution because things just 'work' there as you expect them to work with mathematical logic. Perl and Python though are candy in that they make things quite easy for you, they're also not very 'elegant' languages, they're 'more is more' languages, with various ad-hoc solutiosn to problems. On the other end of the spectrum you have languages which are elegant and consistent, like Scheme (or Common Lisp?), Haskell and APL, all of which require some mathematical insight, but programming in them will in the end give you a great asset into structured and well-thought of programming. It teach you to think structured and efficient. APL is well known for its capability to place complex programs in one line, programming in APL generally means to first sketch the structure of your program and then implement it, Perl and Python generally you make it up as you go. Lastly, you have languages such as Smalltalk, Ruby and Logo, these are very 'conceptual', they don't as much deal in abstract mathematical structures but more in human concepts while steal retaining their elegant and well-structured nature. Also, K&R is archaic and teaches a standard of C that is pretty much recommended against using nowadays, not in the least because it was never really standardized. Also, C is particularly bad for root finding functions and ends up becoming verbose for that, that's not what C was ever intended for, C was intended to write software, system software and application. C is not a tool to help you solve problems, it's a remote control for your CPU because reaching to it and using assembly becomes tiring.