The title of this article may strike you, but let me explain. For years, I've had people ask me, "do you know Ruby", "do you know PHP", and things like "I didn't know you knew Haskell"; the big answer to these questions is that it really does not matter! You may be thinking otherwise, but let me ramble on a bit.
The most powerful source of information
I've personally been programming for over half of my life (hehe, I'm part of that generation that can actually say things like that), and I have picked up an incredible amount of knowledge through various mediums like, you guessed it, the Internet and many books of all sorts. Like most programmers, I started programming with C and C++, which luckily are both heavily developed languages backed by a plethora of books filled with information. However, one thing I did have, compared to earlier generations before me, is the most powerful source of "free" knowledge, the Internet.
All programming languages have one thing in common
You don't learn the language, you learn its framework
Sorry for anyone that was forced to write in any machine or assembler language, but luckily, those days are over now that we have plenty of high-level languages on the market. But first, let me define high-level programming:
A programming language, requiring a compiler to translate into a form a particular machine understands, focusing on user-friendly code development by automating core tasks such as accessing memory. Src: Wiktionary
The "automating core tasks" part is all done by the framework of the actual language. For example, Objective-C is the best example of this. In Objective-C, there are many different frameworks that are a part of the Cocoa framework, let's take the NSMutableArray class for example. Even though you can write arrays in straight-up C, most people use the built in functions because they are highly optimized (and very smart). When you use NSMutableArray, you are automatically given the tools to do advanced sorting functions and many others that give you a ton of power with very little code.
When you learn a new language, picking up the overall formatting might be tough (like the tabbed indentation in Python or that lines don't end with a semicolon), but after a few days, you usually have that aced (even though I usually crash my Python programs with a semicolon... first world problems :P). The hardest task, is learning the framework, or the tools you need to use to get something done.
Once you ace logic, you can learn any language
To sum this entire rant up, after you've programmed enough and you are a pro at speccing your application out, logic usually never gets in your way. If you need to figure out how to sort an array in Objective C and you don't want to write a ton of code, you'll most likely Google it and come to this StackOverflow article. After you do that, you'll quickly figure out that the NSComparisonResult class is amazing. Or if you're wondering on how to read a file line-by-line, you can quickly figure it out by using the fileinput.input() function in Python, or the BufferedReader.readLine() in Java, or by using (NSArray *)componentsSeparatedByString in Objective-C.
So long story short, you can learn any programming language easily. As long as you understand logic and how to program in general, it's really easy to pick up another language. You might mess up and have a function return weird, unexpected results (C++ is notorious at it), but for any programmer who has been programming for a while, it's usually easy to debug the program and see what's up.
And like anything else in this world, if you keep on hacking away at it, soon enough you'll become fluent at your programming language of choice without even trying (you don't need to read books to learn another programming language. Just hack away it). The best way to learn a new programming language is to just pick it up and start coding; you'll learn way more from your own mistakes than a book or any online course will ever teach you. But that's an entirely new topic that I can save for another day.