C was the first language I learnt when I was at university. Honestly the teacher was bad and I found it difficult. It almost put me off programming. Fortunately, I later took a mandatory course in Java and Haskell. We learnt both languages in parallel to learn the difference between OO and FP. We were set tasks where we had to write programs in both languages. I loved this course and the lecturers were amazing. I am…
Maybe its just that the Java+Haskell one was simply a good teacher. Imagine you had them switched, so you would've had a bad teacher showing you how to program in Haskell and Java at the same time. Still to this day, your worst nightmares would be slow to load and express in terms of monads.
However I still feel like C may not be the best first language as it's low level. This means there's a lot going on and more to learn for the average user so they end up getting stuck more often then if they used a language with memory management. This is based off the premise that the user is of average intelligence and you don't want to to put them off programming.