An Interactive Q&A Forum
Word of Caution: I have tried to make this answer clear and detail-oriented. Stick through if you can, for it might seem longer than expected.
The choice of a programming language should be governed by the objective that you are trying to achieve. Choose the best language suitable for that objective, back it up with good research and practice, and you will have your answer.
But such an approach requires great clarity about career paths and application areas in Computer Science. Freshmen usually face this conundrum due to lack of clarity.
When choosing between C and Python, you should look at what both languages have to offer. Python is user-friendly, and easy to learn, understand and write, whereas C is not quite so. Both the languages are very popular and can be used for general programming (including competitive programming). C is faster than Python but not as versatile. Python being a general-purpose language has a wide variety of applications and can be used in most technological development tasks if not all. Besides, it is also the best choice for Data Science, Machine Learning, and Artificial Intelligence. On the other hand, if you are interested in embedded systems, systems programming or in designing operating systems, or in writing libraries, packages and new programming languages, then C is the language for you.
An idea about the applications and scope of both programming languages might give you good incentive to choose one of them. But the real problem lies with the college curriculum (this might start looking a little better as you proceed).
The curriculum will introduce you to C in the very first semester and if you are a Computer Science Student, you will encounter C all throughout. It comes across as an important component of subjects such as Advanced C Programming and Logic Design (Semester III), Data Structures and Program Design(Semester IV), and Design and Analysis of Algorithms (Semester V) and will be used for executing practical programs of various subjects right till your last semester. There's no escape from C.
Python is not a part of the curriculum and hence there will be no conscious effort from the college, apart from one or two workshops, to help the students master it. You will have to learn it by yourself.
As it stands, you will have to learn C either willingly or unwillingly. The former is a better choice. If you learn C first, you will gain a strong foundational base in programming. It is the mother of all languages. You will also find it easier to transition from C to Python but not vice-versa because Python is easier to learn than C. You will have a good hold over most programming concepts if you learn C first and this will make your progress in Python easier. In my opinion, learning the harder language first and then transitioning onto the easier one, if required, proves to be helpful. Saying so, it is not at all necessary to learn C before Python. It is just a recommended practice that I found better.
I will add a point about placements and projects too. The recruitment process of many service-based companies for Tier-3 or Tier-4 colleges such as ours (maybe even lower) consists of questions mostly on C. They include topics such as pointers, memory management, and file handling besides the basic ones on data types, classes, operators, strings, and arrays. Even input/output questions, function snippets, and error correction questions are largely on C. This scope covers MCQs in technical aptitude, coding questions, and technical interview questions. Many students also prefer solving (competitive) coding questions in C, although C++ might be a better choice here. As you see, having good knowledge of C proves to be quite beneficial.
Talking about projects, I haven't really seen many Computer Science Students using C as their first-choice programming language for mini/major projects. I remember only a handful of groups doing so. But projects based on technologies such as Data Analytics, Machine Learning, Computer Vision, Natural Language Processing, Artificial Intelligence etc., usually and rightly prefer Python. Due to the buzzing trend and the rising importance of the aforementioned technologies, you are highly likely to choose a project in those areas. Python will be a good friend in that case unless you try to explore the capabilities of R, Julia or some other equivalent language.
The college has an operational e-yantra lab that works in close association with the Robotics Club. The embedded programming required in this case in mostly achieved using C. So, if you are willing to undertake projects in Embedded Systems, IoT, or the like, C should be your go-to language.
The college educates you in C all the time and while asking for projects, demands them to be in one of the booming technologies (Data Science, ML, AI). You will be bound to use Python to implement a project in these areas and you might even question the applications of C at this point (many noobs do this). But C has its own applications and fair share of drawbacks. Same can be said for Python too.
It is a good option to learn C as your first programming language and then move on to Python. No law dictates you to learn only one of them. Learning both the languages will give you good breadth and mastering one of them will give you the required depth. And it will also keep your college happy!
Final word: It is recommended to learn C first and then transition to Python. But remember that it deems more relevant for our college, our curriculum, our projects and our placements.
Go ahead, all the best. Thank you!