I'm assuming here that it is programming concepts you're trying to learn, not some specific job requirement. If your prospective job requires C or Icon or LISP, you don't have much choice. Welcome to the language wars!
But for learning general programming concepts, I suggest Modula 2. There ae several freely available compilers (for Linux and other *nixen, as well as for Windows; see the Wikipeida article for many pointers). It is a language which avoids features tending to teach bad thinking habits (important, for garden paths are to be avoided by all but are harder to see for beginners), but is compete enough to do most anything from systems programming to high level applications (important because partial toy languages are misleading and confusing). Yet is't small enough (the Report is something like 50 pages long) that you can master the entire language, which is a non trivial issue. There are C++ features unknown to even experienced programmers -- everyone, including them, learns a subset of it and not the same subset either. Very annoying.
Assorted older languages will be suggested (and have by other answers). I suggest you look up the "How do we tell unpleasant truths?" essay by Edgars W Djikstra (one of the 'EWD' series available on line from several sources). EWD was a pioneering mathematician and computer scientist who designed one of the (if not the) first multi-programming system in the Netherlands. T.H.E. Mulitprogramming System, in fact. A sharp and clear thinker with a gift for polemic. The mentioned essay is sharply polemical and sarcastic too, but is nevertheless gets things just about right.
There are some 'advanced' variants of Modula 2 with nice features, but they're larger and somewhat harder to learn. If you want an advanced verison after you learn Modula 2, try one of hte Oberons, which add in full object oriented programming and simplify still further. Also several freely available compilers. See the Wikipeida article on Oberon.
Modula 2 is blessed by having an extraordinary teaching text available. It's K N King's Modula 2 (imaginative title, isn't it?). Read it, attempt all the exercises (you won't be able to solve them all), and when you finish (maybe 5-6 weeks if you get really serious, 3 months if you take your time, and forever if you're easily discouraged), you'll be a programmer. Most of what you have learned will immediately apply to other languages you will have to use, and they'll be much easier to pick up. And quickly too. And you'll write better code in them, which is non trivial point.
The best programming language text I've ever come across, and still in print all these years later.
If you must start with C (I can't agree that you should as it's a very odd and tricky language, especially for a beginner), King's book C Programming is about as good as they get. Make it your second language or your third. You might imagine what Dijkstra would say about it (after you learn it).
If you're truly masochistic, you might want to start with Intercal, the language which has nothing in common with any other. At least one version has implemented the Come From statement, unstead of the GOTO statement. And NTERCAL compilers suport the IGNORE statement as one of its control structures. And it teaches manners in this casual age; programs must say PLEASE. One of its infernal developers, Woods, is infamous as, in the early years of the Internet, he wrote a good bit of the very first Internet software stack, and is furthermore the Woods of Crowther_and_Woods, "you are in a dark room..." fame. If you learn Intercal, your brain will likley be damaged beyond repair, just as Dijkstra suggested was true of BASIC as a first language, only more so. See Eric S Raymond's Retrocomputing Museum site for a couple of freely available compilers, along with some even more deranged languages.