Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Want to learn C. Newbie. Where to start?

Want to learn C. Newbie. Where to start?

Scheduled Pinned Locked Moved C / C++ / MFC
learningvisual-studiotutorialquestion
30 Posts 8 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Lost User

    Free online edition of the best book on C ever written: http://www.dipmat.univpm.it/~demeio/public/the_c_programming_language_2.pdf[^]. Start with that and see how you progress. If you find it reasonably easy to understand then buy a copy of the printed book. You can build and test your samples at GDB online Debugger | Compiler - Code, Compile, Run, Debug online C, C++[^].

    Q Offline
    Q Offline
    Quickbeam1213
    wrote on last edited by
    #3

    Thank you very much. I see this book recommended a lot, but the publication date is in 1988. The guy assumes I'm using UNIX. How do I translate that to today? What would I program on?

    L 1 Reply Last reply
    0
    • Q Quickbeam1213

      Thank you very much. I see this book recommended a lot, but the publication date is in 1988. The guy assumes I'm using UNIX. How do I translate that to today? What would I program on?

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #4

      Quickbeam1213 wrote:

      The guy assumes I'm using UNIX

      C was originally developed on Unix which is why it has so many references to it. But it all works just the same on Windows; and as I gave you the link for the online compiler it does not matter what system you are on. Once you have developed a reasonable understanding you can install one of the free IDEs or compilers on your own system.

      Q 1 Reply Last reply
      0
      • Q Quickbeam1213

        Hey guys. I don't know much about coding, but I'd like to be a software developer. Lofty goal for sure considering my lack of knowledge. I'm prepared to work at this however. I need to know where to start. I'll look at reviews for a given book. Some say it's great, some say it's terrible. Some folks say an IDE is fine, while others say that it on obfuscates aspects of programming that the coder should absolutely be familiar with. I haven't a clue! I like the idea of learning without an IDE holding my hand. Can someone recommend a book that teaches C using a text editor such as Gedit for example? Or any book that would be a good starting point. Thank you in advance.

        L Offline
        L Offline
        leon de boer
        wrote on last edited by
        #5

        If you are using Windows and you intend to write your learning code for Windows then you would start with Visual Studio from Microsoft 2017. 1.) It's free for solo developer, just register and download 2.) It's a modern IDE with good debugger and intellisense alone will help you with silly errors. 3.) Opening a console app template to do some of those easy startup lesson is a couple of mouse clicks. 4.) It's the O/S you are familiar with. I seriously wouldn't consider anything else because it's just a whole pile of junk learning like make etc that you will never use for those other systems. You will also struggle with any unix/linux code as many of the API calls will not be represented under windows and you will need to incorporate posix library substitutes just to get your sample code to compile. I use GCC, Keil, Green Hills and Eclipse for a lot of other work but they are all much more complex to run on Windows than Visual Studio and when you are starting out what you want is simplicity. You want to concentrate on the C language itself not the toolchain systems. You will have compiled and run your first programs on VS before you have even worked out how to install and setup many of the other systems.

        In vino veritas

        1 Reply Last reply
        0
        • L Lost User

          Quickbeam1213 wrote:

          The guy assumes I'm using UNIX

          C was originally developed on Unix which is why it has so many references to it. But it all works just the same on Windows; and as I gave you the link for the online compiler it does not matter what system you are on. Once you have developed a reasonable understanding you can install one of the free IDEs or compilers on your own system.

          Q Offline
          Q Offline
          Quickbeam1213
          wrote on last edited by
          #6

          Sorry. I didn't see that link at first. Thank you.

          1 Reply Last reply
          0
          • Q Quickbeam1213

            Hey guys. I don't know much about coding, but I'd like to be a software developer. Lofty goal for sure considering my lack of knowledge. I'm prepared to work at this however. I need to know where to start. I'll look at reviews for a given book. Some say it's great, some say it's terrible. Some folks say an IDE is fine, while others say that it on obfuscates aspects of programming that the coder should absolutely be familiar with. I haven't a clue! I like the idea of learning without an IDE holding my hand. Can someone recommend a book that teaches C using a text editor such as Gedit for example? Or any book that would be a good starting point. Thank you in advance.

            CPalliniC Offline
            CPalliniC Offline
            CPallini
            wrote on last edited by
            #7

            To start get a Linux box, the gcc compiler and a text editor (real programmers use vi).

            In testa che avete, signor di Ceprano?

            L D 2 Replies Last reply
            0
            • CPalliniC CPallini

              To start get a Linux box, the gcc compiler and a text editor (real programmers use vi).

              L Offline
              L Offline
              leon de boer
              wrote on last edited by
              #8

              ROFL just no, I am assuming that was a joke :-) I still have an operational punch card reader if anyone still programs like that .. it could be yours for a reasonable cost.

              CPalliniC 1 Reply Last reply
              0
              • L leon de boer

                ROFL just no, I am assuming that was a joke :-) I still have an operational punch card reader if anyone still programs like that .. it could be yours for a reasonable cost.

                CPalliniC Offline
                CPalliniC Offline
                CPallini
                wrote on last edited by
                #9

                Well, I code every day using vim and gcc on a Linux box. As you know very well, Windows programming is another topic.

                In testa che avete, signor di Ceprano?

                L 1 Reply Last reply
                0
                • CPalliniC CPallini

                  Well, I code every day using vim and gcc on a Linux box. As you know very well, Windows programming is another topic.

                  L Offline
                  L Offline
                  leon de boer
                  wrote on last edited by
                  #10

                  Oh you were serious :-) Ok lets be realistic you may do it but even since 2016 there is actually even more programmers using mac's than linux, it's dropped down to number 3. This is not a war about O/S's it's just a user numbers and linux is falling, windows is also falling and mac is picking up the losses. If you go by actual O/S mac is probably now number one because windows O/S use is broken into 7 & 10 with roughly equal numbers and a few still on XP. There is probably 2018 numbers out, but I now that is roughly what it was in 2017. Even on linux for a new user I would suggest Studio Code, Eclipse or something more updated because if they do go into the serious commercial world it is unlikely an company hiring would be running on vi. The normal however is that you program on the machine you are most familiar with and use :-)

                  In vino veritas

                  CPalliniC D 2 Replies Last reply
                  0
                  • L leon de boer

                    Oh you were serious :-) Ok lets be realistic you may do it but even since 2016 there is actually even more programmers using mac's than linux, it's dropped down to number 3. This is not a war about O/S's it's just a user numbers and linux is falling, windows is also falling and mac is picking up the losses. If you go by actual O/S mac is probably now number one because windows O/S use is broken into 7 & 10 with roughly equal numbers and a few still on XP. There is probably 2018 numbers out, but I now that is roughly what it was in 2017. Even on linux for a new user I would suggest Studio Code, Eclipse or something more updated because if they do go into the serious commercial world it is unlikely an company hiring would be running on vi. The normal however is that you program on the machine you are most familiar with and use :-)

                    In vino veritas

                    CPalliniC Offline
                    CPalliniC Offline
                    CPallini
                    wrote on last edited by
                    #11

                    A basic C (console) programmer doesn't benefit from a IDE.

                    In testa che avete, signor di Ceprano?

                    L 1 Reply Last reply
                    0
                    • L leon de boer

                      Oh you were serious :-) Ok lets be realistic you may do it but even since 2016 there is actually even more programmers using mac's than linux, it's dropped down to number 3. This is not a war about O/S's it's just a user numbers and linux is falling, windows is also falling and mac is picking up the losses. If you go by actual O/S mac is probably now number one because windows O/S use is broken into 7 & 10 with roughly equal numbers and a few still on XP. There is probably 2018 numbers out, but I now that is roughly what it was in 2017. Even on linux for a new user I would suggest Studio Code, Eclipse or something more updated because if they do go into the serious commercial world it is unlikely an company hiring would be running on vi. The normal however is that you program on the machine you are most familiar with and use :-)

                      In vino veritas

                      D Offline
                      D Offline
                      Dave Kreskowiak
                      wrote on last edited by
                      #12

                      Nobody said anything about an O/S or popularity of a platform for developing. If you REALLY want to learn C and, more importantly, how to debug the code you write, doing it without an IDE is a good way to do it. It forces you to go back and research every line of code you write and really understand how that line works. I started by "writing code", literally with paper and pencil, from books on CPU's and machines that I would never have access to. I've written code in environments without the benefit of a debugger and had to learn to use other statements in the code to help with peeking into the variables. When .NET 1.0 came out as a beta, I was writing code in Notepad and using the command line compilers to learn how this whole new world worked. Debuggers and IDE are luxuries. Learn the skills without them and you won't be screwed when you're confronted by an environment where you don't have them. You'd be surprised at how often that happens.

                      Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
                      Dave Kreskowiak

                      L V 2 Replies Last reply
                      0
                      • D Dave Kreskowiak

                        Nobody said anything about an O/S or popularity of a platform for developing. If you REALLY want to learn C and, more importantly, how to debug the code you write, doing it without an IDE is a good way to do it. It forces you to go back and research every line of code you write and really understand how that line works. I started by "writing code", literally with paper and pencil, from books on CPU's and machines that I would never have access to. I've written code in environments without the benefit of a debugger and had to learn to use other statements in the code to help with peeking into the variables. When .NET 1.0 came out as a beta, I was writing code in Notepad and using the command line compilers to learn how this whole new world worked. Debuggers and IDE are luxuries. Learn the skills without them and you won't be screwed when you're confronted by an environment where you don't have them. You'd be surprised at how often that happens.

                        Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
                        Dave Kreskowiak

                        L Offline
                        L Offline
                        leon de boer
                        wrote on last edited by
                        #13

                        As I said your personal experience doesn't and shouldn't come into it, the OP asked what is the best way. The best way is the one that is most familiar to the person learning and with the easiest method and that is usually the O/S they are comfortable. Everything outside that slows the learning process down as they are also learning O/S stuff unrelated to actual programming itself. An IDE does nothing either way it's simply a front to the compiler and doesn't change a single thing with the C code you write. All I suggest he does is stay on the O/S they normally use and see if an IDE makes it easier. I don't take your claim seriously that a programmer would be get so stuck to an IDE they couldn't work without it. It sounds more like a story by those who don't have an IDE and trying to justify why they don't. Given that opensource IDE's like Visual Studio Code are available for every platform it is now also a dead argument as you can run those sort of IDE's on every platform and they look and work the same on every platform and are free. Where the really new IDE's are great these days is many have what Microsoft trademarked as intellisense that is they predict the function as you start typing so you don't make typos and they show you the function parameters as you type them in and then they will even show you after you type if you have an error before you even attempt to compile. Again I suspect you are adding personal bias into a very complicated answer. I personally think IDE use is down to does it make it easier for the person learning.

                        In vino veritas

                        D 1 Reply Last reply
                        0
                        • CPalliniC CPallini

                          A basic C (console) programmer doesn't benefit from a IDE.

                          L Offline
                          L Offline
                          leon de boer
                          wrote on last edited by
                          #14

                          As per below I respectfully disagree, if they have anything like Intellisense on them they can help a newbie immensely.

                          In vino veritas

                          1 Reply Last reply
                          0
                          • D Dave Kreskowiak

                            Nobody said anything about an O/S or popularity of a platform for developing. If you REALLY want to learn C and, more importantly, how to debug the code you write, doing it without an IDE is a good way to do it. It forces you to go back and research every line of code you write and really understand how that line works. I started by "writing code", literally with paper and pencil, from books on CPU's and machines that I would never have access to. I've written code in environments without the benefit of a debugger and had to learn to use other statements in the code to help with peeking into the variables. When .NET 1.0 came out as a beta, I was writing code in Notepad and using the command line compilers to learn how this whole new world worked. Debuggers and IDE are luxuries. Learn the skills without them and you won't be screwed when you're confronted by an environment where you don't have them. You'd be surprised at how often that happens.

                            Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
                            Dave Kreskowiak

                            V Offline
                            V Offline
                            Victor Nijegorodov
                            wrote on last edited by
                            #15

                            I totally agree with leon de boer. :thumbsup:

                            CPalliniC 1 Reply Last reply
                            0
                            • V Victor Nijegorodov

                              I totally agree with leon de boer. :thumbsup:

                              CPalliniC Offline
                              CPalliniC Offline
                              CPallini
                              wrote on last edited by
                              #16

                              I totally agree with Dave Kreskowiak ;P :laugh:

                              In testa che avete, signor di Ceprano?

                              V 1 Reply Last reply
                              0
                              • CPalliniC CPallini

                                I totally agree with Dave Kreskowiak ;P :laugh:

                                V Offline
                                V Offline
                                Victor Nijegorodov
                                wrote on last edited by
                                #17

                                I respect your opinion.:suss: cuique suum...

                                1 Reply Last reply
                                0
                                • L leon de boer

                                  As I said your personal experience doesn't and shouldn't come into it, the OP asked what is the best way. The best way is the one that is most familiar to the person learning and with the easiest method and that is usually the O/S they are comfortable. Everything outside that slows the learning process down as they are also learning O/S stuff unrelated to actual programming itself. An IDE does nothing either way it's simply a front to the compiler and doesn't change a single thing with the C code you write. All I suggest he does is stay on the O/S they normally use and see if an IDE makes it easier. I don't take your claim seriously that a programmer would be get so stuck to an IDE they couldn't work without it. It sounds more like a story by those who don't have an IDE and trying to justify why they don't. Given that opensource IDE's like Visual Studio Code are available for every platform it is now also a dead argument as you can run those sort of IDE's on every platform and they look and work the same on every platform and are free. Where the really new IDE's are great these days is many have what Microsoft trademarked as intellisense that is they predict the function as you start typing so you don't make typos and they show you the function parameters as you type them in and then they will even show you after you type if you have an error before you even attempt to compile. Again I suspect you are adding personal bias into a very complicated answer. I personally think IDE use is down to does it make it easier for the person learning.

                                  In vino veritas

                                  D Offline
                                  D Offline
                                  Dave Kreskowiak
                                  wrote on last edited by
                                  #18

                                  You are correct that the best way is the one that makes sense to the OP. What I've found, working with other people, a GOOD way is to force them to read documentation and experiment. That's all I was saying.

                                  leon de boer wrote:

                                  I don't take your claim seriously that a programmer would be get so stuck to an IDE they couldn't work without it.

                                  HAHAHA! We have definitely work/worked with different people. I've work with both people who could easily work without an IDE and those who couldn't wipe their ass without the aid of a tour guide. There are plenty of situations where you don't get the aid of an IDE or Intellisense, so how is your newb going to get by if he's completely reliant on it, aka the tour guide? The IDE, and Intellisense, is no replacement for the development of research skills. THAT is the most important skill you can develop as developer. No IDE or Intellisense is going to help you with that. Putting the cursor on a keyword and hitting F1 is not research. There plenty of evidence to this right here on CP. You need only to look at the questions in QA.

                                  Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
                                  Dave Kreskowiak

                                  L 1 Reply Last reply
                                  0
                                  • D Dave Kreskowiak

                                    You are correct that the best way is the one that makes sense to the OP. What I've found, working with other people, a GOOD way is to force them to read documentation and experiment. That's all I was saying.

                                    leon de boer wrote:

                                    I don't take your claim seriously that a programmer would be get so stuck to an IDE they couldn't work without it.

                                    HAHAHA! We have definitely work/worked with different people. I've work with both people who could easily work without an IDE and those who couldn't wipe their ass without the aid of a tour guide. There are plenty of situations where you don't get the aid of an IDE or Intellisense, so how is your newb going to get by if he's completely reliant on it, aka the tour guide? The IDE, and Intellisense, is no replacement for the development of research skills. THAT is the most important skill you can develop as developer. No IDE or Intellisense is going to help you with that. Putting the cursor on a keyword and hitting F1 is not research. There plenty of evidence to this right here on CP. You need only to look at the questions in QA.

                                    Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
                                    Dave Kreskowiak

                                    L Offline
                                    L Offline
                                    leon de boer
                                    wrote on last edited by
                                    #19

                                    Even if I accepted your view there is such people, when or why would they not be able to use the IDE ??? I am fascinated what circumstance lead them to not being able to use the IDE? I actually can't think of a work situation it would ever occur and that is why even if someone was dependent you would never know because they would have it installed. Lets take CPallani who apparently loves his vi as his editor, but you can get vi for every O/S. So under what situation could you stop him using vi and that programming need become a problem? In his case it really is no different to any IDE he is dependent on an Editor which is just the same as an IDE. That is why I don't take you answer seriously because I actually can't think how you could ever get that problem to arise. You seem to be naking a mountain out of a molehill that basically could never happen.

                                    In vino veritas

                                    D 1 Reply Last reply
                                    0
                                    • L leon de boer

                                      Even if I accepted your view there is such people, when or why would they not be able to use the IDE ??? I am fascinated what circumstance lead them to not being able to use the IDE? I actually can't think of a work situation it would ever occur and that is why even if someone was dependent you would never know because they would have it installed. Lets take CPallani who apparently loves his vi as his editor, but you can get vi for every O/S. So under what situation could you stop him using vi and that programming need become a problem? In his case it really is no different to any IDE he is dependent on an Editor which is just the same as an IDE. That is why I don't take you answer seriously because I actually can't think how you could ever get that problem to arise. You seem to be naking a mountain out of a molehill that basically could never happen.

                                      In vino veritas

                                      D Offline
                                      D Offline
                                      Dave Kreskowiak
                                      wrote on last edited by
                                      #20

                                      Really? The first thing that came to mind when I read that was, "Wow, what a cute sandbox you work in." How about writing and debugging VBScript code in Notepad because you're not allowed to use certain tools in Government installations? You're also not allowed to use any other languages or scripting engines because they require some kind of runtime installation that's also not allowed. How about debugging SQL stored procedures that work perfectly fine in TEST and QA but fall flat in Production using nothing but command line tools? Oh, and you're not allowed to connect to Production with SSMS or anything else remotely. You actually have to stand in the datacenter on the console. How about writing Javascript code and debugging using nothing but Notepad and console.log statements. Not every situation is one where you're sitting at your desk with all of your tools. Sometimes you're even in situations where you can't even bring your cell phone with you let alone a laptop with your toolset to help you.

                                      Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
                                      Dave Kreskowiak

                                      L 1 Reply Last reply
                                      0
                                      • D Dave Kreskowiak

                                        Really? The first thing that came to mind when I read that was, "Wow, what a cute sandbox you work in." How about writing and debugging VBScript code in Notepad because you're not allowed to use certain tools in Government installations? You're also not allowed to use any other languages or scripting engines because they require some kind of runtime installation that's also not allowed. How about debugging SQL stored procedures that work perfectly fine in TEST and QA but fall flat in Production using nothing but command line tools? Oh, and you're not allowed to connect to Production with SSMS or anything else remotely. You actually have to stand in the datacenter on the console. How about writing Javascript code and debugging using nothing but Notepad and console.log statements. Not every situation is one where you're sitting at your desk with all of your tools. Sometimes you're even in situations where you can't even bring your cell phone with you let alone a laptop with your toolset to help you.

                                        Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
                                        Dave Kreskowiak

                                        L Offline
                                        L Offline
                                        leon de boer
                                        wrote on last edited by
                                        #21

                                        So you are on a secure installation, and they are going to allow you physical access to do debugging :-) So all I can see at the moment is some dramatic situations where one would question the value of what is being done (because you either forgot or they took your tools off you), that you can save the day while the poor IDE dependent pleb might have to think of another way around it, drive and get his tools or get proper authorized access. However in that moment on that workplace you will shine and save the day in less time and effort. As I said I can't think of any realistic situations but I am impressed by your abilities with notepad, mine are woeful.

                                        In vino veritas

                                        L 1 Reply Last reply
                                        0
                                        • CPalliniC CPallini

                                          To start get a Linux box, the gcc compiler and a text editor (real programmers use vi).

                                          D Offline
                                          D Offline
                                          Dar Brett 0
                                          wrote on last edited by
                                          #22

                                          I agree with this mostly, but since I'm not a real programmer I use vim.

                                          CPalliniC 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups