When you click on links to various merchants on this site and make a purchase, this can result in this site earning a commission. Affiliate programs and affiliations include, but are not limited to, the eBay Partner Network.
I'm beginning to explore "C" and "C++" (self study)
So far, I have discovered that each different Compiler/Linker is a unique pain in the behind to learn the quirks of...
I thought it might be best to get backgrounded in C first, and then play with C++. Am I wasting my time, or will it come out like getting the basics of HTML before moving on to a real web-editor with a GUI?
And yes I'm at the HELLO.C and ERROR.C stage of it all so far...
I've got both volumes of C for dummies - but not C++.
I DO have Codewarrior (version 5.3) and the reference library that came with it looks a lot like C for Dummies, but has examples/samples of code too.
It also had the SUN JAVA Developer Kit. Theres a load of stuff on it - the only problem was I had to swing a big enough computer desk to call up the reference library and tutorials on a seperate PC. I built that out of plywood scraps...
Now I can see the Adobe "Learn C++" book on my laptop and work with the compiler/linker on my desktop PC side by side.
If I put in at least an hour a day, I ought to get somewhere. Beats letting my mind rot!
(Although arguably this kind of thing is sure to cause some amount of mental decay...)
I have been working on learning c/c++ for years. Just as you get used to one command set the technology all changes, and the command set does as well. Most of it's the same but it's the little non standarized things that get you. I'd use GCC (GNU C compiler) it's completely command line. You use a text editor to write the code, then "make" it, then compile it.
Ah yes, that brings me back to the college days... gcc is such fun, especially when debugging.
As far as GreyWolf's original question of which to learn first (c/C++) from my experience it's easier to learn C++ then go back to C. Especially ANSI C, since it doesn't have all the fancy bells and whistles of C++ can be rather hard to do complicated tasks. It's not that you can't do it, but it makes it a lot harder and more convoluted. I would say learn with C++ so you get a really good understanding of the basics (i.e. syntax, symantics, the fundamentals of programming C/C++), then go back to C (if you REALLY desire) and learn to do things the hard way.
I would say learn with C++ so you get a really good understanding of the basics (i.e. syntax, symantics, the fundamentals of programming C/C++), then go back to C (if you REALLY desire) and learn to do things the hard way.
That's completely backwards, if you ask me... use ANSI first, get used to it, and then learn C++. You'll gain valuable insight to how C++ is really designed underneath (and why some people don't bother upgrading their software licenses to get C++).
Ditto on gcc though, much easier, at a basic level, to deal with. Like UNIX C compilers, it's command-line based, and you'll learn a lot faster.
Guess I'd have to ask why you are training yourself to be a code monkey, for the heck of it or as a career?
Its partly professional and partly personal. I want an extra set of tools at my fingertips and I've had the means for awhile - I just never opened the box and applied it.
It can't be TOO much harder than DOS and BASIC were way back when. And since I have a 'refreshable familiarity' with both I should have an edge there.
I may never use it for an employer, but it seems to me that (so far anyway) anything built by somebody else is bound to have a few bugs in it. This applies to trucks, bikes, home appliances, etc, etc... And small applications!
I use an increasing amount of java applets in webstuff too, and perl is around the bend from that. The more of this kind of stuff I do the more it makes sense, and right now its 'catch up time'.
I was going to suggest that if you are looking to develop these skills for employment to look into C# as opposed to C or C++. C# (pronounced C Sharp) is one of the languages in the Visual Studio development kit. A huge amount of web and windows development is going this direction.
Hmm, now I'm going to have to expand on an additional front.
-As if XML, DHTML, and all the rest weren't waiting on my flanks already...
It looks like C itself is going to have to be coincidental with C++ too - I crashed into the math and functions today and it wasn't very pretty.
I know about HEX and OCTAL - I just try not to think about them very much. String variables, constants, floating points and I are about to have a go around.
Last edited by Greywolf; Jul 13, 2005 at 11:25 PM.
And I would recommend learning Java or C# before C++. All the server function development isn't using C or C++ anymore, too long a development cycle time.
The C++ class inheritance mess makes for some complex problems that both C# and Java have bypassed.
For Open Source, the Apache (Html) and Tomcat (Java) servers are freely available and run on both Windows and Linux (and every other OS).. with C# is Windows only.
depends on what you want to learn. OS, User Interface, Server or just language. Using a browser as the UI tool saves tons of time.
Both Java and C# have decent support libraries which help avoid wasting time on common tasks..
Learn the basics first, that means C first, even if all you do is some silly string and floating manipulations.
I've been a consultant for 22 years now, and have written in assembler (PDP-10, VAX/VMS, 8080, Z80, x86, etc), then C, then C++... as a job. Other languages I learned, but never used.
Without the real basics, you will never understand the true roots of what bugs you caused, and not really understand how to fix them.
That's just my opinion. But, I also take a dim view of all the "Visual" tools that Microsoft has created because they are just over-bloated examples of bloatware.
..But, I also take a dim view of all the "Visual" tools that Microsoft has created because they are just over-bloated examples of bloatware.
You make a good point (even though it's this "bloatware" I use!) but the one thing to consider is that it's what everyone is starting to want their web sites developed in. Case in point, my current contract. Thousands of custom applications, at least 90% of which were written in or have been converted to "Visual" apps. If you want to make the money you have to learn what the employers want, whether it's your personal preference or not. I for one really like LINUX, but it's knowledge of Microsoft Operating Systems and applications that gets me paid, regardless of my personal preference.
You make a good point (even though it's this "bloatware" I use!) but the one thing to consider is that it's what everyone is starting to want their web sites developed in. Case in point, my current contract. Thousands of custom applications, at least 90% of which were written in or have been converted to "Visual" apps.
I fully agree, but that does not preclude learning the very basics first, like C, because if you don't, you really don't understand what you are building in the Visual tools.
Too many times, in my career, I've been witness to applications written by people who do not understand that, and the apps behave in very strange ways exhibiting bugs, non-documented "features", and other weirdnesses, and when confronted, the original engineers have no idea why it does that.
And, I'm not just talking small web sites, I'm talking about $10M+ deals (up to the 100's of millions) for very large Fortune 100 companies. One of the guys in my company is currently administering/architecting a web app that has 100,000's+ of users a day, with some big data being moved around, and the application is just horrible - they are looking at re-writing it from SCRATCH and firing the original software team because it's just so much crap.
When my friend talks about these people, you ask them about certain aspects of programming/debugging, and they just look at you like a deer in the headlights.
No programmer I know who knew the basics first, like C, and then moved up, can generate crap as fast as the people who've opened the box for Visual C++ in school and started there.
I didn't mean to turn this into an argument, but after 22 years of doing this stuff, from the age of 17, this has become a hidden problem that no one wants to address - all these tools are great, but if you don't understand what they are doing at the most basic level, well, you're not going to be a top-notch programmer.
Rezvani's Latest Post-Apocalyptic Monster Is a Ford F-150 Raptor Underneath
Slideshow: Called the Fortress, the 850-horsepower pickup combines Raptor underpinnings with military-inspired features, survival equipment, and a starting price of $285,000.