“Learn the basic foundations of programming” simply means to learn concepts, not languages. Languages come and go. It’s easy enough to memorize the syntax of a single language and figure out through trial and error what each piece of code is doing in that language, but when you eventually move to another language, you’re stuck repeating that process of memorizing code without ever learning what’s going on with the code and why it works. This would be comparable to knowing how to operate a microwave without knowing why food comes out nice and hot after 2 minutes.
Many languages share common concepts and structures. A
for loop, for example, appears in almost every programming language out there, but each language implements a
for loop in a different way. However, if you learn the basics of what a
for loop is, how it operates, and what it’s basic purpose is, you can apply that understanding to every language you come across.
Even more basic foundations would be learning about concepts such as memory storage, caching, sorting algorithms, and boolean operators. These are all concepts that apply to every language and will improve your ability to effectively use a language if you have a firm grasp on them.
More basic than that would be learning about the computer itself. What is a CPU? What is RAM? If you understand the hardware of a computer, again, you can apply that knowledge to every language out there.