Solved

using Linux to learn coding and software

I am trying to understand the process of programming and software and was wondering would Linux be a good operating system to get my foot in the door to understand coding on an old 2010 Acer computer that is rarely used, and if so what version would i want to use to get the most of learning coding on my own?
36 answers Last reply Best Answer
More about linux learn coding software
  1. To start learning, first choose programming language that you feel most comfortabe writing in. I use Windows OS, because I'm mostly programming in c++, java and c#. Operating system is of little importance on the very beginning of learning process.
  2. danilovrb47 said:
    To start learning, first choose programming language that you feel most comfortabe writing in. I use Windows OS, because I'm mostly programming in c++, java and c#. Operating system is of little importance on the very beginning of learning process.


    well the problem is that im not very sure on what one i would like i only heard of C++ because of gaming so much other then that not very sure on what there is out there i thought Linux uses many different coding
  3. Start with python, imo easiest to learn. Very popular. Very powerful.
    http://www.learnpython.org/
    C and c++ are a rabbit hole for a beginning programmer.
    There are hundreds of languages.
    Java, Ruby, Perl, Lua, MATLAB, SDL, R, mono, c#, ... Many more.

    Probably you should stick with Ubuntu for your first Linux distribution...
  4. Ubuntu or Mint so you don't need to spend a lot of time learning the OS as well. For learning languages I recommend you install Eclipse or Netbeans to get your feet wet. They've got some great step by step tutorials.
  5. TBH, Windows is just as good a platform to learn programming on as Linux (probably better if you are already familiar with Windows). As far as Linux is concerned, any distribution will do. If you go with Windows then I'd recommend starting with C#, using the free Visual Studio Express. That provides a superb environment to produce quite sophisticated GUI programs.

    If you want to get into programming seriously then one of the mainstream languages (C++, C#, Java) will serve you well. As they are very similar, once you have learnt one it is easy to learn the others. The great thing is that nowadays there are a wealth of free programming environments, and great documentation and tutorials, availbale.
  6. Ijack said:
    TBH, Windows is just as good a platform to learn programming on as Linux (probably better if you are already familiar with Windows). As far as Linux is concerned, any distribution will do. If you go with Windows then I'd recommend starting with C#, using the free Visual Studio Express. That provides a superb environment to produce quite sophisticated GUI programs.

    If you want to get into programming seriously then one of the mainstream languages (C++, C#, Java) will serve you well. As they are very similar, once you have learnt one it is easy to learn the others. The great thing is that nowadays there are a wealth of free programming environments, and great documentation and tutorials, availbale.


    thats what one of my friends was telling me about programming but the only problem is with windows its all icon based and very little to learn as far as i know could you explain for how i could learn with window and i was thinking of c++for the fact that i could transfer to gaming programming if i will the need
  7. skittle said:
    Start with python, imo easiest to learn. Very popular. Very powerful.
    http://www.learnpython.org/
    C and c++ are a rabbit hole for a beginning programmer.
    There are hundreds of languages.
    Java, Ruby, Perl, Lua, MATLAB, SDL, R, mono, c#, ... Many more.

    Probably you should stick with Ubuntu for your first Linux distribution...


    but i thought C and C++ are the most used in programming and the base of all programming language
  8. The programming in any language does not need to be GUI based, they just make it easier and a little less tedious. You can always do your programming in Notepad. In Linux like windows you have tools to help you like "UniversalIndentGui" which can indent all your lines correctly to make the code easier to read. Or gPHPedit that automatically colors the code for you so you can find errors faster. Netbeans and Eclipse take it further by making up skeletons of code so you don't spend a lot of time on making tabs for example. They're all just tools, you do the creating.
  9. dmaag54 said:
    Ijack said:
    TBH, Windows is just as good a platform to learn programming on as Linux (probably better if you are already familiar with Windows). As far as Linux is concerned, any distribution will do. If you go with Windows then I'd recommend starting with C#, using the free Visual Studio Express. That provides a superb environment to produce quite sophisticated GUI programs.

    If you want to get into programming seriously then one of the mainstream languages (C++, C#, Java) will serve you well. As they are very similar, once you have learnt one it is easy to learn the others. The great thing is that nowadays there are a wealth of free programming environments, and great documentation and tutorials, availbale.


    thats what one of my friends was telling me about programming but the only problem is with windows its all icon based and very little to learn as far as i know could you explain for how i could learn with window and i was thinking of c++for the fact that i could transfer to gaming programming if i will the need


    I'm afraid that I don't understand what you mean by saying that Windows is icon based. Sure it has a GUI, just like Linux does, but it also has a command-line interface, just like Linux does.

    Visual C++ Express is a really good environment for C++ programming, be it command-line tools, GUI programs or standalone games. Other programming environments exist on both Windows and Linux. The only aspect of programming where I would strongly recommend Linux over Windows is if you are writing an Operating System; if you are new to programming then that's probably a few years down the line.
  10. dmaag54 said:
    skittle said:
    Start with python, imo easiest to learn. Very popular. Very powerful.
    http://www.learnpython.org/
    C and c++ are a rabbit hole for a beginning programmer.
    There are hundreds of languages.
    Java, Ruby, Perl, Lua, MATLAB, SDL, R, mono, c#, ... Many more.

    Probably you should stick with Ubuntu for your first Linux distribution...


    but i thought C and C++ are the most used in programming and the base of all programming language


    The different languages are for specialization. You can do an entire accounting program in PHP for example but that's so you can put it on a server or website. Some languages you use so that there is no need to make windows and linux versions.
  11. Ijack said:
    dmaag54 said:
    Ijack said:
    TBH, Windows is just as good a platform to learn programming on as Linux (probably better if you are already familiar with Windows). As far as Linux is concerned, any distribution will do. If you go with Windows then I'd recommend starting with C#, using the free Visual Studio Express. That provides a superb environment to produce quite sophisticated GUI programs.

    If you want to get into programming seriously then one of the mainstream languages (C++, C#, Java) will serve you well. As they are very similar, once you have learnt one it is easy to learn the others. The great thing is that nowadays there are a wealth of free programming environments, and great documentation and tutorials, availbale.


    thats what one of my friends was telling me about programming but the only problem is with windows its all icon based and very little to learn as far as i know could you explain for how i could learn with window and i was thinking of c++for the fact that i could transfer to gaming programming if i will the need


    I'm afraid that I don't understand what you mean by saying that Windows is icon based. Sure it has a GUI, just like Linux does, but it also has a command-line interface, just like Linux does.

    Visual C++ Express is a really good environment for C++ programming, be it command-line tools, GUI programs or standalone games. Other programming environments exist on both Windows and Linux. The only aspect of programming where I would strongly recommend Linux over Windows is if you are writing an Operating System; if you are new to programming then that's probably a few years down the line.


    im talking about how widows 7 is alll icons and not by having to type everything thats what i have on my desktop so my question is how would window be better then Linux for learn programming if all i have to do is click on a icon to get where i need to go. what programs would i need to use to learn mainly C++
  12. Maybe to understand what is meant by programming languages read this
    http://en.wikipedia.org/wiki/Computer_programming

    Then for code on how to print Hello World! on your screen look here
    http://c2.com/cgi/wiki?HelloWorldInManyProgrammingLanguages
  13. Best answer
    dmaag54 said:
    Ijack said:
    TBH, Windows is just as good a platform to learn programming on as Linux (probably better if you are already familiar with Windows). As far as Linux is concerned, any distribution will do. If you go with Windows then I'd recommend starting with C#, using the free Visual Studio Express. That provides a superb environment to produce quite sophisticated GUI programs.

    If you want to get into programming seriously then one of the mainstream languages (C++, C#, Java) will serve you well. As they are very similar, once you have learnt one it is easy to learn the others. The great thing is that nowadays there are a wealth of free programming environments, and great documentation and tutorials, availbale.


    thats what one of my friends was telling me about programming but the only problem is with windows its all icon based and very little to learn as far as i know could you explain for how i could learn with window and i was thinking of c++for the fact that i could transfer to gaming programming if i will the need

    He's right, though. Linux is great for programming, but one thing to keep in mind is that you'll be railroaded into the Free and Open Source Software mindset, which may or may not be what you're looking for.

    If you're interested in Linux, go for it. But there is absolutely no reason to switch to Linux to learn programming. Windows can be just as good of an environment for programming, and depending on your goals, it could be better. Honestly, if I wanted to get into creating games, I would want to do it on Windows. If you're interested in C++, there is no better IDE than Visual Studio, which you can get for free with the Express edition. Even if you're interested in Python, you can do that in Windows, too.

    So my advice to you is if you're interested in Linux and FOSS, go for it. But if you're just interested in learning to program games in C++, then Windows and Visual C++ Express is the way to go, by far.

    After you make your decisions on your goals and what kind of games you want to make, we can help you with more advice at that time.
  14. dmaag54 said:

    but i thought C and C++ are the most used in programming and the base of all programming language


    Though they are widely used (for many reasons including C being insanely fast compared to some other languages like python) C and C++ are not the 'base' of all programming language. They are just two in an ocean of different languages.

    Suggest picking up python simply because it is 1000x easier to understand than C or Java. C can take many years to learn. Python you can pick up and use in less than a month.
  15. Quote:
    im talking about how widows 7 is alll icons and not by having to type everything thats what i have on my desktop so my question is how would window be better then Linux for learn programming if all i have to do is click on a icon to get where i need to go. what programs would i need to use to learn mainly C++

    Linux is no different to Windows in this respect; it's just that you are familiar with the Windows GUI but not (yet) with the Linux one - begging the question that there are a host of Linux GUIs.

    From the perspective of learning how to program it makes not one iota of difference; in either case you still need to write the code, select the appropriate algorithms and data structures, and understand those algorithms.
  16. Quote:
    C can take many years to learn.

    I'd have to disagree with that. C is a very powerful language but, with the right tutorial material, it is just as easy to pick up the basics of it as any other language. The real art of programming is understanding data structures and algorithms and getting a grasp of the library routines. The mechanics of a particular language are not that different to any other. The advantage of learning one of the C family of languages is that you learn one and you have a huge head start with the rest as they are so similar in syntax.
  17. thank you everyone for all the information that i would need for learning and understanding how to program
  18. dmaag54 said:

    I'd have to disagree with that. C is a very powerful language but, with the right tutorial material, it is just as easy to pick up the basics of it as any other language. The real art of programming is understanding data structures and algorithms and getting a grasp of the library routines. The mechanics of a particular language are not that different to any other. The advantage of learning one of the C family of languages is that you learn one and you have a huge head start with the rest as they are so similar in syntax.


    I come to opposite conclusion. Much easier to focus problems and implement most all algorithms in python, sciPi, Matlab, R then if need more speed consider C implementation. Defining and manipulating structures is so easy in those compared to C, but C has advantage of low level access and optimizations which do take much time to learn.
  19. If you've decided that you want to learn C++ or even C#, go download the desktop version of Visual Studio Express, and set it up for whichever language you are going to work with. Then if you want to learn C++, here is a pretty good tutorial to learn the language. After you have a good grasp on programming, which will not happen in one day, if you want to start working with 2D games, one solution that is made for C++ is SFML, which is very easy to use. If you want to mess with 3D gaming, then you'll either want to find 3D graphic models you can download and use, or check into the free Blender 3D modeling software, which will probably take you a long time to master. Then you can start looking into some of the free 3D game engines to mess around with. A few choices are Unity, OGRE, and Irrlicht Engine.

    skittle said:
    dmaag54 said:

    I'd have to disagree with that. C is a very powerful language but, with the right tutorial material, it is just as easy to pick up the basics of it as any other language. The real art of programming is understanding data structures and algorithms and getting a grasp of the library routines. The mechanics of a particular language are not that different to any other. The advantage of learning one of the C family of languages is that you learn one and you have a huge head start with the rest as they are so similar in syntax.


    I come to opposite conclusion. Much easier to focus problems and implement most all algorithms in python, sciPi, Matlab, R then if need more speed consider C implementation. Defining and manipulating structures is so easy in those compared to C, but C has advantage of low level access and optimizations which do take much time to learn.

    But again, it all depends on what the OP's goals are. He said he wants to learn game programming. If all he wants to do is mess with simple 2D gaming, then we do have PyGame, which makes good use of Python. But if he wants to go beyond what PyGame can handle, then C/C++, or even C# in some cases, is going to be his best bet. Most game engines and libraries are going to use C or C++ natively, and if you're lucky, they may have a wrapper for other languages, which is really just a hack.

    I agree that Python is an easy way to get your foot in the programming door, but honestly, so is C#. And learning C# is going to do a lot more for helping him to transition to C++ later. I have experience with Python, Visual Basic, C#, C++, Java, and some javascript and PHP. What I've learned is that once you've learned the basics of how programming works, and have an understanding of Object Oriented Programming, you can learn about any programming language or API very quickly. Once you get those basics, it's much more valuable to hone your algorithm solving techniques, which can be used in any language.
  20. skittle said:
    dmaag54 said:

    I'd have to disagree with that. C is a very powerful language but, with the right tutorial material, it is just as easy to pick up the basics of it as any other language. The real art of programming is understanding data structures and algorithms and getting a grasp of the library routines. The mechanics of a particular language are not that different to any other. The advantage of learning one of the C family of languages is that you learn one and you have a huge head start with the rest as they are so similar in syntax.


    I come to opposite conclusion. Much easier to focus problems and implement most all algorithms in python, sciPi, Matlab, R then if need more speed consider C implementation. Defining and manipulating structures is so easy in those compared to C, but C has advantage of low level access and optimizations which do take much time to learn.


    If you want something done right, you do it in C.

    C is a not a difficult language to learn, but it is very difficult to master.

    Whereas other languages are typically quite wide and shallow, providing an enormous library of functions to work with yet providing no real control over the programs structure or memory management, C is very deep and narrow, providing only the essential tools for a programmer to have absolute control over his or her work.

    Keep in mind that C was designed to make an entire operating system platform portable (save for some hardware specific stuff), and this is still very much the way things are done today.

    https://www.youtube.com/watch?v=1S1fISh-pag
  21. Pinhedd said:
    skittle said:
    dmaag54 said:

    I'd have to disagree with that. C is a very powerful language but, with the right tutorial material, it is just as easy to pick up the basics of it as any other language. The real art of programming is understanding data structures and algorithms and getting a grasp of the library routines. The mechanics of a particular language are not that different to any other. The advantage of learning one of the C family of languages is that you learn one and you have a huge head start with the rest as they are so similar in syntax.


    I come to opposite conclusion. Much easier to focus problems and implement most all algorithms in python, sciPi, Matlab, R then if need more speed consider C implementation. Defining and manipulating structures is so easy in those compared to C, but C has advantage of low level access and optimizations which do take much time to learn.


    If you want something done right, you do it in C.

    C is a not a difficult language to learn, but it is very difficult to master.

    Whereas other languages are typically quite wide and shallow, providing an enormous library of functions to work with yet providing no real control over the programs structure or memory management, C is very deep and narrow, providing only the essential tools for a programmer to have absolute control over his or her work.

    Keep in mind that C was designed to make an entire operating system platform portable (save for some hardware specific stuff), and this is still very much the way things are done today.

    https://www.youtube.com/watch?v=1S1fISh-pag


    well i know its not C but i have looked up a PDF file for C++ to understand and get a basic grasp on what it is i would like to learn
  22. dmaag54 said:
    Pinhedd said:
    skittle said:
    dmaag54 said:

    I'd have to disagree with that. C is a very powerful language but, with the right tutorial material, it is just as easy to pick up the basics of it as any other language. The real art of programming is understanding data structures and algorithms and getting a grasp of the library routines. The mechanics of a particular language are not that different to any other. The advantage of learning one of the C family of languages is that you learn one and you have a huge head start with the rest as they are so similar in syntax.


    I come to opposite conclusion. Much easier to focus problems and implement most all algorithms in python, sciPi, Matlab, R then if need more speed consider C implementation. Defining and manipulating structures is so easy in those compared to C, but C has advantage of low level access and optimizations which do take much time to learn.


    If you want something done right, you do it in C.

    C is a not a difficult language to learn, but it is very difficult to master.

    Whereas other languages are typically quite wide and shallow, providing an enormous library of functions to work with yet providing no real control over the programs structure or memory management, C is very deep and narrow, providing only the essential tools for a programmer to have absolute control over his or her work.

    Keep in mind that C was designed to make an entire operating system platform portable (save for some hardware specific stuff), and this is still very much the way things are done today.

    https://www.youtube.com/watch?v=1S1fISh-pag


    well i know its not C but i have looked up a PDF file for C++ to understand and get a basic grasp on what it is i would like to learn


    C++ is a superset of C. You can learn C first and then carry that all forward to C++
  23. WoodenSaucer said:
    dmaag54 said:

    well i know its not C but i have looked up a PDF file for C++ to understand and get a basic grasp on what it is i would like to learn
    You can also look up that C++ tutorial I linked to in my last post. It's a very good resource for learning.

    Pinhedd said:

    C++ is a superset of C. You can learn C first and then carry that all forward to C++

    Or on the other hand, if you learn C++ first, you can pretty much already program in C if you think procedurally instead of object oriented. In my opinion in modern programming, it's probably more important now to learn C++ and the object oriented way. It's being used a lot more now than it was in the past. That's what I did, and then when I ran into things that required straight C, it wasn't a problem at all. I've found that if you start off with procedural programming, you get that ingrained in your mind, and it's a lot harder to understand the concept of object oriented programming than if you would have just started with OOP. It's a lot easier to go from OOP to procedural.


    I disagree.

    Learning C++ before learning C is akin to learning to walk before learning to crawl. It's possible, but it almost always leads to bad habits that can be very hard to break. I've seen tons and tons of downright terrible Java/C++ code because it was written by someone who had never worked in a purely procedural mindset.

    On the other hand, I've never personally met someone who had a hard time adopting C++ after they were comfortable with C so I strongly disagree with your assertion that it's a lot easier to go from OOP to procedural than vice versa. Academically speaking, object-oriented programming is an extension of procedural programming. Microprocessors are inherently procedural devices, so thinking in imperative terms first and then using an object-oriented framework to make one's life easier is in my opinion the correct approach to solving a particular problem. C++ has some nice features to expedite development, but only a small handful of those features cannot be implemented in C through some clever data manipulation. Creating a basic object framework in C is an exercise that should be done by anyone who wishes to truly understand the way C/C++ work.
  24. Pinhedd said:
    While I am not a fan of C++, that is for reasons unrelated to teaching. C++ gives programmers a lot of power and without a solid understanding of what actually goes on, this power tends to either get abused or used incorrectly.

    C forces the author to write a substantial amount of foundational boilerplate to solve even the most trivial of problems and it is through this repetitive low-level code that understanding of programming as a profession develops.

    I have taught and tutored many people, several of which went on to work with it professionally as well. I always start by telling them to forget everything that they learned about C++/Java/C#/Python/PHP/whatever, we work in C and we start with the very basics. It's a very deep and narrow language which provides a lot of fine grained control without any of the clutter of a massive standard library (I'm looking at you .NET 4.5), frankenstein syntax (I'm looking at you C++), or absence of the tools needed to demonstrate fundamental concepts (I'm looking at you Java). A good knowledge of C provides the foundation for every other programming language in existence (except for ECMAScript, I have no idea what's going on there) so mastering it first will make it easier to adopt a new language later on without encountering fundamental knowledge gaps.


    i do apologize ahead of time to all that read this but for me to get a basic understanding are you trying to say that if i were to learn C++ before C would that be a metaphor similar to learning variables before learning your basic math skill like addition and subtraction?
  25. dmaag54 said:
    Pinhedd said:
    While I am not a fan of C++, that is for reasons unrelated to teaching. C++ gives programmers a lot of power and without a solid understanding of what actually goes on, this power tends to either get abused or used incorrectly.

    C forces the author to write a substantial amount of foundational boilerplate to solve even the most trivial of problems and it is through this repetitive low-level code that understanding of programming as a profession develops.

    I have taught and tutored many people, several of which went on to work with it professionally as well. I always start by telling them to forget everything that they learned about C++/Java/C#/Python/PHP/whatever, we work in C and we start with the very basics. It's a very deep and narrow language which provides a lot of fine grained control without any of the clutter of a massive standard library (I'm looking at you .NET 4.5), frankenstein syntax (I'm looking at you C++), or absence of the tools needed to demonstrate fundamental concepts (I'm looking at you Java). A good knowledge of C provides the foundation for every other programming language in existence (except for ECMAScript, I have no idea what's going on there) so mastering it first will make it easier to adopt a new language later on without encountering fundamental knowledge gaps.


    i do apologize ahead of time to all that read this but for me to get a basic understanding are you trying to say that if i were to learn C++ before C would that be a metaphor similar to learning variables before learning your basic math skill like addition and subtraction?


    A better example would be learning set theory before learning basic arithmetic. The former does not strictly follow from the latter, but it is highly encouraged which is why we are taught addition in elementary school and set theory in high school / university.

    What I like most about C is that it lacks any real sense of abstraction.

    The only data types that you have to worry about in C are integral numbers (integers constrained to a compiler specific size), floating point numbers (machine approximation of real numbers), and addresses/pointers (which are themselves just integral numbers of a machine specific size). All the C data types are just variations or composites of these, and this is true for all programming languages because that's all that microprocessors understand. Tacking on high-level concepts such as templates, objects, classes, and generics only automates and hides the management of these, it does not get rid of them.

    If you really want to understand the process of programming, then C is the place to start. Once you're comfortable with the language and the mathematical/scientific concepts behind low-level computation you can move up to a higher-level language of your choice and you will be able to appreciate it much more than you would if you had started there in the first place.
  26. While I am not a fan of C++, that is for reasons unrelated to teaching. C++ gives programmers a lot of power and without a solid understanding of what actually goes on, this power tends to either get abused or used incorrectly.

    C forces the author to write a substantial amount of foundational boilerplate to solve even the most trivial of problems and it is through this repetitive low-level code that understanding of programming as a profession develops.

    I have taught and tutored many people, several of which went on to work with it professionally as well. I always start by telling them to forget everything that they learned about C++/Java/C#/Python/PHP/whatever, we work in C and we start with the very basics. It's a very deep and narrow language which provides a lot of fine grained control without any of the clutter of a massive standard library (I'm looking at you .NET 4.5), frankenstein syntax (I'm looking at you C++), or absence of the tools needed to demonstrate fundamental concepts (I'm looking at you Java). A good knowledge of C provides the foundation for every other programming language in existence (except for ECMAScript, I have no idea what's going on there) so mastering it first will make it easier to adopt a new language later on without encountering fundamental knowledge gaps.
  27. Pinhedd said:
    dmaag54 said:
    Pinhedd said:
    While I am not a fan of C++, that is for reasons unrelated to teaching. C++ gives programmers a lot of power and without a solid understanding of what actually goes on, this power tends to either get abused or used incorrectly.

    C forces the author to write a substantial amount of foundational boilerplate to solve even the most trivial of problems and it is through this repetitive low-level code that understanding of programming as a profession develops.

    I have taught and tutored many people, several of which went on to work with it professionally as well. I always start by telling them to forget everything that they learned about C++/Java/C#/Python/PHP/whatever, we work in C and we start with the very basics. It's a very deep and narrow language which provides a lot of fine grained control without any of the clutter of a massive standard library (I'm looking at you .NET 4.5), frankenstein syntax (I'm looking at you C++), or absence of the tools needed to demonstrate fundamental concepts (I'm looking at you Java). A good knowledge of C provides the foundation for every other programming language in existence (except for ECMAScript, I have no idea what's going on there) so mastering it first will make it easier to adopt a new language later on without encountering fundamental knowledge gaps.


    i do apologize ahead of time to all that read this but for me to get a basic understanding are you trying to say that if i were to learn C++ before C would that be a metaphor similar to learning variables before learning your basic math skill like addition and subtraction?


    A better example would be learning set theory before learning basic arithmetic. The former does not strictly follow from the latter, but it is highly encouraged which is why we are taught addition in elementary school and set theory in high school / university.

    What I like most about C is that it lacks any real sense of abstraction.

    The only data types that you have to worry about in C are integral numbers (integers constrained to a compiler specific size), floating point numbers (machine approximation of real numbers), and addresses/pointers (which are themselves just integral numbers of a machine specific size). All the C data types are just variations or composites of these, and this is true for all programming languages because that's all that microprocessors understand. Tacking on high-level concepts such as templates, objects, classes, and generics only automates and hides the management of these, it does not get rid of them.

    If you really want to understand the process of programming, then C is the place to start. Once you're comfortable with the language and the mathematical/scientific concepts behind low-level computation you can move up to a higher-level language of your choice and you will be able to appreciate it much more than you would if you had started there in the first place.


    thank you so much thats the kind of answer i have been trying to understand where a good starting point would be
  28. dmaag54 said:

    well i know its not C but i have looked up a PDF file for C++ to understand and get a basic grasp on what it is i would like to learn
    You can also look up that C++ tutorial I linked to in my last post. It's a very good resource for learning.

    Pinhedd said:

    C++ is a superset of C. You can learn C first and then carry that all forward to C++

    Or on the other hand, if you learn C++ first, you can pretty much already program in C if you think procedurally instead of object oriented. In my opinion in modern programming, it's probably more important now to learn C++ and the object oriented way. It's being used a lot more now than it was in the past. That's what I did, and then when I ran into things that required straight C, it wasn't a problem at all. I've found that if you start off with procedural programming, you get that ingrained in your mind, and it's a lot harder to understand the concept of object oriented programming than if you would have just started with OOP. It's a lot easier to go from OOP to procedural.
  29. So C is a natural, humane way to program, like using Fortran or Basic while C++ is like rabies or AIDs that corrupts the very intellectual systems it is supposed to augment. Did I get that right ... hehehe?


    WoodenSaucer said:
    dmaag54 said:

    well i know its not C but i have looked up a PDF file for C++ to understand and get a basic grasp on what it is i would like to learn
    You can also look up that C++ tutorial I linked to in my last post. It's a very good resource for learning.

    Pinhedd said:

    C++ is a superset of C. You can learn C first and then carry that all forward to C++

    Or on the other hand, if you learn C++ first, you can pretty much already program in C if you think procedurally instead of object oriented. In my opinion in modern programming, it's probably more important now to learn C++ and the object oriented way. It's being used a lot more now than it was in the past. That's what I did, and then when I ran into things that required straight C, it wasn't a problem at all. I've found that if you start off with procedural programming, you get that ingrained in your mind, and it's a lot harder to understand the concept of object oriented programming than if you would have just started with OOP. It's a lot easier to go from OOP to procedural.
  30. You're very welcome. Feel free to PM me with any questions that you may have in the future
  31. In my opinion, some of this talk is a bunch of BS. It's the age old argument between people whose preferences are either C or C++. It's an argument that will never die. The honest truth is that there are uses for both. C++ is the evolution of C. If you're going to do kernel programming or straight winAPI programming, then you'll go with C or even assembly. But the fact is that there are many, many very popular APIs, toolkits, and libraries that require C++, and you just can't use them with only a knowledge of C.

    If anyone ever tells you that one certain programming language is the right language in every single case, they're deceiving you. You use whatever language is best for the project you're working on. Sometimes it's C, sometimes it's C++. In some places you're going to have to use Java. Heck, I had one project that I was going to do in C++, but Visual Basic ended up being the best language in that particular case. The only programmers in the world who will say that C++ is irrelevant or the "rabies" of C are C purists who are willing to go out of their way figuring out ways to do things in C that are much simpler to do in C++ with Object Oriented Programming.

    It's ok if you think it will be easier to start with C and progress to C++. But don't tell me that C++ is a crap language. Every language has its place. There are no crap languages, only crap algorithms.
  32. WoodenSaucer said:
    In my opinion, some of this talk is a bunch of BS. It's the age old argument between people whose preferences are either C or C++. It's an argument that will never die. The honest truth is that there are uses for both. C++ is the evolution of C. If you're going to do kernel programming or straight winAPI programming, then you'll go with C or even assembly. But the fact is that there are many, many very popular APIs, toolkits, and libraries that require C++, and you just can't use them with only a knowledge of C.

    If anyone ever tells you that one certain programming language is the right language in every single case, they're deceiving you. You use whatever language is best for the project you're working on. Sometimes it's C, sometimes it's C++. In some places you're going to have to use Java. Heck, I had one project that I was going to do in C++, but Visual Basic ended up being the best language in that particular case. The only programmers in the world who will say that C++ is irrelevant or the "rabies" of C are C purists who are willing to go out of their way figuring out ways to do things in C that are much simpler to do in C++ with Object Oriented Programming.

    It's ok if you think it will be easier to start with C and progress to C++. But don't tell me that C++ is a crap language. Every language has its place. There are no crap languages, only crap algorithms.


    At no point did I say that C++ is a crap language. I said that it's a poor language for teaching fundamentals and good practices.
  33. Pinhedd said:
    WoodenSaucer said:
    In my opinion, some of this talk is a bunch of BS. It's the age old argument between people whose preferences are either C or C++. It's an argument that will never die. The honest truth is that there are uses for both. C++ is the evolution of C. If you're going to do kernel programming or straight winAPI programming, then you'll go with C or even assembly. But the fact is that there are many, many very popular APIs, toolkits, and libraries that require C++, and you just can't use them with only a knowledge of C.

    If anyone ever tells you that one certain programming language is the right language in every single case, they're deceiving you. You use whatever language is best for the project you're working on. Sometimes it's C, sometimes it's C++. In some places you're going to have to use Java. Heck, I had one project that I was going to do in C++, but Visual Basic ended up being the best language in that particular case. The only programmers in the world who will say that C++ is irrelevant or the "rabies" of C are C purists who are willing to go out of their way figuring out ways to do things in C that are much simpler to do in C++ with Object Oriented Programming.

    It's ok if you think it will be easier to start with C and progress to C++. But don't tell me that C++ is a crap language. Every language has its place. There are no crap languages, only crap algorithms.


    At no point did I say that C++ is a crap language. I said that it's a poor language for teaching fundamentals and good practices.

    I wasn't addressing you as much as I was the deductions people were making from what you said. Especially when nss000 said, "C++ is like rabies or AIDs that corrupts the very intellectual systems it is supposed to augment."

    And I disagree with you, anyway. You can teach good or bad practices in C++, as well as C.
  34. Pinhedd said:


    A better example would be learning set theory before learning basic arithmetic. The former does not strictly follow from the latter, but it is highly encouraged which is why we are taught addition in elementary school and set theory in high school / university.


    Ironically it turns out that you need to use set theory to define basic operators like addition/subtraction and even what an "integer" is defined to be.

    While most (if not all) grade schools will gloss over the romantic details, certainly they give students an intuitive interpretation . eg 'the set of' all whole apples and later on defining 'half' an apple etc..
  35. Now now BigS, let's not jump overboard. I've had my share of advanced abstract maths. It's a pure affectation to claim set-theory is needed to **define** simple maths procedures. In fact using a **constructive** definition of maths no set exists for which its member-generative arithmetic operations cannot be pre-defined.

    Yes indeed maths DOES permit me to consistently impose such restrictions ... and if some other patzer like Gauss or Frege or Cantor wants to define something else then let them skylark away ...

    skittle said:
    Pinhedd said:


    A better example would be learning set theory before learning basic arithmetic. The former does not strictly follow from the latter, but it is highly encouraged which is why we are taught addition in elementary school and set theory in high school / university.


    Ironically it turns out that you need to use set theory to define basic operators like addition/subtraction and even what an "integer" is defined to be.

    While most (if not all) grade schools will gloss over the romantic details, certainly they give students an intuitive interpretation . eg 'the set of' all whole apples and later on defining 'half' an apple etc..
  36. Pinhedd said:
    You're very welcome. Feel free to PM me with any questions that you may have in the future


    i only say this in a half joking matter because i been known to ask too many question according to a buddy of mine. but all in all i have been trying to work my ass off to learn C++ and understand it as if it were basic math so thank you an i will keep that in mind for the future.
Ask a new question

Read More

Software Programming Linux