>>11143530I think C is a good starting point because the sheer amount of features most mainstream, modern OO languages have can be overwhelming in itself for a beginner who doesn't quite get how all those pieces fit together to make writing extremely large applications by massive teams of programmers possible. It also exposes you to memory management, which most popular languages hide behing a garbage collector.
If you start with C, I would recommend using gcc's sanitizers because it's very easy to write a C program that appears to work but actually leaks memory all over the place, accesses memory that has been freed, or uses some variable that hasn't been properly initialized.
For a second language, I think a simple functional language like Erlang is a pretty good choice, because most mainstream languages have adopted many concepts from functional programming, and the easiest way to actually "get" those concepts is to write in a language that forces you to use them, but this is just my personal opinion.
For a third language, go for some popular OO language like Java or whatever, because almost all of the most popular languages out there are object oriented.