Page 1 of 2

Learning C

Posted: 25 Jun 2008, 06:31
by REVENGE
Hey guys, I'm currently taking an introductory programming class in C, and I don't have the textbook yet. What would you guys recommend that is free and online and can help me learn C the fastest?

Re: Learning C

Posted: 25 Jun 2008, 08:13
by Dragon45
Google:

K&R
Deitel & Deitel
O'Reilly

any one of those is fantastic.

Re: Learning C

Posted: 25 Jun 2008, 08:46
by AF
I would skip C and go to modern C++

Re: Learning C

Posted: 25 Jun 2008, 10:39
by Dragon45
REVENGE wrote:Hey guys, I'm currently taking an introductory programming class in C, and I don't have the textbook yet. What would you guys recommend that is free and online and can help me learn C the fastest?
af should have learned to read english in school

Re: Learning C

Posted: 25 Jun 2008, 11:05
by AF
C->C++->Modern C++

People tend to get confused by C and old C++ which slows them down, and eventually they get to modenr C++ with STL library and the better ways of doing things and realize a lot of what they learnt was unnecessary.

Re: Learning C

Posted: 25 Jun 2008, 11:21
by imbaczek
K&R 2nd ed.

Also, C++ is a completely different language, don't believe people when they say that knowing C will dramatically help you with C++. It'll help, but only a little bit.

Re: Learning C

Posted: 25 Jun 2008, 11:41
by Dragon45
bad -m

Re: Learning C

Posted: 25 Jun 2008, 12:19
by Acidd_UK
Don't learn C, learn Python! You can always write C interfaces for it later on!

Re: Learning C

Posted: 25 Jun 2008, 12:37
by REVENGE
Sorry, I'm taking this class because it's a requirement for my major. Otherwise, I would definitely be more interested in learning C++ and Python. I'd probably pick up Python on the side regardless.

Re: Learning C

Posted: 25 Jun 2008, 13:12
by Peet
ENGINEERING STUDENT

Get him!

Re: Learning C

Posted: 25 Jun 2008, 16:02
by Dash_Riprock
A lot of small microprocessors that they use in robots and stuff natively support only C.

Re: Learning C

Posted: 25 Jun 2008, 18:10
by imbaczek
...which is not surprising, since C is basically a set of assembly macros.

Re: Learning C

Posted: 25 Jun 2008, 19:44
by Tobi
Learn C, then skip C++ and go straight for C#, unless you want to become shell extension developer, kernel (driver) developer or other close to the hardware stuff. Or if you want to go cross platform learn python after C (or maybe at same time even).

C is still manageable to learn (contrary to C++) and will give you a decent understanding of how memory/cpu works on lower level without needing to dig into assembler.

C++ gives you the disadvantages of C, plus a whole bunch of other disadvantages.

C# gives you the advantages of C++ without the disadvantages of either C or C++, plus a whole bunch of other advantages :-)

Re: Learning C

Posted: 25 Jun 2008, 21:16
by Erom
I spend time programming in C for microprocessors pretty often. Still a useful language for certain applications. Yes, yes, I am an engineer.

Fortunately we have a better c programmer in house as well, because I'm pretty bad at it - much better at the hardware!

Re: Learning C

Posted: 25 Jun 2008, 23:49
by Tribulexrenamed
Learn C in a more typographic rather than algorithmic or logical way.

I liked the python idea.

Re: Learning C

Posted: 26 Jun 2008, 03:03
by PauloMorfeo
Tobi wrote:Learn C, then skip C++ and go straight for C#, unless you want to become shell extension developer, kernel (driver) developer or other close to the hardware stuff. Or if you want to go cross platform learn python after C (or maybe at same time even).

C is still manageable to learn (contrary to C++) and will give you a decent understanding of how memory/cpu works on lower level without needing to dig into assembler.

C++ gives you the disadvantages of C, plus a whole bunch of other disadvantages.

C# gives you the advantages of C++ without the disadvantages of either C or C++, plus a whole bunch of other advantages :-)
Ho, boy. That was so .. perfect. I couldn't have puted it in a better way. I know all 3 languages and i confirm everything he said.

But that is drifting from the actual topic. For learning C, the fastest way is to pick up on the summary of any C course and use the internet to zap around tutorials and explanations on those topics. Not the best way, by far, but probably the fastest.

Re: Learning C

Posted: 26 Jun 2008, 03:47
by REVENGE
Tobi wrote:Learn C, then skip C++ and go straight for C#, unless you want to become shell extension developer, kernel (driver) developer or other close to the hardware stuff. Or if you want to go cross platform learn python after C (or maybe at same time even).

C is still manageable to learn (contrary to C++) and will give you a decent understanding of how memory/cpu works on lower level without needing to dig into assembler.

C++ gives you the disadvantages of C, plus a whole bunch of other disadvantages.

C# gives you the advantages of C++ without the disadvantages of either C or C++, plus a whole bunch of other advantages :-)
Thanks Tobi, I'll keep this in mind. :P

Re: Learning C

Posted: 26 Jun 2008, 05:58
by REVENGE
Ok now, what are some good IDEs? :P

I can get Visual Studio Pro 2008 for free, but it's huge and I don't like it. Notepad++ + MinGW seems like what I'll start off with, but I've also had recommendations for Eclipse IDE. What do you guys think?

Re: Learning C

Posted: 26 Jun 2008, 06:50
by Erom
I use Eclipse for Python, Java, Ruby, and even scripting stuff like php and xml, but I've never used it for C - I've always used Microchip's IDE for C, which isn't so good, so avoid it.

Re: Learning C

Posted: 26 Jun 2008, 10:50
by imbaczek
VS is actually quite good despite the bloat; it's got a fantastic debugger which will make you a lazy bastard once you learn to use it.

In the open source department we've got code::blocks, which is several orders of magnitude smaller and works well.

Learn vim anyway.