Top 10 C programming resources that will turn you into a better programmer

Top C Programming Resources

People consider computer programming a little tiresome but some find it more enjoyable. Every programmer has to keep up with the latest trends coming in the programming languages. Most of the programmers start programming in C as it is the most commonly used programming language for writing operating systems and applications.

If you are reading this article, most probably you are already a programmer or want to become a programmer. Luckily, you are on the right place because in this article I have gathered C programming websites/tutorials that can help you becoming a good C programmer. These websites/tutorials will help you to learn basics as well as advance programming techniques in C language.

1.      C Programming Notes

These notes are part of the UW Experimental College course on Introductory C Programming. They are based on notes prepared (beginning in Spring, 1995) to supplement the book The C Programming Language, by Brian Kernighan and Dennis Ritchie, or K&R as the book and its authors are affectionately known.

Introduction of the first chapter says:

C’s small, unambitious feature set is a real advantage: there’s less to learn; there isn’t excess baggage in the way when you don’t need it. It can also be a disadvantage: since it doesn’t do everything for you, there’s a lot you have to do yourself. (Actually, this is viewed by many as an additional advantage: anything the language doesn’t do for you, it doesn’t dictate to you, either, so you’re free to do that something however you want.)

2.      Programming in C – UNIX System Calls and Subroutines using C.

David Marshall’s ‘Programming in C’ tutorial covers application design, UNIX system calls  and subroutines using C programming language. This tutorial covers tons of topics on C, from basics to multi-threading and POSIX to RPC Programming. My favorite piece from the text is:

C is much more flexible and free-wheeling. This freedom gives C much more power that experienced users can employ. The above example below (mystery.c) illustrates how bad things could really get.

#include <stdio.h>

main(t,_,a)
char *a;
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
)&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
+1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

Compile and run it here online yourself.

3.      C Lesson by Chris Sawtell

This archive contains a complete course for you to learn the ‘C’ computer language itself. The language used is correct conversational English. The author has written the lessons using the same language constructions which I would use if I were teaching you directly.

Note: Original URL is not working so a mirror URL is provided.

4.      comp.lang.c Frequently Asked Questions

Steve Summit maintains a FAQ for the C language, which he’s also published in a book “C Programming FAQs: Frequently Asked Questions” (Addison-Wesley, 1995, ISBN 0-201-84519-9).

Main topics covered are: 1. Declarations and Initializations; 2. Structures, Unions, and Enumerations; 3. Expressions; 4. Pointers; 5. Null Pointers; 6. Arrays and Pointers; 7. Memory Allocation; 8. Characters and Strings; 9. Boolean Expressions and Variables; 10. C Preprocessor; 11. ANSI/ISO Standard C; 12. Stdio; 13. Library Functions; 14. Floating Point; 15. Variable-Length Argument Lists; 16. Strange Problems; 17. Style; 18. Tools and Resources; 19. System Dependencies

5.      Collection of C programming material at Lysator Society

There is an electronic collection of C programming material at Lysator Society website. Lysator is an academic computer society located at Linköping University in Linköping, Sweden.

The collection also links to some other C programming resources on the internet.

6.      A collection of useful libraries written in C

This is a catalog of useful free software/libraries that runs under free operating systems — particularly the GNU operating system and its GNU/Linux variants.

The catalog lists roughly 100 libraries and tools written in C including zlib, Gnutls, CUnit and Gmp.

7.      The C Programming Language Standard

ISO/IEC JTC1/SC22/WG14 is the international standardization working group for the programming language C.

8.      High-level and Low-level Programming in C

You can extend the C programming language with certain utilities and idioms to get some the features of a “high-level”‘ programming language. Also, you can bypass some of C’s regular features to get direct access to low-level capabilities.

Note: This URL is not working and trying to locate an alternative.

9.      Microsoft C Language Reference

The C Language Reference describes the C programming language as implemented in Microsoft C. The book’s organization is based on the ANSI C standard with additional material on the Microsoft extensions to the ANSI C standard.

10.  C++ Annotations (Version 10.9.2) by Frank Brokken

This tutorial is intended for advanced C programmers who want to transition to C++. It continues where the C programming language ends—such as at pointers, memory allocation, and compound types—which makes it a very good C++ programming guide.

Categories: Blog
M. Saqib: Saqib is Master-level Senior Software Engineer with over 14 years of experience in designing and developing large-scale software and web applications. He has more than eight years experience of leading software development teams. Saqib provides consultancy to develop software systems and web services for Fortune 500 companies. He has hands-on experience in C/C++ Java, JavaScript, PHP and .NET Technologies. Saqib owns and write contents on mycplus.com since 2004.
Related Post