As far as I can tell, the key to becoming good at programming — or one key, anyway — is to learn several different languages. Programmers who learn only Python or only Java or only C tend to see the whole computing world through the lens of their specific language. Since every language makes some tasks or ideas easy or obvious, and others hard or impractical, having a well-rounded view requires familiarity with several different languages. Which language to start with seems pretty much irrelevant, so long as you don’t stop with just one language.
As far as I can tell, the key to becoming good at programming — or one key, anyway — is to learn several different languages. Programmers who learn only Python or only Java or only C tend to see the whole computing world through the lens of their specific language. Since every language makes some tasks or ideas easy or obvious, and others hard or impractical, having a well-rounded view requires familiarity with several different languages. Which language to start with seems pretty much irrelevant, so long as you don’t stop with just one language.
SICP helps with this problem in a language-independent setting.