Seeking advice

We would like to work some computer science into my son’s home-school education. Question for those of you who know about this stuff: where should he begin? Would knowledge of any one programming language be particularly useful?

Hard to say what he’s going to be when he grows up, but if I had to guess, it would be some sort of engineer.

graz

D.

12 Comments

  1. In the immortal words of George Carlin, “don’t touch it Doc, it’s rat’s asshole!”

    There’s no right answer to this one, Doug… Technologies change, business fads come and go. There are programming languages and environments set up for kids, but yours, like mine, ain’t like the other kids in the trailer park… To a degree, programming concepts are programming concepts, regardless of the actual language in which they are implemented.

    I don’t know that I would start with programming per se. I’d start with electronics – like the old Heathkits, though I don’t know who makes that kind of stuff any more… Or maybe robotics, since that’s got mechanics, electronics, and (eventually) programming.

  2. dcr says:

    If you do decide on any programming, try both BASIC and C++. BASIC has been around for ages, and there always seems to be some implementation of it. And, if he doesn’t eventually get into programming, BASIC will at least give him some understanding of, well, basic programming.

    C++ has also been around for a while and, typically, is available across multiple platforms. Generally, your compiler or programming framework will generate the end-code for you so that it can work on multiple platforms.

    Assembly language might also be fun. It will vary based on the computer’s processor; what works on one chip may not necessarily work on another. But, it gives a deeper understanding of what the actual chip is going to be processing.

    PS is right that the technologies will change. And, you have to learn new stuff as new stuff comes out. But, once you understand the concepts of programming, it’s much easier to learn new programming languages or concepts. If your son might have any interest in programming in the future, I think it’s easier to learn newer programming languages when you already have a basic understanding of programming. Understanding programming concepts can be more challenging and take more time than learning the programming language itself. So, from that standpoint, it’s better to start learning programming in any language just so you can grasp the fundamentals.

  3. Corn Dog says:

    I think Jake would like some HTML. Then he can build some fun web pages. That won’t take long to master, and he can move on to javascript with is fun. Through in some CSS and he can fiddle around for a long time. FLASH is fun too.

  4. Lyvvie says:

    I’m with corn dog, teach the boy HTML and smidge of JAVA. An excellent book that Husband bought for me, because I am not technically minded, is this. I also got HTML For The World Wide Web by Elizabeth Castro. Her series includes some XHTML and CSS. All easy to follow for a hopeless soul like me. Good luck!

  5. Lyvvie says:

    I asked Husband (he slept in late) and he agreed that HTML would be a good start. JAVA – an “object oriented programming language” is also a good place to start plus it has a huge online suppport netbeans.org and download the JAVA IDE (free!) it’ll help you organise your applications into a project and can walk you through the structure of what you want to do and has all the tools you’ll need built into it. It has online tutorials and tons of support.

    He also suggests PHP is a web based programming language and is an excellent choice for web page creation that has proper language structure that resembles C (I’m taking dictation). You can find a whole host of support on PHP.net.

    I’m a bit slow at dictation…

  6. Walnut says:

    HTML it is. Main advantage, I know some HTML. (Funny thing . . . I don’t even think of it as a programming language!)

    I’m trying to figure out the Netbeans thing at the moment, since I’d like to learn Java, or at least play around with it a bit. It wants a JDK. Whatever that is.

  7. Dean says:

    HTML isn’t really programming. It’s more advanced text formatting. Yeah, I’ll get arguments from the HTML geeks, but the parts that most resemble actual programming are generally written in something else, like javascript or vbscript.

    JDK is the Java Development Kit. There are tons of websites and Java books available, too.

  8. Walnut says:

    Yup, currently installing all the java stuff, and I think I’ll play around with it myself before subjecting Jake to it.

  9. For Java, you’ve got two main choices – Eclipse and NetBeans. Eclipse is probably better suited for professional development, while NetBeans is more accessible. Eclipse can be pretty daunting, even for an experienced programmer.

    I haven’t used NetBeans 6.0 yet, but 5.5.1 was pretty good (I found the Mac OS X version to be a lot twitcher than the Windows version). My biggest complaint with it is that I really don’t like the way NetBeans creates windowed applications: like most modern development environments, it auto-generates a lot of the code for you; unlike many IDEs, it doesn’t let you change that generated code without giving up the ability to lay out UI components visually (I don’t know if this is still true with 6, but I’d guess that it is…). Laying out UI components in Java takes some getting used to under the best of circumstances, and IMO NetBeans tries to hide too much of that from the user. Still it’s a professional-strength development environment that’s still pretty accessible to the novice.

    And I’m gonna agree with Dean – HTML is a layout language, not a programming language.

  10. microsoar says:

    One other option you might consider – and it was certainly fun for my kids, though they were younger than Jake when they started with it – was a game builder program like “Game Maker”. I still have my daughter’s best game “Sqizzie the Penguin” kicking around somewhere.

    Gamemaker’s a bit dated these days, but it allows you to build simple 2D shoot-em-up, problem solving and platform games – using a drag and drop user interface – and there’s a built-in programming language as well that Jake will need to use if he wants to get fancy. It doesn’t matter that the language is unique to the game; it’s the concepts of event-driven programming that he’ll learn, and that’s useful later.

    On the same site you’ll find other game builders such as BlitzPlus and Blitz 3D which will give him some other options. I haven’t tried them, but the blurbs look enticing.

    The good thing about this option is at the end of the exercise he’ll have something fun (hopefully) that he’s designed that he can show and distribute to his friends.

  11. microsoar says:

    Ooops: the site is: http://www.webgamebuilder.com/modules/mydownloads/

    One other option you might consider – and it was certainly fun for my kids, though they were younger than Jake when they started with it – was a game builder program like “Game Maker”. I still have my daughter’s best game “Sqizzie the Penguin” kicking around somewhere.

    Gamemaker’s a bit dated these days, but it allows you to build simple 2D shoot-em-up, problem solving and platform games – using a drag and drop user interface – and there’s a built-in programming language as well that Jake will need to use if he wants to get fancy. It doesn’t matter that the language is unique to the game; it’s the concepts of event-driven programming that he’ll learn, and that’s useful later.

    On the same site you’ll find other game builders such as BlitzPlus and Blitz 3D which will give him some other options. I haven’t tried them, but the blurbs look enticing.

    The good thing about this option is at the end of the exercise he’ll have something fun (hopefully) that he’s designed that he can show and distribute to his friends.

  12. Walnut says:

    Well, that kept me occupied for the last two hours. Don’t know if it’ll grab Jake, but it worked for me.

    Off to check out Blitz 3D now . . .