I kinda agree, most any major language would be ok to start. But here's what I extremely, highly recommend..
Learn any language as long as the book you use is by Deitel & Deitel (a father/son team). I think their textbooks are great. Check out C How to Program which is 1/2 C and 1/2 C++ or Java How to program (I have both of these books) or C++ How to Program ... there are others. Check out amazon.com. Their "How to Program" books are practically identical, they just use different languages.
Their books are pricey, but that's because they've become so popular and are used in so many programming courses. Easy enough to find a used one. I bought my Java How to Program as used at a local university bookstore.
I think what is unsaid here is that learning the syntax of a language is one thing. Learning how to program is another. I've never had a programming course - and I've had A LOT - that per se taught me how to program.
If your really want to become a programmer your bookshelf should have much more than language specific books.
Once you're about 2/3 into one of those How to Program books get this one: Code Complete by Steve McConnell. It's my programming bible and it should be yours if you care about writing excellent code. In the back is a Top 10 List of books that "make up a solid foundation for a software professional's permanent library." I have many of them and I 237% agree.
I also recommend The Mythical Man-Month. This is one of several more titles suggested to augment the "top 10". It's THE classic tome known to all software developers who know anything. Like several of the "top 10" it was published 20+ years ago, but it's insights are still very relevant - and it's easier to get a hold of because a "silver anniversary" edition was published in 1995.
Heh - I prefer to study language theory and then learn programming by trial-and-error. Resources like SICP (uses Scheme as example language, and thus LISP syntax, which is quite unlike almost all other language syntaces) and HtDP (which also uses Scheme) are really good for learning programming basics, and they apply to many more languages than just LISPs.
As for a language, I don't think Pascal, C/C++ or Java are the right ways to go. They are very efficient, machine close (well, not Java), but aren't especially fault tolerant, and are hard to debug. A much better choice would be Objective C, Objective C++ or D.
Of course, I consider Python, Haskell, ML, Ruby, Eiffel or a LISP such as Scheme or Common Lisp, to be better choices. YMMV, however.
I prefer to study nuclear physics by reading original copies of Oppenheimer's and Fermi's Ph.D. dissertations and tinker with the reactor I got used from Ebay.... I got the instruction manual from Homer Simpson. That should work.
Sorry I couldn't resist. You loves ya' liorean, baby?!
just chuck yourself in at the deep end with c++ and learn from your mistakes. alot of people will probably say use visual basic or borland c++ cause of the visual aspects of it.... i learnt this way and i dont think its helped me very much due to having not much understanding of the object orientated side.... your better off learning C++ using visual c console programs up to being able to do advanced things such as polymorphism etc. then you should be ready for any language just got to learn the syntax
Jumping into the deep end is wrong. I've learnt that, most people probably have. You learn complex code before you learn coding principles, you code by memorizing patterns with a small degree of logic. You need to start off small and work your way up otherwise when you move into incredibly complicated stuff you won't even understand what you are trying to do.
And as for OOP, you don't learn that first! OOP IMO has nothing to do with learning to program. OO comes after you know a language, after you know programming logic. .. in fact it's another form of it. You can't just learn OOP you need to know the language first.
__________________ Omnis mico antequam dominus Spookster!
What you need to learn is basic flow of a program. It does not matter what language you use to learn the concepts, but do learn these - arithmatic/expressions, branching, conditional statements, loops, data structures.
Nobody is Perfect. I am Nobody.
I would not agree with the BASIC suggestion. BASIC languages are sloppier than most other languages, and allows bad habits to form without you realising they are bad habits. Which means that you'll have problems when moving over to a stricter, cleaner language.
It's harder to relearn somthing you've gotten used to than to do it right from the start.