How does one go about learning C?
this is python board, ask /g/
>>9036623
The C Programming Language is well-written. C is a small language so that's all you need.
C is a small language that can be learned in a week or so. Learning C doesn't mean that you'll be able to use it to its full potential of course, for that you'll need years because it's such a broad collection of topics. I mean, is learning a merge sort "learning C" or is it just learning the algorithm? If you think it's the former, then there's no single path to learning it but there are plenty of resources. If you're satisfied with just the latter, read a book like the one previously recommended on this thread.
>>9036631
There's a lot more to C than what is in K&R.
Take a look at this OP:
https://gustedt.wordpress.com/2016/11/25/modern-c-is-now-feature-complete/
>>9036651
And by latter I mean of course that knowing the language doesn't mean you'll know any useful algorithms or software engineering practices or memory management etc etc.
>>9036623
go outside, find your nearest community college/tertiary institute, apply
>>9037486
what a useless fucking reply, and bumping with it nonetheless
First I would read K&R. It is still the definitive guide to C, even though you would never use the style of declarations in there.
Second I would do CMU's 15-122, just reading through the pdfs and assignments so you understand what invariants are and how to write safe loops that do not overflow arrays, and programming with contracts. This course is done in C0 (C-nought) which is C with a garbage collector and interpreter so you can see instant results of say, array aliasing to see how the memory matches when you attempt to copy an array incorrectly. http://www.cs.cmu.edu/~15122/schedule.shtml
Third, I would do CMU's 15-213 which shows you C at the assembly level, so you can see exactly what is going on and truly understand pointer arithmetic, type casting ect. https://www.cs.cmu.edu/~213/schedule.html (click on 'old video' they are public). You also need to buy the book, CS:APP that goes with the course which you want the 3rd (64bit) version, and can get it used on Abe Books (or get the global version).
Fourth, you would want to read how to do modern C, in which you would never type 'int' or 'char' or anything like that.
https://matt.sh/howto-c
Finally, since you've done 15-213 you know about the CERT C standard and you would read it.
https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard
Congrats you can program in C now, optimize your programs, know the linker/compiler, gdb, valgrind ect, know how the program is running at the bare metal level, and know all the undefined behavior that can hang you. At this point I would recommend not ever using C and instead look at functional programming, verified algorithms, ie: modern & not 1970s leaky datastructures.
>>9036623
get a compiler, find some tutorial sites online, start coding, make small changes in programs, see what happens, draw conclusions, rinse and repeat.
>>9037489
>2021
congrats, you've learned C. what are you going to do with your resume that is absolutely blank of education and references? you have absolutely nothing to prove of your educational competency, and believe it or not, you aren't going to receive the opportunity to "show" your interviewer that you know a computer language, retard.
>>9036623
>Learn C++17
>Then learn the tedious shit in C
>Resume using C++
>>9037752
>what is github
Why in the fuck would you want to learn C?
>>9036623
First learn A, then learn B...
>>9038492
Embedded systems. Also if you learn C, then learn other languages, you will have good programming habits from the start.
I like C primer plus 6th edition. A little lengthy but forever a good reference guide. The 5th edition is free online if you're too poor.