C. Not C++. Raw C. K&R level C.It's assembler for people who know what they are doing.C has been criticized unfairly. It is possible to do almost everything you can do in assembler.It introduces the idea of a "high level language". There are tens of thousands of others but C is the one you must know.C introduces syntax. Now your programs can yell back at you. It's still your fault but now the program can complain. You'll learn about "segfaults", pointers, pointers to pointers, memory layout, and joy of joys... debugging with GDB!The idea of non-local jumps (setjmp, longjmp) shows up.The idea of variadic functions is also worth knowing.C introduces stylized argument handling (argc, argv, envp) and the exquisite joy of buffer overruns.C introduces ideas (and it is not the first language to do so) such as 'types', in a kind-of, sort-of, hand-waving way. It gives an easier language for ideas of conditions, branching, and looping.C is lightweight and (can be) portable. You can get "close to the machine", like assembler or "generic" and "machine independent".C is the "language between languages". When you need two languages to talk, C is the way. C is the "language that other languages speak". A lot of other language compilers compile to C.The C library is a "must know" component. You need to know how to use the library for things like file I/O, networking, and memory management.C enables and introduces tools like 'make'.C lets you pretend that programming is easier than it is. Learning will occur.Write a chess program in C. It only takes about 200 lines. Yet it involves I/O (for board display and user input), recursion, memory management, alpha-beta tree search, self-modification (changing itself to play better), etc.The bottom line is that C is a language you must know.