How to become an embedded software developer?
I want to know whether it is mandatory to learn C/C++ programming before start learning Microcontroller or the Embedded Systems. If yes, why do I need C to start with?
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
By definition of "mandatory", of course not. How advantageous it would be very much has to do with what your personal goals are. I suggest that many people who work with microcontrollers work in C, many of the libraries and drivers you can track down will be in C, and many of the discussions you'll find or take part in when you need a bit of help will be in C. For me, that's enough of a reason right there, before any considerations of C vs assembler vs any other language can even start up. If you don't embrace C at least a little, you're cutting yourself off from many resources.
It's Not mandatory to learn C/C++ programming before learning Embedded systems.
But yes Learning C/C++ will definitely pre-build your logic and understanding of programming methodology.
As you will be using Embedded C most probably so similar syntax will also help you.
All the way you will also develop all the skills of logic and programming in Embedded also, Hence it's not mandatory. Depends on your interest.
You can start learning about microcontrollers and embedded systems without knowing C, but you won't be able to progress very far. Most real-life embedded projects will use C and most of the code written for embedded projects is written in C, although it is a good idea to learn some assembly programming as well. I would also recommend that you start with plain C rather than C++.
Michael Barr has a nice article on the subject: http://embeddedgurus.com/barr-code/2009/08/real-men-program-in-c/