Thread: C Programming Learning Curve

  1. #1
    Registered User
    Join Date
    May 2012
    Location
    New York City
    Posts
    3

    C Programming Learning Curve

    Dear Cprogramming.com Community,

    I'm new to C Programming and was curious to know what is the learning curve like ? And how long did it take you guys to become a decent C programmer ? Perhaps with marketable skills ?

    Thanks !

  2. #2
    Registered User
    Join Date
    Jun 2017
    Posts
    88
    Ignoring the part of your question about marketable skills, my opinion is that C is an excellent first language. Most of the lesson plans for languages higher than C want you to learn object oriented design pretty quickly. For myself, wanting to learn how to program without first learning OOD was the reason I decided to learn C. I believe I will probably be able to know everything in the language reasonably well after 6 months, but everyone can choose how long they want to do it. I had decided to purchase a textbook and do every exercise in the book which concerns C, and that is what will take me six months. I am about five months in, and I'll finish next month. This is the book that I chose for this task. Admittedly, only 14 chapters of this book are about C while the rest is C++, and occasionally the exercises the authors write up don't make sense. I did, however, try to learn a few different ways, and this I feel is the best way for me.

    So, again, the fact that C is not made for object oriented design makes it a language which is easier to learn than most other languages.
    Last edited by jack jordan; 11-06-2017 at 06:20 PM.

  3. #3
    Registered User
    Join Date
    Apr 2017
    Location
    Iran
    Posts
    138

  4. #4
    Registered User
    Join Date
    May 2017
    Posts
    129
    Quote Originally Posted by Freddie_Fred View Post
    Dear Cprogramming.com Community,

    I'm new to C Programming and was curious to know what is the learning curve like ? And how long did it take you guys to become a decent C programmer ? Perhaps with marketable skills ?

    Thanks !
    There are several resource available on internet. Read the books, tutorials. Try to write program. Nobody is perfect. Practice make you perfect.

  5. #5
    Registered User
    Join Date
    Oct 2017
    Posts
    36
    If you are searching for a ready made option to learning c you may never find one. The best way to begin is to settle down in front of your computer and put your hands to work. Get a book that you think you can follow the tutorial and settle it in your mind that it will take you time to become a good programmer. You have to put in consistent time to work and study. I will suggest that you practice more than you read. What i mean is this read a little practice more. over time you will be good at what you do.

  6. #6
    Registered User
    Join Date
    Dec 2010
    Location
    Trinidad, CO (log cabin in middle of nowhere)
    Posts
    148
    It took me several years to master C. Prior to my starting to work on it, I did have various other programming experiences. I've never regretted the time I spent on it. As others have said, you just have to diligently work at it, and try to push the envelope. Your failures can be as important as your successes in moving forward.

  7. #7
    Registered User
    Join Date
    Apr 2013
    Posts
    1,658
    New to C programming is different than new to programming. Assuming you've previously programmed in one or more other languages, then C should not be difficult to learn. C could be your first experience with pointers, but basic pointer usage is not that difficult. The programming environment (PC, embedded system, ... ) , tool set, and the associated libraries is where most of the learning curve will be. Most algorithms can be implemented in most programming languages, so the learning curve there is due to the algorithms more than the language. The skills you need for a job are usually specialized skills that are job specific. You need to determine what type of jobs you would be interested in and what skills are needed.

  8. #8
    Registered User
    Join Date
    Jun 2017
    Posts
    157
    Why do you want to learn such an old language and not the more modern C++ ?

  9. #9
    Registered User rstanley's Avatar
    Join Date
    Jun 2014
    Location
    New York, NY
    Posts
    1,106
    Quote Originally Posted by OldGuy2 View Post
    Why do you want to learn such an old language and not the more modern C++ ?
    The C Programming language is probably the most important programming language is use today.

    The C Programming language was created in 1969 - 1970.
    The C++ Programming Language was started 1979, only 10 years after C! (38 years ago!) What do you consider, "Modern"?

    Although the exact number is virtually impossible to accurately state, I have read in the past that over 60% of all data-centers are running Linux. In a report by the Linux Foundation, as of 2014, that number is now over 79%, and most likely, higher as of this date.

    As of June 2017, of the top 500 Supercomputers, 498 were running Linux, and 2 were running UNIX!

    Most "Cloud" servers are running some form of Linux, with some UNIX. Most other servers providing Web, Mail, and other Internet services, are running UNIX and Linux as well.

    The software for embedded systems in vehicles, IOT devices, etc... are more than likely, C based.

    The UNIX and Linux O/S, kernels, libraries, tools, and most applications are based primarily on the C Programming Language.

    The vast collection of legacy code still in use today are probably more based on C.

    As a former instructor of both C & C++, I can state that a programmer learning C, thoroughly, first, will be better equipped to learn C++, and also to maintain and write C code as well, than someone attempting to learn C by learning C++! IMHO, ALL programmers should learn C, either as a first, language, or one of the first few languages learned, but BEFORE any OO language.

    This should answer your question, "Why do you want to learn such an old language and not the more modern C++ ?" My answer, why not? ;^)
    Last edited by rstanley; 11-08-2017 at 09:25 AM.

  10. #10
    Registered User
    Join Date
    Jun 2017
    Posts
    157
    I just was curious. Of course people have different opinions what should be used or learned.
    IMO the only reason to learn C is when there is no C++ compiler available, like for some embedded devices or maybe writing device drivers.
    But these are rare exceptions.
    I am not a Unix user, but some of my friends are and according to them Unix has very good C++ compilers.
    C still lacks so many things a modern language should have like exception handling, generics, type safety, operator overloading, user defined types...
    If neccessary you still can write low level code like you would do in C.

  11. #11
    misoturbutc Hodor's Avatar
    Join Date
    Nov 2013
    Posts
    1,791
    Quote Originally Posted by OldGuy2 View Post
    [...] things a modern language should have like exception handling [...]
    Although C++ has exception handling, unlike C, it's so rare to see it being used properly it would be better if they removed it from the language

  12. #12
    Registered User
    Join Date
    Apr 2013
    Posts
    1,658
    Quote Originally Posted by rstanley View Post
    The vast collection of legacy code still in use today are probably more based on C.
    In the case of mainframes and supercomputers there is still a lot of legacy code in Fortran, and Cobol, and for IBM mainframes, a strange mix of Cobol and assembly (the old database access interfaces were implemented as assembly macros, and once assembly got into the mix, it ended up being used for other functions). I don't know how the mainframe legacy code compares to PC or server based legacy code, since I have the impression that the PC and/or server based code is more likely to get updated and rewritten more than the legacy code used for mainframes, since many or most mainframes are backwards compatible with legacy mainframes (why replace a huge library of working code?) .
    Last edited by rcgldr; 11-08-2017 at 08:57 PM.

  13. #13
    Registered User
    Join Date
    Feb 2014
    Posts
    30
    I don't think I'm proficient in C, as I have never taken any courses on C. I read C Primer Plus about 18 years ago, and dabbled in it occasionally.

    About 5 years ago, I felt I wasn't really learning to use C to its full capabilities. I decided that I needed to code in C, exclusively. I created an HTTP/HTTPS library and even wrote some code which acts as my media center software for my home entertainment system. I have also edited various Linux program's source code, with success. I love C, but I still feel that I'm not proficient in it. I have never undertaken any real project (eg. outside of my home, with others counting on my code), so I totally feel like just a hack when it comes to C programming. Although I follow pretty strict coding standards.

    So take it as you will.

  14. #14
    Registered User
    Join Date
    Apr 2013
    Posts
    1,658
    Being an old guy, I can offer a historical perspective. I mostly programmed in assembly, mostly with multi-tasking operating systems, multi-tasking applications, and device drivers back in the days of mini-computers (1970's through 1980's). Some of my work involved Fortran. I also programmed in APL and Cobol (and assembly) on a IBM 370 mainframe while tutoring at a local college. My initial usage of C was more like using high level macros for assembly. Starting in the mid 1980's, there was a transition away from assembly to mostly C with some assembly at the companies I worked at. My operating systems work changed from working with mini-computers to working with embedded devices, computer tape drives and computer hard drives, somewhat of a niche in terms of the types of programming jobs there are these days and rare since most of the embedded type processors have free or very cheap operating systems already written. Out of all of the languages I used, APL was the most unique, and also dates back to the 1960's.

    These days, most of my programming is in C or C++, with some Java, although most of my Java is done to offer help at programming forums like this one. Learning C wasn't much of an issue for me, since I already knew other languages. I learned a portion of the Windows API, initially in C, then later in C++, and that was a bigger learning curve than just learning C or C++.
    Last edited by rcgldr; 11-09-2017 at 09:18 PM.

  15. #15
    Registered User
    Join Date
    May 2012
    Location
    New York City
    Posts
    3
    Well... I do want to learn C++ Programming as well, but I'd just figured that I at least start with the C language and then slowly work myself right into C++; being that it's the "original" language sort of speak; right ?

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Learning curve
    By PieMonster in forum Game Programming
    Replies: 2
    Last Post: 09-04-2011, 08:09 PM
  2. Learning C Programming
    By Manakore in forum C Programming
    Replies: 5
    Last Post: 02-08-2011, 05:32 PM
  3. Learning curve question
    By overbet in forum C++ Programming
    Replies: 9
    Last Post: 12-08-2009, 09:46 AM
  4. The learning curve associated with c.
    By cdalten in forum C Programming
    Replies: 4
    Last Post: 03-20-2006, 08:11 PM
  5. How are you learning programming?
    By incognito in forum A Brief History of Cprogramming.com
    Replies: 63
    Last Post: 02-13-2002, 05:13 PM

Tags for this Thread