So I'm bored and I wanna learn something new since im using a ubuntu system I was reading and this is a paragraph I found I just wanted to see if other people agreed with this
C is not usually a great language to begin programming with but it is the most powerful programming language in popular use. If you need speed and efficiency, C is the best choice. The Linux kernel, the heart of the Ubuntu operating system, is written in C. C++ is mostly an extension of C. C++ has the main advantage of being an Object Oriented language. (With some talent C can also be used for OOP). To use C and C++ you will need to do to install the build-essential package.
I have trouble understanding things like classes and inheritance in more object oriented programming. My preference in languages is C and has always been C. It seems easier to me and more structure oriented.
Check out the Allegro library, it's a great place to begin making 2D games in C. It's suprisingly easy.
i really like C, to put it bluntly, it forces you to be precise, plus i bought this book, (http://www.amazon.co.uk/Safer-High-Integrity-Safety-Critical-McGraw-Hill...) it's pretty interesting, only get it if you don't mind some heavy reading, there isn't a lot of code in there but it does gt you thinking about how "safe" is my code really. 8 times out of ten you'll find it's not safe at all.
I like the control you get with C i tried writing my own bootstrapper with it but online help and various tutorials etc just don't cut it. I need to afford a good book on compiler theory.
But if you're starting out on C (http://www.amazon.co.uk/C-Programming-Language-2nd/dp/0131103628/ref=sr_...) that book is an absolute MUST, it's not too expensive and is the definitive guide to C. There is a reason its 4 and a half star ratings from 104 customer reviews
. Plus if you use linux, that last line of your quote is incorrect, i believe most popular distros come with gcc, as far as i know anyway. Just jump onto terminal in linux and type "gcc man".
C programming is so easy in linux, so I'd recommend starting with C to anyone. I'd probably then recommend C++ in linux, then move over to windows to explore the windows libraries. My language timeline went something like, VB6/VBA then C++, then C++.net, then C, then VB.net then C#.net, then F# and Lisp, then (ONLY because the company i worked at for a few months were using GSP) Groovy...
then Java for my course.
Excuse the newb here, but when you guys talk about C are you talking about C# or are they two different languages? My guess is they have something in common considering they share the "C".
C is very, very different from C#.
Ah, thought so.
C is a fine language for beginners as long as you have proper motivation, patience, and direction. Missing any of those, you'll likely be better off starting high-level and learning C later. But as long as you keep learning and making sure you take the time to research "best practices", it doesn't really matter what language you start out with. All the hard stuff in programming is pretty much the same no matter what language you use.
From what I have seen, high level languages are often used as beginner languages since they are more rewarding. If you start with C, it may be a few months before you are proficient enough to write a simple application while using good practices. Its also far easier to fall into bad practices in lower-level languages, which means you spend more time learning how NOT to use the language instead of just how to use the language (especially with C++). High-level languages also let you be far more productive while knowing far less about computers and programming, which is important for those who are just starting out.
In most applications, performance really isn't that important. Would any of you care, or even notice, if your browser's "find on page" feature took twice as long and allocated 5x as much temporary memory? Very doubtful. But would you notice if the search missed words, broke with certain input values, or crashed? Definitely. Constant-complexity optimizing is fun, but in most real-world scenarios, its a waste of time unless benchmarking proves it to be a bottleneck. Algorithmic complexity on the other hand often is important and can introduce greatly more significant increases/decreases in performance. It is also easiest to do on a high level since it is a design problem, not an "instruction" problem.