This post reminded me when I started programming, very nostalgic. I started out with C as my first programming language simply because the language rankings at the time said it was the most popular. Looking back, I don't think C helped me out as much as I wanted it too.
Now to answer your question by looking at your goals. "Knows no programming language" lets me know that you are starting from scratch. In my opinion, this means you need to answer the following question first: do I even like programming? The best way to answer this is to not abuse yourself with C but instead start with python to get a real feel for what programming is.
"Learn coding for building with best design principles" means you want to learn good habits early on. Python has a stable style guide (pip8) and the zen of python, so at least some good habits can be learned quickly. I don't think there is a comparable zen of C, but maybe that's because I haven't looked.
"Gaining efficiency of data structures" means understanding why data structures are important in program design. Python has some pretty solid built-in data structures (i.e lists, sets, dicts, tuples) that are good for beginners who want to experiment with data structures. C doesn't have lists, sets, dicts, or tuples, but you can implement them if you try hard enough.
"Thinking abstractedly in algorithmic rollercoaster of fun"...I think what you meant is the freedom to think about an algorithm and to implement it with ease. Python is fantastic for this, while C requires a lot more thinking to get a thought manifested to code.
This post kinda struck a chord with me because I wrestled with the same question when I started 4 years ago. Python helped me more than C because I was more creation oriented. I wanted to implement a useful tool as fast as possible. With your questions in mind, I think python would be better choice than C as a beginner.