There are two major reasons that there are so many different programming languages:
Different Tools for Different Jobs
In the beginning, programming meant moving wires and circuits and turning knobs and switches to make a physical computer do a certain calculation.
When software (code) was introduced, the rewiring became obsolete and the programs existed first on punch cards (pieces of paper with coded holes) then in magnetic digital media (tape, discs). Nowadays it is common that software lives on electronic media.
When the industry of computing was young so were its programs - immature and simple. The languages weren't around nor capable of doing complicated things. People were discovering the limits of systems and stretching those.
As needs grew, new languages and programming styles emerged. Languages were made with capabilities that older languages didn't have.
There are a lot of evolution charts on the internet - just do a search and you'll find a few. Here is one language evolution tree that shows Python, Java, C, and a host of other languages that came from common roots.
Tools and Jobs
You've got to pick the right tool for the right job.
Likewise, different languages have different specialties in how they process data, how they are run, and what machines they run on. For instance, here is a brief overview of the strengths of a few languages:
BASIC: Instructional Language
PHP: Dynamic web page server side processing
C: Structured programming and operating systems
Python: Scalable and human-readable programs
Java: Multi-platform and multi-purpose
Regardless of the tool, all languages are built on the same principles you have already learned: Sequence, Selection and Iteration. There are more complicated constructs that you can't live without but those three are the concepts that make it all work.