What Programming Language is best for Mechanical Engineers?
I don't think you should be studying C first, nor do a lot of other more learned people.
Once you learn C++, you can easily comprehend C and then use whatever you like about it.
I really don't see how anyone can benefit by learning C first. A lot of wasted time, and you need to re-learn everything over again. You simply don't have the luxury of time as C++ will take all the time you have. Its more like learning two different languages, unless you want to be a philosopher or historian about it, or you want to know several languages anyway.
I presume you are a little familiar with some other programming language, if it is your very first exposure to any programming language, I withdraw my opinion.
If you are serious enough about it, select a compiler and then start studying. Learn to use your own compiler and in the process you learn C++. There is sooooo much to learn, you don't want to change compilers later and learn all kinds of compilers as well.
The steep learning curve is also your source of programming power (awesome). C++ is heavily typed, meaning you need to be aware whether you are using an integer, decimal or some other type of number or letter. This seems like a big pain at first, but it also means security, in that wrong values cannot be entered.
Its along those lines that you need to learn to find your own advantages, and I find this a most typical and enjoyable engineering approach. Going slow and understanding what you have learned and filing away your little achievements for later re-use, seems to me the way to go about learning this. Unless you can enjoy it, there will be little hope, in my opinion, and as an engineer I don't think you will have much problems. Its like learning to build simple, and then more complex machinery as you go along, that will reliably work for you forever and can be re-used.
Learn all the tricks about functions, and then apply functions within classes. Keep all the programs you write (if they work) and you have an accurate reference of where you stand on "your" scale from one to ten. Take each program you write very seriously and don't rush over anything. If you cannot handle it at this time (too little time, no mental energy left), make a note on the program, and when you are forced back to this you will know what your last problem was (concerning functions or whatever).
Its an endless undertaking, and you will never reach the real 10. But it sure can be fun and rewarding.