Hmmm... I'd say that online apps and services are more the future than any desktop tools aside from really heavy stuff like Photoshop and CAD. The good thing with C (and probably C++/C# to some extent - never looked into them) is that it's pretty much syntactically identical to PHP, and you can make some pretty powerful web tools if you know what you're doing. The good news is that, at least in my experience, C is very easy to pick up and gives you fairly human-readable code (the anti-RegEx, if you will). It lets you develop some good practices that carry over into most if not all languages, and if it turns out that you do something where it's completely irrelevant, you haven't wasted a ton of time. All of my knowledge in C came from ripping apart open-source stuff for a MUD. At first it'd be mostly copy-paste code, but by the time the thing was near the end of its life, I'd made some pretty drastic changes to how it fundamentally operated. I don't think I ever bought an actual book on C, and the only books I own regarding PHP/MySQL are about security and not so much about how to actually write code. Put another way - with a bit of explanation, I was able to show someone with absolutely no coding knowledge a bit of code and he was able to make decent sense of it.
The best thing, really, is to let him experiment with languages, I've experienced about 12 languages now, and it's amazing how many are similar.
looks like im taking un-recommended route.... started with VB.net at school and have moved on to C# for tech. java next year... dammit , at least they let me bypass KPL (kids programming language)
Although it can be all to easy when you find a slightly-more-different language to fall into the trap of writing and thinking in it as you would in another language
i live in the land of the Pro's. Pascal to go retro, kick it a nickel up to the C+/++/# not to forget (turbo C++) lanuage, then live with Borland Delphi 4,5,6 and now using version 7. a programmers life is not easy, the easiest way i learned programming was to learn the really basics in mathematics, such as trig and algibra. then learn one lanuage such as C, then stick to that until you know how to speak in C! lol! dont bounce around lanuages such as java and VB as you'll learn nothing. i do know programming is getting easier, as programming tools basical have plug-in codes, such as buttons commands, i remember having to write all the pissing code before that! Go buy a second hand computer like a P2 233Mhz and install DOS and a C complier, pick up some books on C of that era and learn.
I think C is still the best starting point rather than C++. Start with C, move up to C++ then Java and C# as and when required. If your son ever ends up working on embedded systems, he'll be programming in C not C++, and that isn't going to change any time soon.
PHP is a useful and flexible language to learn, but should not be your first. It's flexibility is also it's worst trait as it encourages sloppy coding habbits and it has a non-standard implemtentation of, for example, method overloading.
I am also learning programming. I am 15. Give him my msn and I'll try and help him out if he has it. I am learning VB at the moment following the advice of a programmer I know. Then he's going to teach me C++. Msn : declanjames@msn.com
I started off with BASIC, simply because that was what I had to work with when I started. (Started at about 9 or 10 editing "nibbles" to change colors and whatnot) In college we started with C, and I would have moved to C++ but I changed majors. With that said, I was horrible at math, (loved geometry but never good at Calculus or above) and have since worked in a fortune 100 company working with 2 other guys to replace a $5million USD application with an elaborate PHP script. The basic techniques I learned in C translated well to PHP (even though I don't use 90% of the stuff I learned in C, it gave me a good enough understanding to make PHP cake), and I used a book from sitepoint.com to start learning PHP, but the bulk of my PHP education was on these forums here. My best method of learning was trial, error, a good online manual, and a community to ask questions when I'm stuck.
What the ****? It's far from "clean". If you follow "proper coding style" you end up typing things like: Code: public int getX(){ return myX; }
I can't pretend I've done much C++, but how would one achieve a similar thing in C++ then? My "bag of spanners" comment was that usually C development involves wheeling out the make files, dusting off the linker, and generally getting me confused. There's a million compilers, zillions "standard" libraries, loads "standard" API specifications, and just lots of things to confuse the newbie. Java on the other hand is simple: One compiler (okay, one per version), one API spec and platform independance!
Code: printf("%s",myX); One compiler, gcc. Basic development for command line apps needs only stdio, and C is widely platform independent, whereas every single parsed language is platform independent, and there doesn't have to be different releases for each platform like you need to in Java.
1, http://www.thefreecountry.com/compilers/cpp.shtml lists over 20 C/C++ compilers. 2, Your example c code shows me how to print a string. The same thing is only a one liner in Java too. If you follow "proper coding standards" in C++, you will end up with similar code with getters/setters as you demonstrated in your Java snippet. I therefore don't get the point you're making. I'll concede that C code is platform independent if there's a compiler (very likely) and all your libraries have equivalent ports. For all but trivial programs there will most likely be some code porting done, or platform specifics built in. Either way, I think we're a long way from the original point of this thread, and disappearing into a C vs. Java rant, which I suspect won't have a beneficial outcome for anyone
Just goes to show that Java is just another bit of proprietary tat, which is hardly an argument for it. That was just an example of getting the value of a string. In Java you would need the equivalent of printf() and the get function. Helping to choose the right language to learn
Sigh But you're forgetting my original point that it was simple and clean. Meaning there's only one tool in your belt, rather than the sixty-twelve you need for C bashing. You seem to be arguing against the concept of Object Orientated Programming, which is very much at the core of future (& present) software development. There are lots of reasons for it, which are happily documented all over the internet and needn't be duplicated here.
OOP is all well and good when it's actually useful. Obfuscating things like getting and setting is pointless. I usually use OOP, but not just for the sake of using it.
I haven't done much coding/programming for a while as I've been without my computer the whole summer, so to catch up and learn all the background in preperation for uni I've just purchased this for a fiva off ebay. I've never really taken to the For Dummies series before but I must recommend this book for anyone wanting to get into programming as it lays the foundations and teaches the differences between the various languages, why we use them and how, as well as dropping in a few BASIC tutorials. Try it . <A88>
My Son has bought a book on C#. He is learning C# to learn how to program. Then he will learn how to write applications in C++.