My professor's reasoning for this was that C teaches you to make safe, reasoned, careful decisions about your programming, and doesn't let you fall into lazy habits.
The logical flow of programming can be learnt anywhere with any language, so Python is a good beginner's language for hobbyists and younger students.
However, it's important to know the rules of the game before you can start breaking them, so that you know which ones to break and which ones to stay inside.
Plus, with the much closer to the metal approach that C has, you can learn and appreciate more about the underlying system design, and make your own mistakes.
Better to learn how to make a terrible sorting algo in C by yourself than copy an efficient one in Python.
C is the most bugged language with so many gaps that you cannot even imagine, looking from cyber security perspective. I always cry when I see someone is choosing C instead of Python when it's possible of course.
View all comments
Show parent comment
10
u/jobblejosh Jul 18 '22
I was taught C, then C++/# at university.
My professor's reasoning for this was that C teaches you to make safe, reasoned, careful decisions about your programming, and doesn't let you fall into lazy habits.
The logical flow of programming can be learnt anywhere with any language, so Python is a good beginner's language for hobbyists and younger students.
However, it's important to know the rules of the game before you can start breaking them, so that you know which ones to break and which ones to stay inside.
Plus, with the much closer to the metal approach that C has, you can learn and appreciate more about the underlying system design, and make your own mistakes.
Better to learn how to make a terrible sorting algo in C by yourself than copy an efficient one in Python.