|
OK, now that we're done with that awful play on words(letter?), let me get straight to the point:
I want to learn to code in C! I have downloaded and installed Xcode on mac(it wouldn't complete though, what is that about? It said 2 minutes remaining for 12 hours, so I just turned the computer off, and when I started it again it was installed).
What I'm looking for is to get a better overview over the whole process(why the files and folders are where they are in a project), as well as just learning to code.
It would be awesome if anyone knew a site like http://www.codecademy.com/ but for C!
   
|
Honestly, you're probably best off learning C#, learning a .Net language actually has some real world applications and can allow you to program software for anyone on an MS Windows platform. Microsoft has made it clear that's the direction they want to go with .Net, and the more complicated aspects of C++ such as writing to specific memory bits has been removed. MSDN has some really good tutorials and has a number of chapters of some good books on learning .Net languages for free.
If you're not interested in .Net, I would say 100% you should look to learn Java (not actually all that different from C++), that would actually be useful for programming apps and cross-platform software.
|
I want to learn C because I will be using it later in my education. What is the difference between C++ and C#?
|
On April 23 2012 23:26 Arnstein wrote: I want to learn C because I will be using it later in my education. What is the difference between C++ and C#? C# is easier and for beginners, it has garbage collection just like java, so u dont need worry about memory leaks...
C is for advanced programmers, but C runs much faster than C# though
correct me if im wrong
edit. there are more difference between those, i just mentioned some most important.
|
Ah, ok. But I'll just start with C anyways
|
Learning C++ is pretty hard, but also very rewarding. You can also easily transfer your knowledge to other languages, once you've mastered the "first levels". If you're entirely inexperienced with programming, I'd suggest that you might try one of the "easier" languages first (such as C#), because the sheer power of C++ is pretty intimidating sometimes.
Don't learn C, though, unless you're planning to study software engineering. C is used to design operating systems and other software that's "close to the hardware". (don't know how to put this in english sry)
|
On April 24 2012 00:52 virpi wrote: If you're entirely inexperienced with programming, I'd suggest that you might try one of the "easier" languages first (such as C#), because the sheer power of C++ is pretty intimidating sometimes.
Actually Visual Basic is probably one of the easiest languages to learn. I'm no CS major, and despite my short attention span even I was able to learn enough VB to make some simple desktop applications. It has some real world applications too, such as being able to write macros in MS Office. Plus many of the concepts transfer pretty easily to other .Net languages like C#.
|
Well, I will study technical cybernetics, and will do a lot of C, so I just want to start a year early trying to get the hang of it
|
I started learning c++ a year ago as my first programming language. Everything is going allright and I never found it intimidating or anything. IF you jsut start at the basics and slowly work your way upwards then it is doable.
|
I went to that codeacademy site, kinda dumb. Just grab a programming book for noobs or google cprogramming and start coding. Don't know why you would want to learn old C first, but hey that's your choice. Even if you wanted to learn COBOL I wouldn't stop you. use google and your success is determined by your motivation and self-discipline. Good luck.
|
If you have your heart set on C then my advice would be to grab a solid book on learning C for beginners and work through it from start to finish. C is closer to the metal than many languages and there is a lot of knowledge you'll need that can't be gleaned *easily* from reverse engineering existing programs such as memory management, memory structure layout, pointers, etc A good book will be able to introduce and explain in a way that you'll be able to pick it up more quickly.
Finding someone with a lot of experience in C that you can ask questions of would also be a big help.
|
You definately want to learn C first (the book I link actually teaches you a simple RISC assembly, which I think is the best way to learn C), especially if you're just doing this as a hobby. While you won't be a productive as you would be learning a high-level language you'll understand a whole lot more.
The intro to programming class at my school used this
http://highered.mcgraw-hill.com/sites/0072467509/
and I highly recommend it. It's particularly useful if you're interested in learning programming just for fun, as it will teach you what's actually going on inside your computer.
Additionally, I would recommend learning to use a proper editor (I use emacs, but vim is fine too), make, gcc, and the command line. When you're learning how to program an IDE (like Xcode) can actually complicate things as it will hide a lot of what's going on. Learning to use a Unix-like operating system (I use Gentoo, a Linux distribution) is also a huge plus, but as your on Mac OS X you'll be alright (there's some Unix in OSX if you look hard enough ).
Good luck!
|
I friggin bought an entire book to learn C. Only to learn that I have no talent whatsoever to do learn it, took me weeks just to learn how compile my simple lines of code.
|
|
Don't start with C. It'll teach you the wrong stuff. You're better off learning something else that's actually useful. C actually will hinder your learning later on.
|
Rather than learning C or C++, how come you guys haven't suggest to just learn Java? I read that it's similar to C++ but better and more convenient. Correct if I'm wrong because I'm trying to learn too.
EDIT: just noticed that someone mentioned Java, can anyone further elaborate on it?
|
On April 24 2012 02:47 Inori wrote:Show nested quote +On April 24 2012 02:01 Snuggles wrote: I friggin bought an entire book to learn C. Only to learn that I have no talent whatsoever to do learn it, took me weeks just to learn how compile my simple lines of code. There's no such thing as "no talent to learn it". You might not have genius skills to hack google at 15, but to learn how to code and eventually get senior dev position - anyone can achieve that. Literally, anyone. I agree that anyone can do it, but there is definitely talent or a particular way of thinking that makes progress much faster for learning how to code.
|
From my experience, Java or C# is probably easier to pick up and is good for teaching abstraction, etc. C requires a little more bookkeeping from the programmer in terms of memory management/pointers, but can be written to run faster than Java. C++ is extremely powerful but quite a bit different than the other languages to learn -- what is properly written code in C will often work on C++, but will almost inevitably be a suboptimal implementation in C++.
Of course, the language you should start with depends on what you want to do with it...
|
Nobody has mentioned it yet, but I'll even put in a vote for learning Objective-C if you happen to be on a Mac. Working with Objective-C and Cocoa is actually really nice and you can go from learning to making a real desktop/iOS application pretty quickly. Objective-C still lets you learn about object oriented programming, and you can also make use of C structures (and c++ but I would steer away from that if you're just learning) easily.
It might not be as valuable for employment, unless you're looking into iOS or Mac development. But once you've learned one language it's really not difficult to pick up more in the future.
|
On April 24 2012 02:48 fire_brand wrote: Don't start with C. It'll teach you the wrong stuff. You're better off learning something else that's actually useful. C actually will hinder your learning later on. Learning C will not teach you the "wrong stuff", whatever that is, and C is definitely useful.
|
|
|
|