Jump to content

  • Log In with Google      Sign In   
  • Create Account

#ActualAldacron

Posted 02 December 2012 - 05:26 AM

I second the recommendation for C. I came to programming rather late at the age of 27 and the first language I started learning (on my own) was Java 1.1 back in '98. I thought I had grasped the concepts pretty well, but it wasn't until I started digging into C a few months later that I realized just how little I knew. I have still used Java off and on over the years, professionally and otherwise, but it does mask some fairly important concepts from you. Some of it is because of the way Java is designed, but it's also because of the wealth of classes in the standard library. No need to roll your own list when there's a perfectly good one sitting there in the utility package. In C, there's a great many things that you just have to do yourself (memory management) and others that it's usually just easier to do yourself (making lists). But most of all, I understood Java a helluva lot better after spending a few months with C.

In a classroom environment, I imagine Java would be fine since the instructor will usually give you certain restraints within which to work. But when studying independently, best to avoid temptation methinks. If I had to to it all again, I would start with C first. It's not that difficult to learn if you have a good book at your side (or, these days, a good web site) to get you through the rough spots. Stephen Prata's C Primer Plus is a good one to go with (and the latest version covers C99). And there really aren't that many rough spots.

I mostly work with D these days and rarely touch Java anymore. But I still love C. It can be extremely tedious to work with on a large scale and isn't really practical for as wide a range of tasks as it used to be, given the number of better-suited alternatives out there. But I really believe it's the best place to start. Some say that learning C first is rather like learning to swim by jumping into the deep end of the pool, whereas learning Java or Python first is more akin to playing around in the shallow end. It's an interesting analogy, but I don't see it that way. My take is that Java and Python have certain constraints imposed by the languages themselves which, while not necessarily a bad thing, can be mistaken by beginners as part of the process rather than understood as being quirks of the language. C has none of that, so you can see as much or as little of the bigger picture as you are comfortably able. After some time with C, moving on to Java, Python, C# or whatever language you want will be rather simple. Not so easy the other way round.

#2Aldacron

Posted 02 December 2012 - 05:25 AM

I second the recommendation for C. I came to programming rather late at the age of 27 and the first language I started learning (on my own) was Java 1.1 back in '98. I thought I had grasped the concepts pretty well, but it wasn't until I started digging into C a few months later that I realized just how little I knew. I have still used Java off an on over the years, professionally and otherwise, but it does mask some fairly important concepts from you. Some of it is because of the way Java is designed, but it's also because of the wealth of classes in the standard library. No need to roll your own list when there's a perfectly good one sitting there in the utility package. In C, there's a great many things that you just have to do yourself (memory management) and others that it's usually just easier to do yourself (making lists). But most of all, I understood Java a helluva lot better after spending a few months with C.

In a classroom environment, I imagine Java would be fine since the instructor will usually give you certain restraints within which to work. But when studying independently, best to avoid temptation methinks. If I had to to it all again, I would start with C first. It's not that difficult to learn if you have a good book at your side (or, these days, a good web site) to get you through the rough spots. Stephen Prata's C Primer Plus is a good one to go with (and the latest version covers C99). And there really aren't that many rough spots.

I mostly work with D these days and rarely touch Java anymore. But I still love C. It can be extremely tedious to work with on a large scale and isn't really practical for as wide a range of tasks as it used to be, given the number of better-suited alternatives out there. But I really believe it's the best place to start. Some say that learning C first is rather like learning to swim by jumping into the deep end of the pool, whereas learning Java or Python first is more akin to playing around in the shallow end. It's an interesting analogy, but I don't see it that way. My take is that Java and Python have certain constraints imposed by the languages themselves which, while not necessarily a bad thing, can be mistaken by beginners as part of the process rather than understood as being quirks of the language. C has none of that, so you can see as much or as little of the bigger picture as you are comfortably able. After some time with C, moving on to Java, Python, C# or whatever language you want will be rather simple. Not so easy the other way round.

#1Aldacron

Posted 02 December 2012 - 05:25 AM

I second the recommendation for C. I came to programming rather late at the age of 27 and the first language I started learning (on my own) was Java 1.1 back in '98. I thought I had grasped the concepts pretty well, but it wasn't until a I started digging into C a few months later that I realized just how little I knew. I have still used Java off an on over the years, professionally and otherwise, but it does mask some fairly important concepts from you. Some of it is because of the way Java is designed, but it's also because of the wealth of classes in the standard library. No need to roll your own list when there's a perfectly good one sitting there in the utility package. In C, there's a great many things that you just have to do yourself (memory management) and others that it's usually just easier to do yourself (making lists). But most of all, I understood Java a helluva lot better after spending a few months with C.

In a classroom environment, I imagine Java would be fine since the instructor will usually give you certain restraints within which to work. But when studying independently, best to avoid temptation methinks. If I had to to it all again, I would start with C first. It's not that difficult to learn if you have a good book at your side (or, these days, a good web site) to get you through the rough spots. Stephen Prata's C Primer Plus is a good one to go with (and the latest version covers C99). And there really aren't that many rough spots.

I mostly work with D these days and rarely touch Java anymore. But I still love C. It can be extremely tedious to work with on a large scale and isn't really practical for as wide a range of tasks as it used to be, given the number of better-suited alternatives out there. But I really believe it's the best place to start. Some say that learning C first is rather like learning to swim by jumping into the deep end of the pool, whereas learning Java or Python first is more akin to playing around in the shallow end. It's an interesting analogy, but I don't see it that way. My take is that Java and Python have certain constraints imposed by the languages themselves which, while not necessarily a bad thing, can be mistaken by beginners as part of the process rather than understood as being quirks of the language. C has none of that, so you can see as much or as little of the bigger picture as you are comfortably able. After some time with C, moving on to Java, Python, C# or whatever language you want will be rather simple. Not so easy the other way round.

PARTNERS