I'm glad someone asked this, because, I hate to admit this...I don't know C at all.
My first micro controller programming was a BASIC stamp, and my first REAL micro controller programming was PIC assembler, which I am still learning.
For my simple project, I believe PIC asm is the appropriate tool, but for more complex work, I believe I should learn C.
To complete the computer programming requirement for my EE degree at the university, I took the computer science programming class, which was Pascal. The EE offering was Fortran, which, I believe, isn't used much.
I used to write programs in asm for my Z80 computer, a long time ago, but the assembler used 8080 opcodes, and, in fact, the whole machine was hobbled by using software written for the 8080 - thus using only a portion of the Z80's capability. But I digress.
Back in high school (secondary school for non US folks?) the electronics department had more money than sense, and bought a heathkit microprocessor trainer, but didn't get the course to go with it. So, it sat unused. I wrote a program in ASM for the beginning students to practice Ohm's law calculations. (this was back when computers were rare in classrooms - 1986 or so) I think it was a 6502, but I could be wrong.
Sorry for the long digression there.