Results 1 to 8 of 8

Thread: Free C Programming Course Suggestions

  1. #1
    Join Date
    Aug 2011
    Beans
    19

    Free C Programming Course Suggestions

    I'd like to learn the C programming language and I was wondering if anyone had any suggestions on what might be a good free course to use. Right now I'm poking through the stuff from MIT's "Practical Programming in C" on OpenCourseWare, but that just gives some bare powerpoint outlines. Does anyone know of anything more complete that would be good (preferably something you've used and can recommend)? Thanks!

  2. #2
    Join Date
    Jun 2009
    Location
    NY
    Beans
    570
    Distro
    Kubuntu Development Release

    Re: Free C Programming Course Suggestions

    Everything in the future is a wave, everything in the past is a particle. -Lawrence Bragg

    Parabola: https://parabolagnulinux.org/
    Completely freed... Libre GNU/Linux !!!

  3. #3
    Join Date
    Mar 2007
    Beans
    37

    Re: Free C Programming Course Suggestions

    Try these (Downloadable, Free C & C++ tutorials):

    (C++ Tutorial): http://www.google.com/url?sa=t&rct=j...VE4YuA&cad=rja

    (C Tutorial): http://www.google.com/url?sa=t&rct=j..._-hahA&cad=rja
    i and the public know what school children learn, to those whom evil is done do evil in return

  4. #4
    Join Date
    Feb 2009
    Beans
    1,469

    Re: Free C Programming Course Suggestions

    Quote Originally Posted by Kay The Bantu View Post
    Try these (Downloadable, Free C & C++ tutorials):

    (C++ Tutorial): http://www.google.com/url?sa=t&rct=j...VE4YuA&cad=rja

    (C Tutorial): http://www.google.com/url?sa=t&rct=j..._-hahA&cad=rja
    That C tutorial is seriously out of date. It has literally been out of date since before I was born. It uses old style function declarations. It's rife with archaic MS-DOS advice and various bad practices. Granted, I've seen worse, but there's no reason to recommend such a tutorial in this day and age.

    I'll leave someone else to critique the C++ tutorial, but observe that C and C++ are very different languages.

    @OP, the cprogramming.com tutorial is not a bad place to start. I do suggest, though, that you consider spending some money. K&R is virtually guaranteed to be a good investment. It's not that there aren't good online resources out there -- it's just that when you try to learn on your own from online resources, you're likely to run into quite a few, like the one Kay The Bantu posted, that just aren't worth emulating -- and you won't be able to tell the difference between good and bad until you have experience.

  5. #5
    Join Date
    Apr 2008
    Location
    Australia
    Beans
    276
    Distro
    Ubuntu

    Re: Free C Programming Course Suggestions

    That C tutorial is seriously out of date. It has literally been out of date since before I was born. It uses old style function declarations. It's rife with archaic MS-DOS advice and various bad practices. Granted, I've seen worse, but there's no reason to recommend such a tutorial in this day and age.
    I was skeptical about that at first, but then I had a read through, and I second what he said.

    I'll leave someone else to critique the C++ tutorial, but observe that C and C++ are very different languages.
    That's actually in my opinion one of the better free, online C++ sites. cplusplus.com is a really good reference once you get the hang of C++, although the tutorials may not be as good as formally learning it. They are quite good, if you can learn from it, then great. But don't be surprised if you run into difficulty, just try, then ask for help. (and when you ask for help, show that you've tried)

    PS, I'll also reccommend skipping C. Just learn C++, you'll probably find a lot more up to date documentation. And then once you master C++ you can easily enough research where the overlap between the two languages is, thus learn C quickly just from understanding what you can't use from C++ and what will work differently. (You can use a similar method to learn Java, C#, Javascript, Flash, and Objective C if you're really hardcore, but that'll take a couple of years)
    Last edited by dagoth_pie; June 13th, 2012 at 03:27 PM.
    By the people, for the people.

  6. #6
    Join Date
    Feb 2009
    Beans
    1,469

    Re: Free C Programming Course Suggestions

    Quote Originally Posted by dagoth_pie View Post
    That's actually in my opinion one of the better free, online C++ sites. cplusplus.com is a really good reference once you get the hang of C++, although the tutorials may not be as good as formally learning it. They are quite good, if you can learn from it, then great.
    Thanks, this is good to know.

    PS, I'll also reccommend skipping C. Just learn C++, you'll probably find a lot more up to date documentation. And then once you master C++ you can easily enough research where the overlap between the two languages is, thus learn C quickly just from understanding what you can't use from C++ and what will work differently. (You can use a similar method to learn Java, C#, Javascript, Flash, and Objective C if you're really hardcore, but that'll take a couple of years)
    There is certainly a case to be made for skipping C in favor of C++, but I disagree that C++ helps you learn C quickly. Based on my admittedly small experience, I would say the opposite is more often true, since people coming from C++ and other "higher level" languages often struggle with the... simplicity of pointers and memory management.

    In my field (hardware engineering), C often gets more use than C++, because C++'s "bonus features" tend to obstruct efficient, close-to-the-metal code. Since Python and Perl meet my HLL needs, I don't intend to learn more C++ than I currently know (which isn't much). This varies by company and industry, so to the OP and anyone else learning to program, I'd encourage you to think about what you'd like to write (firmware? operating systems? compilers? desktop applications? webapps? mobile apps?) and research what languages those things are written in, in practice.

  7. #7
    Join Date
    Oct 2011
    Location
    Chicago, IL
    Beans
    419
    Distro
    Xubuntu 10.04 Lucid Lynx

    Re: Free C Programming Course Suggestions

    +1 for K&R. I generally don't recommend for beginners to go out and spend money on books, but K&R is the exception for beginners who are sure they want to know C. As somebody who's been writing C fairly regularly for the past 3-4 years, K&R is still the first thing I reach for if I'm unsure about something.

    As far as transitioning between C and C++, I don't think either way is particularly difficult if you treat them like different languages. C++ was my university's language of choice for the intro/data structures/algorithms/etc classes, so I came to my current job with a good amount of C++ experience and not nearly as much C. In my experience, the hardest part about the transition between the languages was style. Good C programmers write very different code than good C++ programmers, and that was more confusing than anything else.

    I must ask why you are interested in C. Do embedded systems and operating systems interest you, or did somebody just tell you that C will make you a better programmer? I personally love writing C, and I think it's a much better language than C++, but it's not a language for everything. Make sure you pick the right tools for the job.

  8. #8
    Join Date
    Feb 2009
    Beans
    1,469

    Re: Free C Programming Course Suggestions

    Quote Originally Posted by 11jmb View Post
    As far as transitioning between C and C++, I don't think either way is particularly difficult if you treat them like different languages. C++ was my university's language of choice for the intro/data structures/algorithms/etc classes, so I came to my current job with a good amount of C++ experience and not nearly as much C. In my experience, the hardest part about the transition between the languages was style. Good C programmers write very different code than good C++ programmers, and that was more confusing than anything else.
    This is an excellent point. I wish I had made it.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •