Slashdot Mirror


Learn How to Program Using Any Web Browser

honestpuck writes "Harold Davis has started with a marvelous idea, teaching programming using a language available on all platforms, JavaScript, and an interface familiar to everyone, the web browser. Learn How to Program Using Any Web Browser is written for absolute beginners to learn the basic principles of programming -- or at least that's what the cover would have you believe." Read on for honestpuck's evaluation of that claim. Learn How to Program Using Any Web Browser author Harold Davis pages 396 publisher Apress rating 5 reviewer Tony Williams ISBN 1590591135 summary Not much programming, but well written

The language is suitably light and simple, the book well-structured and broken down into easily digested chunks. The order in which concepts are introduced is fairly traditional for a language tutorial: first we get types, variables and statements, before moving on to conditionals, loops, and functions, followed by arrays and objects before finishing with event-driven programming. Davis' decision to leave string handling till last seems a little perverse and personally I would have introduced functions earlier.

My real complaints about this book centre on the abstract nature of the discussion. There are very few real world examples that could be useful to anyone. The best you get is a version of "Rock, Paper, Scissors" in Chapter 3, and an 'auction' application. The book would have been improved dramatically if the end result of your study was a few things you could actually point to.

I also have a complaint about the target audience for this book. The web page for the book at the publishers states that "The target reader is likely a twelve- or thirteen-year-old, who is just starting to get curious about what makes a computer work -- or an office worker who has been using computer applications for years, and would like to spend some time delving deeper into what makes them tick." Most adults and even teenagers don't want to 'learn how to program' as much as they want to learn how to use a tool to perform a task. If your tool is JavaScript, then it's almost certain your task is related to building web pages, but this gets little real attention from Davis. For even younger students, this book totally lacks anything to hold their attention -- the lack of real-world examples hurts here.

I also take issue with the title: this book doesn't really teach 'programming' much at all. It certainly teaches you to write JavaScript, but where are the sections about the real lessons of programming, such as top-down vs. bottom-up design, or breaking a task up into chunks? Even debugging has little coverage -- a single thirty-page chapter, half of which is specific to JavaScript or the throwing and handling of exceptions. Since the work of Papert and others at MIT twenty-five years ago, we've learned a great deal about how to teach programming concepts in a simple manner, but Davis appears to have ignored all this and given us a language tutorial. The publisher's web page for the book says "very emphatically, this is not a book about programming JavaScript." If that's so then I'd argue that it isn't a book about learning the principles of programming either.

It is obvious from this book that Davis is an excellent writer; if he had tried to write a book to teach JavaScript and had focused on the tasks for which it is often used this, volume may have been superb. As it is, he has shot for a higher goal and fallen far too short.

If you would like to check it out for yourself, you can go to the web page for the book where there is sample chapter, the Table of Contents (though they call it a "Detailed TOC" as distinct from the 'Table of Contents,' which is just a list of 11 chapter titles) and index, all in PDF format.

I went looking for a book that I could give to my 11-year-old daughter now that she has become interested in "what Daddy does." I'm still looking, I'm certain that this one isn't it.

You can purchase Learn How to Program Using Any Web Browser from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

456 comments

  1. Java? by Anonymous Coward · · Score: 2, Insightful

    Why this:

    Harold Davis has started with a marvelous idea, teaching programming using a language available on all platforms, JavaScript

    Why not this:

    Harold Davis has started with a marvelous idea, teaching programming using a language available on all platforms, Java

    Maybe because that book has already been written?

    1. Re:Java? by Anonymous Coward · · Score: 0, Insightful

      Even better:
      Maybe because for Java you have to download the SDK first?

    2. Re:Java? by Dutch_Cap · · Score: 5, Insightful

      Java may be available on every platform, but most computers don't have a java compiler installed. A computer without a browser that can handle javascript is unthinkable, though.

    3. Re:Java? by McAddress · · Score: 2, Flamebait

      Personally, I think people should be taught to program in APL or assembly language (see the /. story. i cant find the link) this way all those kids who have no business programming won't learn how to do it.

    4. Re:Java? by nocomment · · Score: 0, Flamebait

      Maybe php would be a more suitable alternative to show your daughter? It's syntax is very similar to perl and C. Or were you just trying to review a book because that seems to be what you do. ;-)

      --
      /* oops I accidentally made a comment, sorry */
      /* http://allyourbasearebelongto.us */
    5. Re:Java? by Frymaster · · Score: 5, Insightful
      Harold Davis has started with a marvelous idea, teaching programming using a language available on all platforms, Java

      er... ansi c is available for all platforms too.

      i think h.d.'s angle was write an intro to programming book that uses an interpreter that comes default with every os install... hence the javascript.

      of course it's an incredibly lame angle since it breaks frymaster 14th rule of programming:

      "if you can't install the interpreter/compiler you probably can't code in the language"

    6. Re:Java? by Anonymous Coward · · Score: 0

      As I was just telling one of my coworkers, my real complaint about this book centre on the abstract nature of the discussion. There are very few real world examples that could be useful to anyone. The best you get is a version of "Rock, Paper, Scissors" in Chapter 3, and an 'auction' application. The book would have been improved dramatically if the end result of your study was a few things you could actually point to.

    7. Re:Java? by LuxFX · · Score: 2, Insightful

      teaching programming using a language available on all platforms, Java

      Maybe you read the stress on "language available on all platforms" -- I read the stress on "written for absolute beginners to learn the basic principles of programming."

      The idea of the book is to teach the basics of programming to a complete newbie. It would not make sense to introduce the complications of complilation, classes/OOP, strict data types, etc. if all a newbie wants to learn about is using variables, conditionals, loops, and basic functions. That is simply introducing too much at once to somebody that might only know the concept of 'variable' from a middle school pre-algebra class.

      I agree with the author, Javascript is the perfect language to teach programming fundamentals. I had already decided on Javascript myself as the language for teaching my kids one day. After all, what a beginner programmer wants most is the ability to see their program do something. Could it get any easier than:

      alert("Hello World");

      ??

      --
      Punctanym: alternate spelling of words using punctuation or numerals in place of some or all of its letters; see 'leet'
    8. Re:Java? by wwest4 · · Score: 5, Insightful

      How does the desire or willingness to learn assembly translate into entitlement to program?

    9. Re:Java? by NanoGator · · Score: 1

      "Maybe because that book has already been written?"

      Off the top of my head, I'd say it's because it's easier to get normal everyday peeps to come by and say 'good job'.

      --
      "Derp de derp."
    10. Re:Java? by McAddress · · Score: 1, Insightful
      desire is not the issue. If you read the NY Times magazine this week about how easy it is to write viruses, you would realize that by teaching programming to anyone even vaguely interested in it, we are harming our own community. Programming is a dangerous skill and should only be used by people mature enough to use it responsibly. The best way to make sure they are mature enough is to make learning hard enough that all of those script kiddies will run off to download pr0n instead of learning to program.

      This is slightly offtopic, but the same is true with Linux. in an attempt to gain market share, OSS advocates have been appealing to anyone anti-establishment and/or quasi geeky to join the movement, leading to the community to be made up in a large part by a bunch of immature teenage h4x0rs, who think it is 1337 to take down websites. It is quite possible that MYDOOM was written by one of these kids. Sadly, the rest of the world views the OSS community as just these kids and not the real programmers among us. We brought this upon ourselves.

    11. Re:Java? by NoMercy · · Score: 1

      ANSI C is available for more platform than there are Java, SUN doesn't just build JVM's for everyone and I remember one small platform shelled out a huge ammount of money to get a 1.someting version of java which was soon useless and they couln't afford to get a newer version.

      And remember, Java isn't multyplatform, It only works on one platform, the JVM.

    12. Re:Java? by devphaeton · · Score: 1

      I really wish i had some mod points to spend on your post. This deserves no less than a +5 Insightful.

      --


      do() || do_not(); // try();
    13. Re:Java? by Moderator · · Score: 3, Funny

      Programming is a dangerous skill and should only be used by people mature enough to use it responsibly. The best way to make sure they are mature enough is to make learning hard enough that all of those script kiddies will run off to download pr0n instead of learning to program.

      Driving a car is a dangerous skill and should only be used by people mature enough to use it responsibly. The best way to make sure they are mature enough is to make learning hard enough that all of those people who drive automatics and can't perform a basic engine swap will turn to public transportation instead of learning how to use a car.

      --
      The World is Yours.
    14. Re:Java? by G.+W.+Bush+Junior · · Score: 3, Interesting

      desire is not the issue. If you know how easy it is to run people over, you would realize that by teaching driving to anyone even vaguely interested in it, we are harming our own community. Driving is a dangerous skill and should only be used by people mature enough to use it responsibly. The best way to make sure they are mature enough is to make learning hard enough that all of those irresponsible drivers will run off to download pr0n instead of learning to drive.

      I could go on... but I think my point is clear :)

      --
      "I don't know that Atheists should be considered as citizens, nor should they be considered patriots." -George H.W. Bush
    15. Re:Java? by Euphonious+Coward · · Score: 0, Troll
      This seemed apropos, if just a bit inflammatory:

      Many languages have failed honorably -- Eiffel, Dylan, Oberon, Icon, Prolog, CLP(R), C+@, Oak, PL/1, Bliss, Algol-68, Pascal -- some more honorably, some less, but far too many to list, or indeed to count. Others struggle vainly along, confined forever to subsidized niches -- Erlang, Common LISP, REXX, Objective-C, Delphi, Ada. Only a handful retain a vigorous population of programmers using them, industrially, for their original purpose; we need not list them.

      Java survived teething only by dint of billions of dollars of promotion. Every promise made in its infancy has proved a lie. Designed and implemented in such frantic haste that a semblance of quality was the first criterion jettisoned, it could not but grow into such a monstrosity as we face today. Today its use in applications where it was, supposedly, intended -- cellphones, browsers, rings -- amounts to little more than nasty, brutish parodies.

      It is no crime for a language to fail. What is a crime is for its failure to blight the careers of the myriad* young, impressionable, and naive who fell for its blandishments. What is a crime is the forests felled, pulped, and printed upon, only to be discarded unread and obsolete. What is a crime is the thousands of good ideas, and the companies started to develop them, stabbed in the back by an inadequate implementation language. What is a crime is the gigawatt-hours of energy dissipated operating wasteful JVMs on huge servers performing jobs that a hamster could do on its bathroom break.

      Java is far more than a failure, far more than an annoyance, far more than the laughingstock of many industries, far more even than the evil sire of C#. It is a bona fide crime against humanity. Capital punishment would be too good for it; that is to say, it does not deserve execution.

      Only one fate can be ignominious enough to expiate Java's wrongs. Java must be consigned to use as an undergraduate teaching language.

      * [lit.: numerous as the stars in the sky]

    16. Re:Java? by TheSpoom · · Score: 1

      I agree, ANSI C is available on all systems, and while the book doesn't go into it, I'd recommend Dan Gookin's C For Dummies for anyone seriously wanting to get into programming. It takes a lot of effort (the two volumes are 1200+ pages in total) but it's manageable, and pretty humourous at times (if you've read DOS For Dummies, you'll know what I mean, same author). And plus you get to deal with the infamous Doctor Modulus O_O

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    17. Re:Java? by Anonymous Coward · · Score: 0

      "Programming is a dangerous skill and should only be used by people mature enough to use it responsibly."

      What, like the Force?

    18. Re:Java? by Tassach · · Score: 4, Insightful
      I call bullshit. Who's fault is it that it's easy to write viruses:
      1. People who teach kids to program
      2. Programmers who write insecure software that's prone to viral infection
      3. Megacorporations that sell software that is inherently insecure because of intentional design choices
      4. Parents who don't teach their children to respect the rights of other people
      Blaming viruses on people who teach programming is like blaming grafitti on people who teach art.
      Blaming viruses on the people who write the tools is like blaming grafitti on the people who make spray paint.
      Blaming viruses on the people who make & sell insecure software is like blaming grafitti on the people who make & sell buildings that aren't grafitti-proof.

      Learning how to program and releasing a virus are very different things, just as learning marksmanship and shooting people at random are very different things. Put the blame where it belongs: on people and not the technology.

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    19. Re:Java? by Negatyfus · · Score: 3, Interesting

      They already do this with driving, or at least they try to. It doesn't work, apparantly, if you take a look at traffic.

      Grandparent has it wrong, of course. Even if the clueless teenagers don't know how to program, there will always be competent programmers developing tools to create malicious software for them, as there has been from the beginning. And these script kiddies will gobble it up like a badly written VisualBasic virus.

    20. Re:Java? by Anonymous Coward · · Score: 0

      Since your javascript program lacks the HTML required to make it work, yes it could. Since you're handwaving away all the script setup crap, you might as well use C++ and handwave away the include statement, the using namespace statement, and the int main() { /*stuff you care about goes here*/ return 0; }. I don't really see the point. Hell, for that matter, if you really want to teach programming fundamentals, assembler is the best. I mean, you can't get any more fundamental ;)

    21. Re:Java? by G.+W.+Bush+Junior · · Score: 2, Insightful

      Exactly...
      besides making programming extremely difficult to learn would do more harm than good.

      Programming is a skill used outside CS circles; keeping bioinformatics, systems biology, engineers, chemists, physicists, etc., etc. from using easy to learn scripting languages would bomb them back 30 years.

      --
      "I don't know that Atheists should be considered as citizens, nor should they be considered patriots." -George H.W. Bush
    22. Re:Java? by joib · · Score: 1

      Yeah, it's quite a lame idea. I mean, if you're going to learn to program, the time required to install your programming environment of choice is minuscule compared to the time you have to spend actually learning how to program.

      Heck, I first installed linux back in 1995 or so because I wanted a real programming enviroment.

    23. Re:Java? by Anonymous Coward · · Score: 0

      "those script kiddies will run off to download pr0n instead of learning to program."

      Don't bring pornography into this! I am pretty damn good at programming while looking at porn, thankyouverymuch!

      int fapfapfapfap;

    24. Re:Java? by Anonymous Coward · · Score: 0

      You must be smoking a lot of crack from Bill Gate's stash. You are suggesting programmers should form a guild in order to keep outsiders from learning the craft? Cooking is dangerous, what's to stop a chef from using a butcher knife for murder, or poison the food and kill hundreds of people? Truth is, anybody and everybody has the power to do amazing things. The problem is, most everyone would rather sit on their bum to watch Survivor than to change the world. Right now, America's leadership is severly afraid of the power of the individual.. because no matter how strong a police force, no matter how many nuclear weapons a country controls, no matter how much chemical weapons a country threatens to deploy, could a country ever defeat its own people without destroying itself! That fear of the power of the individual is realized in the nebulous definition of a terrorist. Only Muslim extremists are classified as terrorists now, but if Bush stays in office, just wait for a broader definition of terrorism to encompass the innocent just like the Salem witch trials.

      It's coming, folks.

    25. Re:Java? by Ikoma+Andy · · Score: 1

      Programming is a dangerous skill and should only be used by people mature enough to use it responsibly. The best way to make sure they are mature enough is to make learning hard enough that all of those script kiddies will run off to download pr0n instead of learning to program.

      Heh. You mean to say, if only Kevin M. hadn't learned Javascript, the world would be a safer place! Making learning hard doesn't mean only mature individuals will learn it.

    26. Re:Java? by Anonymous Coward · · Score: 0

      Why, because you can't see the flaw in the grandparent's logic?

    27. Re:Java? by bsd_usr · · Score: 1

      Right on! I drive a vehicle with a manual transmission (I would much rather have the control of the engine than relinquish it to the likes of an automatic transmission) and I've rebuilt engines in the past (Ford 302's and air-cooled V.W.'s). I guess that would give me the license to drive. Waaahoooo!!!

    28. Re:Java? by Anonymous Coward · · Score: 0

      Yet we do this all the time.

      It's the tobacco's fault that you smoke.
      It's McDonald's fault that you spilled coffee on yourself.
      It's always somebody else's fault that misfortune befell you, or you did something wrong.

      Welcome to America.

    29. Re:Java? by 16K+Ram+Pack · · Score: 1

      But you could easily supply such a thing with the book?

    30. Re:Java? by wwest4 · · Score: 2, Interesting

      I don't need the NYT to tell me how easy it is to write a virus.

      There are philosophical reasons why I think your logic is flawed, but I'll stick to the practical considerations.

      1) assuming obfuscation of the trade reduces viruses, what other effects could it have?

      2) what does the reduction in high-profile exploits do to the state of security, both disclosure and patching? will it make big software companies more or less proactive? will more furtive exploits become easier and more common?

      3) is MYDOOM really the work of a script kiddie? (i honestly don't know - it seems to me to be a work beyond the grasp of those whom i would label a script kiddie - those with no particular genius and/or no formal software engineering training).

    31. Re:Java? by nineoneone · · Score: 1

      Given some websites, I do think it is neat to take some of them down - but only in a mature, sensible and considered way, of course.

      --
      sig under development
    32. Re:Java? by sxe_p06 · · Score: 1

      *watches as the mods mark him flame*
      *doesn't seem to care too much*

      Come on now...You can't seriously blame the parents. If it were a 5 year old releasing a virus, then yeah, mommy and daddy shoulda been watchin a little more closely. But while writing a virus isn't the most difficult task in the world, It is complex enough to require a person to be of a certain age/intellect. And at that age/intellect, a person should no longer require the constant supervistion of their parents. Our first exposure to morality/ethics is instilled by our parents, true...but once we get out into the world, our entire environment and personality affect our morals. In some cases the 'blame the parents' idea is correct, but when you start throwing it around in a situation such as this, it becomes yet another 'blame someone else' bit. Bottom line, the sole responsibility for these rest on the shoulders of the person who released the virus.

      --
      -- p06 "On religious wars: They're essentially wars over whoo's imaginary friend is better"
    33. Re:Java? by nineoneone · · Score: 1

      It was javascript (no relation) under discussion though.

      --
      sig under development
    34. Re:Java? by RedWizzard · · Score: 2, Insightful
      ansi c is available for all platforms too.
      ANSI C does not provide any sort of gui library and is therefore completely uniteresting to novices and most hobby programmers in general.
    35. Re:Java? by Anonymous Coward · · Score: 0

      Whoever modded this +Insigthful is a moron.

      In short: Don't educate people because they may use science to build weapons and bring down the world trade center.

      Doh?

    36. Re:Java? by adamjaskie · · Score: 2, Interesting

      Or at the VERY least, the ability to CHECK THE OIL REGULARLY, check the TIRE PRESSURE now and then, change their own oil, jump-start a car, and change a flat tire. Those are basic skills that should be required to know to get a liscence.

      --
      /usr/games/fortune
    37. Re:Java? by Anonymous Coward · · Score: 0
      This is slightly offtopic, but the same is true with Linux. in an attempt to gain market share, OSS advocates have been appealing to anyone anti-establishment and/or quasi geeky to join the movement, leading to the community to be made up in a large part by a bunch of immature teenage h4x0rs, who think it is 1337 to take down websites. It is quite possible that MYDOOM was written by one of these kids.

      I disagree in about every point you made, but there have been others giving the response I would have wrote.
      But the connection from MyDoom to "Linux based Script Kiddies" flaws. Have a closer look on the code of MyDoom and what it does! The attack on SCO is at best at side effect, if not a cover to distract from the real intention.
      I'm curious about some analysis about the "spreading" of this worm. It "hit" me like spam not the way of any (former) worm.

    38. Re:Java? by acebone · · Score: 0

      LMAO - funniest post in a long time :)

      --
      Check out my PHP Url Validator
    39. Re:Java? by Anonymous Coward · · Score: 0

      Wrong!! Information wants to be free!!

      You fascists can't stop people from learning h0w t0 c0d3 @ \/1r15!!1!1!

    40. Re:Java? by IllogicalStudent · · Score: 1

      If it lowers the going insurance rates, I'm all for the idea.

      --
      But Maaa! Everyone else has a .sig !
    41. Re:Java? by dasmegabyte · · Score: 2, Insightful

      You think all programming should start with assembly (a language that 90% of all modern programmers never use)? Fine. But I disagree with you, so I will continue to teach classes on programming in Java at my local library. You are welcome to contact the library board and start teaching a competing class in APL.

      It would be interesting to see how many students you enroll compared to me in an "all's fair" environment like a free night class. I am willing to bet you will get few to none. For one reason, because assembly is a pretty useless skill. For another, you seem to be an elitist dick. "Kids who have no business programming"...what the hell do you mean? Anybody who has the desire to write a program has BUSINESS programming. It has no basis on whether or not they can spit out really efficient machine code or immediately grasp complicated cpncepts -- there are dozens of important skills a programmer needs to master, of which no one makes or breaks a coder. I've met fantastic GUI programmers who never got the hang of database programming. And I've met a lot of algorithmic geniuses who couldn't make a usable GUI if their life depended on it.

      Kids want to learn because they're young and eager and life hasn't yet crushed their expectations. We should teach them before they lose their wonder...not berate them with archaic syntax. I grew up on BASIC. A lot of people never get past it, but the more the merrier.

      --
      Hey freaks: now you're ju
    42. Re:Java? by Laxori666 · · Score: 1

      Could it get any easier than:

      alert("Hello World");


      Yeup:
      CLS
      PRINT "Hello, world."

      QBasic is what I'm teaching my kids as their first language one day. It's simple, the screen is nice (mm, blue), and easy graphics:
      LINE (0, 0)-(10, 20)).

    43. Re:Java? by JamesOfTheDesert · · Score: 2, Funny
      Why not this:

      Harold Davis has started with a marvelous idea, teaching programming using a language available on all platforms, Java

      Maybe because, with Java, before you can even write Hello, World!, you need to have a class, plus public static void main, plus System.out. And then compile it.

      With ECMAScript and a browser, it's
      println( "Hello, World!");

      --

      Java is the blue pill
      Choose the red pill
    44. Re:Java? by LuxFX · · Score: 1

      QBasic is what I'm teaching my kids as their first language one day. It's simple, the screen is nice (mm, blue), and easy graphics

      But ultimately not a very good reflection of more advanced languages. Javascript has the advantage of being not only an easy interface to learn the basics in, but also something that is scalably advanced. Javascript can include basic event handling, and even includes a limited version of OOP. I think it would be a major benefit to a beginner to be able to move from basics to these more advanced topics without having to switch languages.

      --
      Punctanym: alternate spelling of words using punctuation or numerals in place of some or all of its letters; see 'leet'
    45. Re:Java? by LuxFX · · Score: 1

      Since your javascript program lacks the HTML required to make it work

      But I can write an html file with this:
      <HTML>
      <HEAD>
      <TITLE>js test</TITLE>
      <SCRIPT SRC="test.js">
      </HEAD>
      <BODY></BODY></HTML>

      and then let my kids hack away at the "test.js" file. They literally don't have to worry about anything other than

      alert("hello world");

      --
      Punctanym: alternate spelling of words using punctuation or numerals in place of some or all of its letters; see 'leet'
    46. Re:Java? by Anonymous Coward · · Score: 0

      I'm all for it.

    47. Re:Java? by tiger99 · · Score: 1
      It depends whether you really mean Javascript, Jscript or ECMAscript.... Are there any more variants?

      Thanks of course to the malignant incompetence of the Convicted Monopolist who has to pervert every possible standard. I fail to see why, because no-one, not even the Illegal Monopoly, gains from this sort of thing, and it makes programming a lot of low-level things sheer misery, because you have to allow for the non-compliance of M$. The easy, and preferable, solution is to only use Mozilla, or other browsers which make good attempts to be standards-compliant.

      Yet another reason for getting rid of Inept Exploder.

      I think most people probably do have Java installed, as the majority of PCs in the world pre-date the court case between the Convicted Monopolist and Sun, and prior to that, most installations of Inept Exploder would have been accompanied by Java. I could be wrong of course, because my own experience is as far as possible with standards-compliant browsers and JVMs. I have missed almost all of the bugs and security problems, life is too short without any of these....

      What I don't understand is why the world does not kick Bill in the teeth for his rotten, pernicious habit of wrecking everything which he did not invent, in some kind of apparently psychotic, infantile tantrum. The sensible thing to do is to dump his products, particularly the third-rate, insecure things that you don't need, like IE, and even more importantly, Lookout.

    48. Re:Java? by Marvelicious · · Score: 1

      I actually disagreed with the quoted post until you put it that way. Hell yes! All y'all get off my road!

      Oh, crap... I guess I've gotta go learn assembly language now!

      --
      Send whiskey and fresh horses!
  2. Best way to learn by pi+eater · · Score: 4, Insightful

    The best way to learn how to program is to sit down in front of a computer with a reference handy and dive in!

    geeky shirts.. funny shirts

    1. Re:Best way to learn by Anonymous Coward · · Score: 0

      What is your point? Isn't that what the author of this book is claiming?

    2. Re:Best way to learn by Anonymous Coward · · Score: 3, Informative

      That's not what the universities would have you believe! Their way is to cram your ass full of math. Give dozens of math courses, with no real integration of ideas between them. Teach no practical applications, and then watch as employers start demanding university degrees for every job, and look at how much enrolling (or even more cult-like: recruiting) the univesities do!
      No, it's not about the money. No, they want to teach you... err.. something.

    3. Re:Best way to learn by tuffy · · Score: 5, Insightful
      The best way to learn how to program is to sit down in front of a computer with a reference handy and dive in!

      IME, it's best to have a problem to solve, too. Back in my carefree days, that usually involved trying to program a neat game I didn't have. Nowdays, it seems most of my toy programs involve organizing all the data I've accumulated on my hard drives.

      --

      Ita erat quando hic adveni.

    4. Re:Best way to learn by strider3700 · · Score: 3, Insightful

      I entirely agree with this. Pick a language you want to learn, then spend the $50 and buy one of those learn to program language X in 21 days books.

      Start working through the examples, by the time you hit day 15 you'll usually know the language well enough to do as you please and just use the last few chapters as reference. After a few languages you'll find that days 1 - 5 are almost always the same with just minor syntax differences.

      I've found this the quickest way to learn to languages. Getting good enough to add them to your resume takes actually using them for a few months/projects.

      Actaully learning the proper way to program is far more difficult to get from a book. This is one of the major things I learned while getting my degree. This is also the major reason that I rarely hire someone without a degree.

      Anyone can write code, but not everyone can program.

    5. Re:Best way to learn by RetroGeek · · Score: 5, Insightful

      The best way to learn how to program is to sit down in front of a computer with a reference handy and dive in!

      Yup.

      And after many years of doing things which make your applications buggy, hard to maintain, full of "cute" tricks, no security, no comments, you finally start doing things properly.

      Yup, dive right in.

      The thing about courses is that you learn the importance of doing things in a particular fashion. So you end up with applications which CAN be maintained, ARE secure, and so on.

      And this comes from experience. I have been doing application development for more years than I care to remember using over 10 different languages, three of which I am actively using right now. I did just dive in. And when I look at what I wrote many years ago, well, I am glad I am the only one that can see that code.

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
    6. Re:Best way to learn by Quay42 · · Score: 5, Interesting

      As a sort of corrolary to this...you need to have something that you're trying to *do*. You really can't open up a reference book and just start to code, you really need a reason to do it. It's sort of like asking someone you know who can speak another language to "say something in German" or whatnot: they're left floundering. If, on the other hand, you ask them to "count to 10 in German" then it's a different story.

      Any new language or software engineering concept I've learned that has been from a book has only been because I had to learn the language for the task at hand or it's been brought to my attention that a particular design pattern (or what have you) may be appropriate. I personally can't just pick up a book on programming with a cup of coffee if I don't have a real reason to.

      Just some thoughts.

      --
      "Has anything you've done made your life better?" - American History X
    7. Re:Best way to learn by Anonymous Coward · · Score: 0

      How long would you have stuck at programming if some slave driver forced you to learn how to write secure, stable, maintainable, commented, properly architected code before you were allowed to dive in with the classic

      10 PRINT "I AM SKILL"
      20 GOTO 10

      ? No, kids need to be able to muck about writing fun stuff and damn the slave-driver's eyes. All the boring enterprise-level stuff you can learn when you're actually interested in it.

    8. Re:Best way to learn by ewhac · · Score: 0, Redundant

      ...Unless the platform is Windows, in which case your only hope is to go out and grab a copy of Petzold.

      Schwab

    9. Re:Best way to learn by Anonymous Coward · · Score: 1, Funny

      There's a big difference between learning to program in another language (especially if you're just picking up another imperative language) and learning to program for the first time.

      It's kinda like the difference between getting laid & losing your virginity...

      Oh, wait.. this is slashdot; bad example.

    10. Re:Best way to learn by Anonymous Coward · · Score: 0

      Why was this modded insightful? How about +5 - funny?

      Once you have learned the fundamentals of programming, this is the best way to pick up new languages, but it is absolutely the worst way to learn programming!

    11. Re:Best way to learn by Master+of+Transhuman · · Score: 0, Flamebait


      Yeah, right.

      Which is why twenty five years after I learned - including reading everything on structured programming, structured system design, i.e., all the how-to-program-the-RIGHT-way stuff I could find - most of the apps I use were designed by idiots and crash most of the time.

      The RIGHT way to learn programming is to first read a book that explains the RIGHT way to program.

      I have yet in twenty five years seen code written by, met, read of, or even heard of a competent programmer. I assume they exist somewhere, but you can't prove it by the stuff on the market OR in open source.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    12. Re:Best way to learn by RetroGeek · · Score: 1

      Which is how I started. Then I had to unlearn all the bad habits.

      There is nothing wrong with mucking around, but you DO need to learn proper methods. Even just mucking around can be a pain if you are constantly over-flowing buffers, over-writing variables in strange places, making everything global, etc.

      Its like driving. Yes any kid can get behind the wheel, but to do it right you need instruction.

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
    13. Re:Best way to learn by armando_wall · · Score: 3, Insightful

      Actaully learning the proper way to program is far more difficult to get from a book. This is one of the major things I learned while getting my degree. This is also the major reason that I rarely hire someone without a degree.

      Anyone can write code, but not everyone can program.

      That applies to everybody, including the ones with a degree.

      See the talent, not the degree.

    14. Re:Best way to learn by kberg108 · · Score: 0

      Do what I did. Don't go to college and then you don't have to code for companies that act just like the schools from which they fill thier ranks.

      --
      I like things that are sweet and not things that are lame. --
    15. Re:Best way to learn by McAddress · · Score: 0, Redundant
      ..Unless the platform is Windows, in which case your only hope is to go out and grab a copy of Petzold.

      and a case of zantac b/c you are running windows.

    16. Re:Best way to learn by CuteAlien · · Score: 2, Insightful

      Agreed. I learned programming that way, but i have to admit that university did teach me a lot about algorithms wich helped a lot to understand what i was doing and even more - what i did in stupid ways.

      And each time i had to learn a new programming language, first thing i did was sit down and write a small game. Just a fun way to get familar with new languages, even if those games usually did suck :)

    17. Re:Best way to learn by imbaczek · · Score: 1

      Anyone can write code, but not everyone can program.

      This is very important. I suggest buying another book after that, but this time about algorithms. My favourites are CLRS (HUGE, I know, but arguably the best availible) and the one by Wirth. (unfortunately it seems it isn't in print anymore.) (Yes, I know we don't like Pascal, but it's still much better than C for learners IMHO.)

    18. Re:Best way to learn by KrispyKringle · · Score: 4, Insightful
      Perhaps a degree isn't the best way to spend your money. I'll give you that.

      Past that, though, I'd be very interested to see your arguments that a degree doesn't teach you anything. Sure, you could go learn it from books, on your own, perhaps. If you were a genius. But without someone to guide you, to show you what to learn (because you just don't know what you don't know), you've got a far more difficult task ahead of you to learn the same things. And only a very small number of people I've met can learn everything they need completely on their own (coding, systems administration, and so forth are pretty easy--but they aren't what I'm talking about).

      University degrees vary, admittedly. Some really are just how to code. And those don't get you anything you couldn't learn on your own. But some teach you computer science (which has about as much to do with coding as civil engineering has to do with construction work). Calculus is useless, perhaps, but math is not. Algorithm design allows you to learn about what problems can and cannot be solved. Why encryption works and which technologies can be broken. How to design programs and algorithms which will always give you the right answer. How to implement a system which you can prove to be correct, and which you can prove will always execute in a certain amount of time. How a compiler works, and how we know it can deal with any legal input (and detect any illegal input).

      Any joker can learn to whip shit up in PHP. Anybody, given a little time, can learn to do application programming. Not to deride those, either; they're fun and valuable. But if you haven't learned these things (and from the sound of your post, I'd guess you didn't), you don't know how valuable they are. Or perhaps you learned things you didn't need for your job. Fair enough. But there's more to being satisfied than raking in the big bucks. And academics, as much as you may not appreciate them, are in fact valuable.

      A lot of universities have serious flaws in their programs. But that doesn't mean they are worthless. Like I said, learning on your own is great. But you don't know what you don't know.

    19. Re:Best way to learn by bryanthompson · · Score: 1

      no kidding, what especially pissed me off was the professors who couldn't write a real-world type of program if their life depended on it, let alone find their own ass with both hands and a flashlight. It's pathetic.

      I wish real-world experience counted for SOMETHING. Any asshat can sit through wasteful, useless classes, that doesn't make them smarter or more qualified.

    20. Re:Best way to learn by jd142 · · Score: 2, Insightful

      No, that's a good way to learn how to do a task.

      I've seen a number of people come and go that learned how to program that way. They could accomplish things; their programs ran. But they didn't have the concepts of programming down, the very basics like types of sorting techniques, objects, reasons for breaking things out into functions, etc.

      What a more formal education gives you, or should give, is a well rounded approach that teaches things you don't need to know immediately but that will come in useful in the future.

    21. Re:Best way to learn by FictionPimp · · Score: 2, Interesting

      This is exactly the problem I have. I spend a lot of time reading books on programming. I have a good background in a lot of languages, but the problem i'm having is I lack projects to work on. Sure i get little webpage script requests from friends, or a regex for some text file parsing, or maybe even a small app to do something mildly amusing. But I lack real world projects to perfect my skills on. My last job had a lot of projects, i worked on our software, on our reports, and on our support center tracking software (which i had to write by hand), but now that i'm diving into assembly and trying to get better at c and c++ i'm finding myself at a loss of what to do. What I would like to see is a book that tests you with challeges for the learning programer, then a chapter going over how the author would of solved this problem and why, with a CD containing all the source material to approch the problem, and possibly the solution program. Anyone know of something like this out there?

    22. Re:Best way to learn by IWorkForMorons · · Score: 1

      This is also the major reason that I rarely hire someone without a degree.

      Every time I hear this argument, I have to laugh. I usually get a little upset and disappointed too, because it is one of the most inaccurate indicators of talent. I do not have a degree. I went to what most people would consider a community college. I took a three year programmer/analyst course. I learned how to program. That's right...I didn't learn a language, I learned how to program. Since it was a business programming course, I also learn the entire process from analysis and talking with clients to coding and making a finished product, but I want to focus on the programming.

      Point is that when I was looking for a job (especially at job fairs), I would talk to a rep and get along fairly well. I'd find out that they work in (for example) C++ connecting to an Oracle database to record data from something. Then they ask me where I went to school, and as soon as I said the college everything changed. It was like I was no longer capable of understanding him anymore. Not in their eyes anyways. It didn't matter that I just finished my final project in C++. Or that the course has been highly regarded by many companies. I didn't have a degree, which obviously meant I wasn't smart enough. Meanwhile, university CS students, who for the most part study math and do little work on an actual computer, are being hired for jobs they are not qualified for. Sure, you want an OS written, maybe some drivers, maybe a new memory management system for an embedded device...hire a CS student. Use the knowledge they learn for what it was meant for. You want an order entry/inventory system that will also write out your accounting information to the appropriety format for your bank/accountant/wife...hire me....

    23. Re:Best way to learn by Anonymous Coward · · Score: 0

      Most people that have a degree can write code and do some level of design, but they can't do the craft of programming. In fact, I find that those with previous experience usually are WORSE at the craft of programming than they were when they entered University, and that it is hard to make them unlearn enough to become better at it.

      The problem seems to be that at most universities etc, people are pushed through a series of small programs that are then discarded. This leads them to the habits that work for that case, but not for all the other cases. Then these habits are pushed in over a five year period, and end up extremely ingrained.

      Eivind.

    24. Re:Best way to learn by M.C.+Hampster · · Score: 4, Insightful

      From the grandparent:

      The best way to learn how to program is to sit down in front of a computer with a reference handy and dive in!

      Most universities don't teach "programming". They are teaching "computer science". You might do well to learn the difference.

      If you just want to be a programmer, you might want to look at something like CIS.

      --
      Forget the whales - save the babies.
    25. Re:Best way to learn by Daniel+Dvorkin · · Score: 2, Insightful

      Funny, what really pisses me off is people who write bloated, inefficient, buggy code while they're bitching and whining about all those smarty-pants egghead ivory-tower perfesser types who don't know how things work in the Real World(tm).

      Here's a newsflash for you: most CS professors worth their salt have many, many more years of practical programming under their belts than you do, and the theoretical stuff is in any decent CS curriculum for a reason. Anyone can learn to hack together a program that kinda sorta does what it's supposed to do, eventually, most of the time. But until you learn the math that underlies all programming, you will be a lousy programmer. End of story.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    26. Re:Best way to learn by Stween · · Score: 3, Insightful

      Thankyou. I can't stand these folks who think a Computing Science degree is meant to teach people how to program, they're obviously missing the whole point.

      Ideally, a Computing Science degree is meant to teach people who want to learn something about Computing Science (and there's a hell of a lot of it out there, so even a degree is only the tip of the iceberg). If those same people are career motivated too, then well done them.

    27. Re:Best way to learn by DrPascal · · Score: 3, Insightful

      Every time I hear someone whining about not getting a job because they don't have a degree, I have to laugh.

      I don't have my degree yet either, and I don't blame companies for not hiring without a degree. It's a baseline ... a common ground. Whether or not someone is talented is far more important (I agree with you), but you learn more things at college than how to program. You learn how to manage time, follow coding guidelines, and stick with a goal and see it through for N years.

      I've seen many an idiot graduate college, but I've also seen many programmers that think they're great until they have to work in a group with others and follow a coding style or come to some sort of agreement on design/angle. It's more than sitting at home alone writing up the next DB handler.

      I realized that the degree is my foot in the door to a lot of companies, so I'm taking night school classes while I work so I can get that foot in. Get a job without a degree? You are lucky. Don't get one? Go back to college or switch careers. The goal of a good hirer for a company is not to hire neither the idiot with the degree nor the genius without one, but the genius WITH one. Remember that.

      --
      DrPascal: Not the language, the mathematician.
    28. Re:Best way to learn by Anonymous Coward · · Score: 0

      See the talent, not the degree.
      Why does talent matter? I would be much more interested in experience and drive than talent. Hell, I'd take a pretty-good-skill person who knows what he's doing and actually gives a damn over a talented, unmotivated, inexperienced person any day. Talented people tend to think, "ooh, I'm God's gift to programming!" and ignore the fact that they don't really know anything. The way a degree is supposed to work is that the University certifies that the degree holder has enough talent, experience (though this is often a low bar), and competence, to do the job they majored in. Sadly, it rarely actually works this way, so it's virtually worthless as an indicator, but still ;)

    29. Re:Best way to learn by IWorkForMorons · · Score: 1

      Right...so you believe it's OK for people to discriminate against you for not having a degree as opposed to not being able to program. I see. So instead of bucking the trend and showing employers that you are just as qualified if not more then someone with a degree, you just spend the ungodly amount of money to get your degree. A degree does not mean you can program, or that you can enter into a group and get the information you need to do your job, or even that you can tie your bloody shoe laces. A degree just means you had the time and money get it, not how much you know or how good you are. And THAT is what I want employers to understand....

    30. Re:Best way to learn by jhoger · · Score: 1

      Eventually you want to read and be instructed in the trade if you want to go far, but I'd warrant that it's not how the best of us started out.

      The best of us started out with a home computer/hobbyist machine connected to a TV that gave us an OK prompt when we turned it on and waited for programmatic instructions.

      That and program listings in magazines to type in that didn't quite work since we always typed something wrong. Even in BASIC typing in other people's code was a good way to see reasonably commented, structured (GOSUB) vs. spaghetti GOTO messes.

      Good practices can come later. First the student needs to figure out what the machine can do (mechanism) before we impose 'the rules' (policy). You've got to keep the kid interested.

    31. Re:Best way to learn by nule.org · · Score: 1
      Being a relatively successful coder without a degree, I'm curious as to what skills related to programming are taught in college that you find are lacking from a programmer without that education? In my experience, if you were to graph programmers by their skills the curve for college education programmers would be pretty much identical to the not college educated curve.


      Do you give points if a person is at least still working on their degree (I'm about 100 credits into a BS/Math)? What if the degree's not CS? I think college teaches you how to learn, not how to program. Once you know how to learn and how to investigate problems, you then have the tools to be a good programmer. Again, my experience is no doubt different than yours.

    32. Re:Best way to learn by Otto · · Score: 2, Insightful

      My suggestion: Start taking stuff apart. I mean, you're a computer guy. You've likely got stuff that your computer talks to. Learn to program those devices. It doesn't have to be complex hardware driver type crap, just start reverse engineering something and brainstorm what kind of cool stuff you can program it to do. Hell, go get a set of Lego Mindstorms and ignore their control software. Write your own. Think big, and then break it down into small sections. If that doesn't give you a project to do, then nothing will.

      You *don't* need a specific goal to reach to program something for fun. You just need a *reason* to do it, and that reason can be as simple as "I got this cool new toy and I want to figure out how the hell it works".

      --
      - Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
    33. Re:Best way to learn by FictionPimp · · Score: 0

      Thats actually a reall cool idea. I never thought of the lego thing. I might go pick me up a set tonight.

    34. Re:Best way to learn by Anonymous Coward · · Score: 0

      Really depends how much experience you have -- it seems to me that if you've been a programmer for a few years, not many of the business/database programming jobs are going to put any emphisis on a CS degree or where you got it.

      However, if you're right out of school or real young, a degree is better than nothing (although real world interships/jobs are better than just a degree). Also, having no college whatsoever gets you binned an idiot in modern society. Even if you have a psych degree or whatever, it's going to look a lot better than "high school grad".

    35. Re:Best way to learn by OldCrasher · · Score: 1

      I object on every point. Universities are there to make sure they can say they handed out so many BSc's, so many BA's, so many Masters, and so many PhD's. They are not there to teach you how to become good at your chosen profession.

      I did a Comp Sci degree. From day one I knew more about computers, programming, getting systems to work, and generally getting around the business that most of the lecturers. And I was not alone.

      I found University an appaling waste of my time. I learnt more in the 3 months after I finished that the 3 years there.

      Many people left the degree with good passes and still could not tell you how to create a system or determine which way up a keyboard was meant to be placed.

      Inspired people should probably do degrees in something else, anything else other than CS. CS does not teach you what you need to know about what you will need in business.

      Part of this is inherent. Computer work in the real world is a group affair. Computing at Uni has to be a single persons work. The two are at odds with each other. Further, most universities while they have some top-notch systems, rarely do enough intersting stuff with them for the CS'ers, such that once out of University most people if they go into industry, will end up quickly doing more interesting computing on the PC on their desk.

      Computing is not for everyone. I taught computing to business people, years ago, and was surprised that few of them could get their heads around Arrays. Simple stuff to me - essence of life - but to them it was so abstract it didn't mean anything to them.

      I did my degree 20 years ago. Today it is just a bad memory. The skills I have today are based on my aptitude for the business and my enthusiasm to create new things. If I had not these qualities when I went to University, there is no way they could have taught them to me.

      And in this day and age... Do Art History, it would be much more useful 1 year out than your CS.

    36. Re:Best way to learn by kisielk · · Score: 1

      EXACTLY!

      I think you hit the nail on the head with this comment. I can certainly relate to the foregin language thing as people always ask me "Say something in Polish", and I'm left there looking stupid.

      Similarly with programming languages, I can never pick one up unless I really need to do something that I think it will help me solve.

    37. Re:Best way to learn by KrispyKringle · · Score: 4, Insightful
      You may disagree on every point, but I think you pretty much make my case for me. You say that you knew more about ``computers, programming, getting systems to work, and generally getting around the business than most of the lecturers...CS does not teach you what you need to know about what you will need in business [sic]''.

      This I agree with entierly. Now, this depends a lot on where you go, for sure (for example, where I am a student, we have many group projects, precisely to teach more applicable programming skills), but many computer science programs (and indeed, what makes it computer science instead of IT or coding) teach theory. They leave it to you to learn the (relatively easy) application. For example, I've learned languages that I will never use in work. Ever. But I can learn a new language of most sorts in a few hours.

      There are many facets to computer science, and it seems you've only seen a few. For example, I have a professor who does very well-funded secure systems work for the DOD (he's been mentioned on Slashdot in the past). If that isn't practical application, I don't know what is. At the same time, I have another who's primary interest is quantum computing theory, something not likely to be remotely practical for many years or decades (I believe the highest number factored so far was 15).

      You remind me a lot of a business student who was taking a computer science class I was in. He made a jerkoff statement about how business computing classes (in which he was learning Microsoft .NET) didn't bother to teach how hash tables actually work, but just how to use the implementation. He argued that learning how they work is a waste of time, since in the real world, you'll only have to implement the .NET libraries, not actually code a hash table from scratch.

      His failure of thinking is pretty obvious. Anyone can learn to use the .NET libraries in a few hours (even him). But in a few years, when .NET is out and something else is in, he's gotta learn that all over again. And anyway, all that aside, somebody's gotta actually write the libraries, even the ones at Microsoft.

      You sound like you do a lot of applied computer science--systems engineering, administration, perhaps coding--but this isn't what computer science is all about. If your eyes glaze over at the thought of algorithm design or proofs of correctness, you might still be a perfectly decent coder, but computer science probably isn't for you. Don't get me wrong, either. I'm a student, but I also work as a systems programmer. And a lot of the skills I knew from classes really weren't applicable. I could code, but I needed a lot of work on my organizational and project-management skills. And to be honest, pretty much everything I know about systems administration, Linux, BSD, and networking I learned on my own. What I learned in school, you are right, was not specifically what I needed to do my job. It was more.

      And I think you are backwards about Universities trying to make sure they handed out ``so many'' degrees. If they hand out to many, they become devalued. It's all about keeping themselves exclusive that makes anyone willing to pay tuition.

    38. Re:Best way to learn by Cska+Sofia · · Score: 1
      CS does not teach you what you need to know about what you will need in business.

      Oops. If you went into a computer science degree expecting to learn about business, no wonder you were disappointed.

    39. Re:Best way to learn by Anonymous Coward · · Score: 0

      Nowdays, it seems most of my toy programs involve organizing all the data I've accumulated on my hard drives.

      By data you mean porn, right?

    40. Re:Best way to learn by antiMStroll · · Score: 1

      No, the idea is to find the genius without the degree. The one with will want more money. ;)

    41. Re:Best way to learn by bob65 · · Score: 1
      If your eyes glaze over at the thought of algorithm design or proofs of correctness, you might still be a perfectly decent coder, but computer science probably isn't for you

      Which is why I am so surprised by the sheer number of people doing Computer Science degrees. If you took a look at the typical CS curriculum, you would think that the number of people doing a CS degree wouldn't be any more than the number of people doing, say, a Math of Physics degree. And yet there are sometims as many as 5 TIMES more poeple doing CS degress - WHY?

    42. Re:Best way to learn by strider3700 · · Score: 1

      I didn't intend for my degree comment to become such a flamewar. The reason I mostly hire degree's is because I have confidence that in getting the piece of paper they will most likely have developed the skills I require. So they make it further in the shortlisting then people without degrees in general. When you post a position and get 500-1000 resumes you need quick and easy ways to cut down that list. Degree or equivalent experience is an easy way to get to the list that I actually take the time and read the entire resume. If you don't have it you may be a god but I don't have the time to identify that fact. Yes my system is flawed but I have yet to locate a better way of doing that initial cut if I go to resumes. My prefered method of hiring involves recomendations from friends in the industry. Since we all went to university we tend to know others with degrees...

    43. Re:Best way to learn by Anonymous Coward · · Score: 0

      the best way to learn to program is to make a little formation to learn the concept of the language ( java, XML, DotNet) bur after it's to program program again over again different website.

      Mec nu

    44. Re:Best way to learn by OldCrasher · · Score: 1

      In my current role I am a CTO for a small startup. I do everything from architecture, coding, pulling cable, making sure the backups are done, creating data table space on the servers, putting fax paper in the fax machine, making sure the refrigerator is full of Coke cans, through buying the systems everyone works on. All has to be within budget and on time. And the investors and clients have to see that.

      Over the years I have build ASIC chips, coded parallel processing systems, real-time control systems, database systems, comms systems, yack, yack, yack.

      I was invited to go to Rutgers University, here in NJ, a few years ago to discuss Industry/University partnerships. They were very gracious and had several senior faculty members give presentations about their work. They were doing interesting work. One was doing distributed parallel processing, one doing some work on 'data fountains' (what we would call wireless access points.) These were solid projects but each lacked a great deal of what was needed to make them viable solutions in the real world.

      I don't doubt you are having a cool time at University, but after 20 years of lay-offs, down sizings, arrogant management, and drop-dead dumb co-workers, I have to say that from my experience you have a few lessons to learn that no University can ever teach you.

    45. Re:Best way to learn by PantsWearer · · Score: 1
      I don't doubt you are having a cool time at University, but after 20 years of lay-offs, down sizings, arrogant management, and drop-dead dumb co-workers, I have to say that from my experience you have a few lessons to learn that no University can ever teach you.

      I agree with you that there are tons of things that University didn't teach me. But there are also at least as many things that I learned in University and I could not have learned in a working environment, but have made me more productive. These are the things that deal with good design, good algorithm use, etc.

      Yes, I've gone through lay-offs, down sizings, etc. and I never learned about those things in University, but I also never learned when and where to cache data, how to write an efficient query or how to parse text for location information at work; these things I learned while getting my BS and MS.

      --
      Be glad life is unfair, otherwise we'd deserve all this.
    46. Re:Best way to learn by PantsWearer · · Score: 1
      It's not discrimination, it's proof that you did something to a certain level. One of the reasons that everyone gets a degree these days is because that high school diploma doesn't make you stand out as much as it did 50 years ago, when a drop out could still be gainfully employed just about everywhere.

      Saying that they're discriminating because you don't have a degree is no different that discriminating because you have no experience or have no skills whatsoever. In other words, it isn't.

      --
      Be glad life is unfair, otherwise we'd deserve all this.
    47. Re:Best way to learn by nule.org · · Score: 1
      Thanks for the reply - I certainly hope you don't think my query was a "flame" - I didn't intend it that way. I was curious to find out your reasoning, because even though I've never had problems finding work, I do know that my resume gets summarily discarded from about 5% of the desks it lands on. That could be the degree, or it could be that they don't like people with 10 character last names.

      I was also intrigued by your post because you stated that the best way to learn programming is by picking up a "learn in 21 days" book and then went on to say you only hire programmers with degrees. That seemed a bit inconsistent, but I understand the difficulties of finding the needle in the haystack. You clearly understand the risk you run using the elimination criteria you use. Thanks again for the answer.

    48. Re:Best way to learn by KrispyKringle · · Score: 1
      See, I'm not trying to be rude, but I do think I understand what you are saying. Problem is, there's something I'm trying to tell you that you don't get.

      I have no doubt that the business world teaches things that university doesn't. I said as much; in my (admittedly more limited) work experience, I've learned a lot of stuff I didn't learn (and never will learn, most likely) in classes. But they aren't the same things. What I learned at work was applied. It was organization, management, planning, and basic work skills. Of course, I also learned technologies like PHP, Perl, pretty much all the systems administration I know (Linux and BSD, Apache, Postfix, MySQL, among others), a lot of networking hacks and so forth, that would never be taught in a theory-oriented computer science class.

      One thing I didn't learn on the job, though, was how RSA works. Or how to compute the difficulty of a sorting problem or choose the best data structure or search algorithm for a particular function. How buffer overflows work, or how to code so that I maximize locality to improve caching. And a lot of far more theory-oriented stuff, like proofs of correctness, statistical sampling, and so forth.

      You clearly know a lot about business. I don't doubt that. And I'm sure I could learn a lot from you. My point is simply that yes, I have a few things to learn that I can't learn at school. I admitted that. But while you've learned coding, sytems administration, and business management, I've been studying computer science. Saying that my degree in computer science leaves me without knowledge of those things is like saying a degree in chemistry leaves you without valuable accounting skills. Well, duh. I'm not studying business; I'm studying computer science. And as I said, contrary to popular belief, computer science isn't coding, or programming, or systems administration. I'm sure you do all those things well, but before you speak about what I don't know, take a few courses in computer science. You'll find that it's not at all what you most likely expect (here, at least; like I said, many schools teach it differently, and some places all it is is coding).

      Look, if you give me a business to run, I'm up the creek. I wouldn't know what to do. But if I give you, I don't know, a randomized quicksort algorithm to show the running-time of, or something involving the Polya Urn Scheme, or the expectation value of the Birthday Problem, or ask you to prove the security of a public-key encryption system, can you answer those off the bat? If so, I take back everything I said. Mostly.

    49. Re:Best way to learn by Anonymous Coward · · Score: 0

      Yeah! You get to spend your day washing cars, instead!

    50. Re:Best way to learn by OldCrasher · · Score: 1

      I'm sorry if I came across as rude, it was not intended.

      Comp Sci is an odd animal. The teaching of algorithms and numerical analysis were small parts of my degree. As you say, different schools teach it in different ways, and given my options again I would have gone to a different university to do my courses.

      That said, in all the years I have been generating solutions for people I have only ever used one mathamatical formula (Boyles Law). I have used may sort algorithms, but after the 4th or 5th decided that the language libraries generally had good enough algorithms. I found that the criteria for getting things to work changed. Where in school it had been "the best wins," in the office it was "what fits in 128 bytes?" or "can it be done in 2 days?" These were facets of computing that cut across the lines, be they Computer Science, Software Engineering, or general purpose hacking.

      I find it funny that you think of me as a business person. I suppose to an extent I am, but only so far as I need to find work so that I can eat and buy toys. I love computing. Always have. (Saw my first computer in 1965, took up a good bit of a room and it had less power that a wristwatch does today)

      I program for a living. That means understanding not just how to type code in, but how to structure applications to best handle a users needs, to fit within artificial limits (like cost, machine capabilities, user experience), and to make the systems seem simple enough to be able to have people run them.

      Computer Science has its place. Understanding that one algorithm is more suitable than another is definitely a desireable skill. Understanding how to build applications when the technology has moved along through many generations, and what you thought once was tough is now just one small part of a hardware call, is also a skill that many never quite catch on to. In 6 or 7 years time the technology you and I are using today will be old and stale. The new stuff will be fast and flashy. It will have every kind of sort you ever heard of and a few more besides as part of some distributed ether library, run on a cluster of machines in Russia, China and India. It will have 3D graphic features to generate component manufacturing instructions for instant prototype component creation on a machine in Dusseldorf, then turn the same thing into metal or ceramics in a machine tool in Indianapolis, or Prague, or Jakarta.

      Someone will write that code. It won't be me. If you're lucky it could be you. It will be hard, it will take a long time to come together, it will take changes in technology and thinking. And the people that do it will be masters. But at the end of the day will they be Computer Scientists or just ordinary folks that worked long hours?

      Your University courses will give you the ground work to start the process of teaching yourself what you will need in the future. If all you take from your university is the thirst for knowledge then they will have given you all you need. But if they give you algorithms, and concrete views of what should and shouldn't be, then you have lost.

      And in closing, remember the one truth:
      Computers are for people, are used by people, and built by people. People count more than computers.

    51. Re:Best way to learn by KrispyKringle · · Score: 1
      You didn't come across as rude. I just wanted to make sure I hadn't. ;)

      I think we've both converged to the center enough that I don't have any argument left. I agree with your post. My point was merely that people who argue that computer science degrees didn't help them in the real world didn't understand what they signed up to study.

      It's been good talking to you. This is the part of Slashdot that's at least somewhat wortwhile.

    52. Re:Best way to learn by Anonymous Coward · · Score: 0

      you could go learn it from books, on your own, perhaps. If you were a genius.

      Thank you. Nobody's ever called me that before :o)

  3. HUH? by Anonymous Coward · · Score: 4, Funny

    Why Java? Everyone knows VB is the language of certified professionals.

    1. Re:HUH? by Anonymous Coward · · Score: 0

      More like certified loonies.

    2. Re:HUH? by FuzzyBad-Mofo · · Score: 1

      I think you misspelled professionaly certifiable. ;)

    3. Re:HUH? by rsborg · · Score: 2, Funny
      Everyone knows VB is the language of certified professionals

      Don't you mean Certifiable professionals?

      --
      Make sure everyone's vote counts: Verified Voting
    4. Re:HUH? by Tassach · · Score: 3, Insightful

      VB is actually a non-sucky choice as a teaching language. It's pretty beginner-friendly, has practical applicability, and (in the form of VBA) is already available on most computers. Most importantly, you can use the same language to teach both procedural and object-oriented concepts, something that you can't do in Java. VB/VBA is far from perfect but there are far worse languages to chose as a teaching tool.

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    5. Re:HUH? by Anonymous Coward · · Score: 0

      How do you suggest it be used to teach inheritance?

    6. Re:HUH? by spray_john · · Score: 3, Insightful

      Although it's a very valuable motivator to have a learner able to create GUIs just like they use everyday with a few clicks, I fear for the long term education of the individual.

      Someone who cut their teeth on VB is likely to look at the first steps into C and think "What? I don't want to write command-line programs!". They're not even going to learn what compilation is. I'd say that VB misrepresents computer programming in general to a beginner.

      VB is okay for what it's designed for: quick 'n' dirty win32 RAD, but I would question the wisdom of its use as a stepping stone to any other programming. Better to start with real basics and build from there.

    7. Re:HUH? by DrEldarion · · Score: 2, Interesting

      The problem with VB is that it makes everything too easy! You want to make a web browsing window in your application? Just drag the window, add a couple buttons, do one line of code for each button to make them do forward, back, reload, etc. Want to interface with a database? Just select which one you want to use and VB does the rest.

      Once people get used to VB doing everything for them, they don't want to switch over to a more complicated language.

    8. Re:HUH? by Anonymous Coward · · Score: 0

      Well, users don't want to use command line programs, so of course your average joe programmer is not going to want to write them either.

      That's the big problem with all of the non-Javascript / non-VB suggestions here. Kids nowdays think of computers as visual things -- if they don't see a GUI, they aren't going to be interested. Java/Python/C/Lisp/Scheme/All Other Ridiculous Suggestions all require learning a complex GUI library and are NOT going to be accessible to kids. They invented LOGO for a reason, you know.

    9. Re:HUH? by ibennetch · · Score: 1

      So what's the problem with this? I mean, _I_ understand the benefits of knowing a "real" programming language, but I have Microsoft-centric friends who truely believe that C, C++, Java, etc are dead (let's not even go to their opinions of Perl, PHP, and Python) -- because of Visual Basic and VB.net. If all one has to do in VB is click-n-drag to create a beautiful window and form; what can I tell them the benefit is in learning the "hard" way? Some of these people think that no one uses C++ anymore because it's "too hard". Argh! How do I argue with that (or even explain myself)?

    10. Re:HUH? by Tassach · · Score: 2, Insightful
      There's a big difference between teaching someone how to write VB programs, and using VB as a tool to teach someone general programming concepts.

      If you're using VB as an instructional tool, you don't have to teach the student drag-and-drop programming; you teach them the features you want them to learn. VB programs do not have to have to use forms, you know.

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    11. Re:HUH? by frission · · Score: 2, Insightful

      i'd have to disagree and say that VB is probably one of the worst languages to start off with. Yes, it's easy...the problem is that from then on, if you get really good at VB, then you'll ALWAYS be struggling to learn a new language. Most languages i've come across that are any good have more of a C++ syntax. Once you learn C++ decently (I don't think anyone ever masters it...but hey...i'm probably wrong), then everything is a step down in difficulty. With VB, everything is stepping up... 1st choice, i'd chose c++, even if you never use it, 2nd probably java, that way you don't really have to teach pointer arithmetic (PITA) or memory management.

    12. Re:HUH? by Kphrak · · Score: 4, Informative

      Yes, VBA is available on most computers, IF the computer is running Microsoft Windows with Microsoft Office.

      Yes, VB teaches beginners. It teaches them that the only system worth coding on is a PC running Windows, because otherwise they won't be able to click and drop their components. The first thing a beginner learns is that they can write programs that look just like the Windows programs (i.e. Internet Explorer, Access, Excel), without first hearing that the reason that they can is that they are, in fact, starting the Windows programs, and that little Access app they wrote using New Application.thisMethod and New Application.thatMethod just called two separate copies of an Office application. And guess what? If you forget to "garbage-collect" (well, really Application.Close), which 99% of beginners do, you won't get a warning of any kind. Rather, the applications will just stay in your system memory, waiting for a close command that will never appear. I've seen programs that could use 200K of memory (large in itself, but livable considering the VB interpreter environment) using almost 128 megs.

      That's just Visual Basic, which is pretty awful unless you're making a demo for your local suit. VBA is much worse; in fact, I think it's the spawn of Satan himself. At least you know when the application appears, because you have to open it to start your program, but since VBA is just macros within the main window, you cannot create menus, and the first thing you get to choose is the color of your window. This has spawned horrors of beginning GUI design such as magenta-colored windows, script fonts, and labels that respond to clicks to bring up more windows, just because programming is a last resort for VB and VBA; the star of the show is the decision of whether to make your font Script or Wingdings.

      This rant should be taken in view of my recent experiences; I have rewritten several programs built by budding VB6.0 programmers in the past few months, each one more horrendous than the last. VB should only be shown to programmers after they have used a programming language, not a set of GUI design macros. Make no mistake, VB is like the cardboard televisions at the local furniture store: for display purposes only.

      --

      There's no sig like this sig anywhere near this sig, so this must be the sig.
    13. Re:HUH? by FuzzyBad-Mofo · · Score: 1

      I'm sure your friends will have plenty of work loading speaker bracelets onto the candle truck when Micros~1 finally goes tits up.

    14. Re:HUH? by Anonymous Coward · · Score: 0

      Because the Visual* development tools are total crap. Try to do something even moderately outside the scope of the framework presented and watch your cool idea disappear into a puff of smoke representing your hours of searching for non-existent documentation.

      I really did try to write code for Windows as a learning experience for awhile. It took so long to find the documentation for something I thought to be trivial that it was more pain than it was worth.

    15. Re:HUH? by pierpa · · Score: 2, Interesting

      vb is not a language, as delphi is not a language, as asm8086 is not a language. even java can hardly be called a language. they are "working environments". their only purpose to live is within their environment. it is difficult to say where the environment begins and where the languange ends. they work on the basis that there is a certain environment around them. a language exists and "works" also on paper, without a computer elaborating it. yes, fortran and c require "files", and sql requires "tables". java can require a "bitmapped i/o" and a "sound i/o". for java u can have many compilers (actually, many virtual machines, more or less optimized) for many platforms, so it can be said that it is a language that can be implemented on many digital machines. but vb is a programming environment that only works within a perfect copy of the machine crafted to make it work. it requires certain events, certain windows, certain operating system structures. if vb is a language, then also a wordprocessor file is a language. maybe it is more portable too! anyway, vb is dead now and we should be talking about .net

    16. Re:HUH? by Anonymous Coward · · Score: 0

      Kids nowdays think of computers as visual things -- if they don't see a GUI, they aren't going to be interested.
      *ahem* THAT'S THE POINT, RETARD!
      If you can't learn the right way from the bottom up, YOU DO NOT, UNDER ANY CIRCUMSTANCS, HAVE ANY BUSINESS WRITING CODE! It's not that I'm against newbies or anything like that, but there is clearly a right way and a wrong way to program. Programming is more than writing code (or worse, clicking it into existance). JavaScript and VB teach laziness and bad form. Really, that's the problem with the public school system, too, but my blood pressure can't take that discussion right now. This concept of a "learning language" teaches you to write code the easy way so that it appears at first glance to work. If you use a decent language, at least it'll make you write semi-decent code before it'll compile. If you can't cut your teeth on a command line, you shouldn't be biting. There's no reason to learn on a different language than you would write real programs in.

    17. Re:HUH? by Anonymous Coward · · Score: 0

      How do I argue with that
      How about, <dexter>You are stuuuuuupid!</dexter> ;)

      On a serious note, tell them real programmers know what the computer is doing. Insult their intelligence and "skillz" or whatever ;)

    18. Re:HUH? by Anonymous Coward · · Score: 0

      Well, I guess since Joel Spolsky invented Visual Basic for Applications, he is Satan. Which of course makes perfect sense because he is a certifiable fa*got.

    19. Re:HUH? by benja · · Score: 1

      Why can't you teach procedural programming in Java? You can just label every method 'static,' what's the problem?

    20. Re:HUH? by Anonymous Coward · · Score: 0

      FUCK THAT, THOSE MORONIC THIRTEEN YEAR OLD SHOULD BOOTSTRAP THEIR OWN FUCKING OS FROM ASSEMBLER OR LEAVE COMPUTERS TO US REAL MEN!!!!!

      Seriously, there's nothing "bottom up" about command-line programming -- it's an entirely paradigm than GUI programming. (I learned C on a Mac and the runtime had to come with VT emulator because the OS didn't have one.)

      In short, you are old idiot who has been braindamaged by Unix, you write obsolete commandline programs that nobody wants to use, and you are an hostile asshole flaming people trying to teach junior high kids. You should be fired from your job and then die in a ditch.

    21. Re:HUH? by Prior+Restraint · · Score: 1

      Procedural programming is a mindset, not a choice of syntax. I know this because--despite being on a team of Java developers--it's pretty clear that only a small minority of us understand what OO code is.

      Procedural programming is more than just making everything static (although, if one was doing so deliberately, one would want to do that). It's giving MyDataObject public members, or at best a bunch of public getters/setters that do just this.member=foo; and return this.member;. And instead of putting any methods that exclusively act on MyDataObject inside that class, you create a separate "utility" class that has a public method which takes MyDataObject as a parameter, so instead of...

      MyDataObject foo = new MyDataObject();
      foo.doSomething();

      you end up with...

      MyDataObject foo = new MyDataObject();
      MyUtil bar = new MyUtil();
      bar.doSomething(foo);

      But hey, at least I'm not bitter... right?

    22. Re:HUH? by benja · · Score: 1
      All granted, but I still don't understand what would prevent one from using Java for teaching procedural programming?

      (I'm not sure one would want to, mind. But I think if you didn't want to in Java, you wouldn't want to in VB, for similar reasons.)

    23. Re:HUH? by Prior+Restraint · · Score: 1

      As far as I'm concerned, you can do it. I just thought I'd point out that there's a lot more to it than "static". And, I wanted to vent. Working with half a million lines of crap isn't fun.

    24. Re:HUH? by benja · · Score: 1

      Ok, fair enough. To this I agree ;)

    25. Re:HUH? by BandwidthHog · · Score: 1

      Slap some crap together, then throw it at your nine year old and tell him you'll give him $20 if he can figure out that goddamn Runtime Error 3144.

      Oh, that's not quite what you meant, is it?

      --

      Quantum materiae materietur marmota monax si marmota monax materiam possit materiari?
    26. Re:HUH? by Reverend528 · · Score: 1

      VBA is much worse; in fact, I think it's the spawn of Satan himself.

      I'm quite sure if there is a language that evil, it is coldfusion.

  4. Not new by GonzoDave · · Score: 0

    IGN and Bioware have been using this technique to teach C++(for NWN scripting) for 3 years now

  5. I sure don't want to see code written by Anonymous Coward · · Score: 5, Funny

    by someone who learned to code from JS :(

    1. Re:I sure don't want to see code written by Tassach · · Score: 3, Insightful
      A lot of the code you'll maintain was written by people who first learned to code in old-school BASIC (GW-BASIC, Apple BASIC, etc). EG:
      10 PRINT "Enter your name: "
      20 INPUT N$
      30 PRINT "Hello, ", N$
      40 PRINT ""
      50 PRINT "QUIT (Y/N)"
      60 INPUT Q$
      70 IF Q$ = "Y" 90
      80 GOTO 10
      90 PRINT "Goodbye, ",N$
      100 END
      There are few languages worse than old-school BASIC for teaching programming. For example, in many primitive dialects your only control structures were GOTO, GOSUB, IF (with no ELSE!) and FOR / NEXT. It taught a lot of bad habits which had to be unlearned, and left you clueless about constructs like CASE statements, WHILE loops and user-defined functions. However, most programmers who got started in the late 70's and early 80's learned BASIC as their first language. Most of them who went on to program professionally were able to overcome this early handicap :-)
      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    2. Re:I sure don't want to see code written by Firehawke · · Score: 1

      Syntax error in line 70.

      Yeah, yeah, I'm being pedantic, but there's no +1 Smartass mod.. ^_-;

    3. Re:I sure don't want to see code written by Anonymous Coward · · Score: 0

      Why not? Pick ANY language and I feel sure that you would NOT want to have to endure a beginner's code. (What a difficult sentence!)

      JS is probably a good choice as you don't have to worry about compiling. Of course, most browser's error reporting sucks.

    4. Re:I sure don't want to see code written by Tassach · · Score: 1

      Depends on the dialect of BASIC. IIRC, one of the really archaic versions of BASIC I used back in the mesolithic used didn't have a THEN... it was just IF (condition) Linenumber.

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    5. Re:I sure don't want to see code written by Anonymous Coward · · Score: 0

      You're a top-downie, yes?

    6. Re:I sure don't want to see code written by Leeji · · Score: 1

      I've got to agree 100%. The first language I learned was GWBasic on my school's Apple ][e. My first programs were usually more like:

      10 PRINT "Hello ";
      20 GOTO 10

      ... just to watch the neat patterns it made on the screen. I advanced in my programming skill by making much more complex programs, of course. When I first tried to move on to "Turbo Basic," my mind almost couldn't do it. For a while, I simply could not figure out how to program without line numbers. How do you GOTO the beginning of the loop if there's no line number?

      Needless to say, I managed to cleanse myself of that problem. However, it sure is a "dead-end" language to learn.

      --
      It all goes downhill from first post ...
  6. This is wrong on so many levels by Anonymous Coward · · Score: 5, Funny

    Having a programmer's first effort be a JavaScript pop-up with: "Hello YOUR COMPUTER IS BROADCASTING YOUR IP ADDRESS TO THE WORLD!" is just wrong

    1. Re:This is wrong on so many levels by nicodaemos · · Score: 2, Funny

      True, but they may be quickly employable by a number of irritating pop-up advertising companies.

    2. Re:This is wrong on so many levels by ttldkns · · Score: 1

      when i was a confused little boy i bought a "learn javaScript" book as i was too intimidated by books like the 15cm ish thick book on java i have now.
      The book on javascript i bought was great, it taught me about the concept of loops and arrays and things i found difficult to grasp at first. i coded made a crappy little web based encoder program that i was convinced NO ONE but the FBI could break! (u know the one)

      even though this sounds stupid i learnt alot and gained the courage and understanding to try better, more powerful languages.
      Its a good starting point if your maths just aint that good yet.

      --
      How many computers are too many?
    3. Re:This is wrong on so many levels by aflat362 · · Score: 1
      u know the one

      No we don't. Enlighten us.

      --

      Conserve Oil, Recycle, Boycott Walmart

    4. Re:This is wrong on so many levels by ttldkns · · Score: 1

      bit like the one u wrote wen u were learning how to program...


      im not wierd, honest :)

      --
      How many computers are too many?
  7. My thoughts on it by ShecoDu · · Score: 3, Funny

    I bet this article is going to rise a lot of flames... come on.. javascript... slashdot? yeah sure...

    document.write("First Post");

    1. Re:My thoughts on it by FuzzyBad-Mofo · · Score: 1
      function annoy()
      {
      alert('hello');
      setTimeout('annoy()',100);
      }

      annoy();
  8. Why teach programmers, period by Anonymous Coward · · Score: 4, Interesting

    The last thing the world needs right now is more programmers. Teach them some other trade which won't be killed by cheap global labor.

    1. Re:Why teach programmers, period by Thud457 · · Score: 1
      I can't decide whether I want to be a plumber or a mason when my job is outsourced.

      I guess plumbers can charge you triple-time for emergencies, so they have that going for them.

      --

      the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

    2. Re:Why teach programmers, period by the_consumer · · Score: 1, Funny

      Hope you like poop.

      --
      "If you're thinking what I'm thinking, you're right." -
    3. Re:Why teach programmers, period by Oopsz · · Score: 1

      Seen the dilbert where they're complaining about being paid less than the janitor, then the janitor walks by after having plunged a large animal from the bathroom? Some things we're willing to pay people for to not have to deal with ourselves. Waste disposal unit emergencies is one of them.

    4. Re:Why teach programmers, period by kfg · · Score: 4, Informative

      I know how to program. It is not my trade. It never has been, and, God and the economy willing, it never will be (although I'm not averse to churning out some code for recompense now and again as part of a diversified professional portfolio and just for the change of pace).

      I do, however, find it a useful skill that allows me to use my computer to conduct business, perform scientific and engineering tasks and yes, on occasion, save a lot of money on programs and programers. Saved me from all that Quicken/Quick Books lockout nonsense too.

      KFG

    5. Re:Why teach programmers, period by Shimmer · · Score: 1

      Please tell me you're trolling. Aside from being politically dubious, your comment is completely illogical. Don't we also have to teach that "cheap global labor" to program?

      Reminds me of Yogi Berra's famous comment: "No one goes to that restaurant any more -- it's too crowded."

      --
      The most rabid believers in American Exceptionalism are the exact same people whose policies are destroying it.
    6. Re:Why teach programmers, period by mobiGeek · · Score: 1
      Teach them some other trade which won't be killed by cheap global labor.
      Name one.

      I don't think that "C.E.O." is a trade...

      :-)

      --

      ...Beware the IDEs of Microsoft...

    7. Re:Why teach programmers, period by armando_wall · · Score: 1

      The last thing the world needs right now is more programmers.

      That's the longest typo I've ever read. I'm pretty sure you meant "lawyers".

    8. Re:Why teach programmers, period by Tassach · · Score: 1
      Any task that requires on-site physical presence can't be outsourced to Elbonia. Any physical trade which requires real skill and/or craftsmanship is pretty safe. You expect the CEO to fix a leaky pipe or install a new circuit breaker panel? Do you expect the CEO to do the custom woodworking for his executive washroom himself? Do you think the CEO is going to diagnose and resolve a network outage at 3AM?

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    9. Re:Why teach programmers, period by Frizzle+Fry · · Score: 1
      Seen the dilbert where they're complaining about being paid less than the janitor, then the janitor walks by after having plunged a large animal from the bathroom? Some things we're willing to pay people for to not have to deal with ourselves. Waste disposal unit emergencies is one of them.

      If you think this makes plumping different from programming, you obviously haven't had to maintain some of the same code that I have.
      --
      I'd rather be lucky than good.
    10. Re:Why teach programmers, period by Oopsz · · Score: 1

      I don't know about you, but I'd rather debug forty year old fortran than plunge mammals from a forty year old sewer system.

    11. Re:Why teach programmers, period by johnnyb · · Score: 1

      Actually, if we taught everyone to program, that would also mean that we taught them to think logically. I can only think that doing so would make the world a better place.

      What makes a computer even better than a logic class is that with computers, you know for sure at the end if you are logically correct or not, becuase if you aren't, the computing goes BOINK!

    12. Re:Why teach programmers, period by mobiGeek · · Score: 1
      You expect the CEO to fix a leaky pipe or install a new circuit breaker panel?
      Nope, that's what immigrants are brought in to do...along with farming, entry-level manufacturing, working late-shifts, etc...
      --

      ...Beware the IDEs of Microsoft...

  9. Re:javascript is horrible by pi+eater · · Score: 0, Offtopic

    Java isn't as bad as you say.. I use it every day.

    funny shirts.. geeky shirts!

  10. Strongly disagree by Anonymous Coward · · Score: 5, Interesting

    I think the reviewer's premise that 12-13 year old wants to learn programming for a specific task is bull. I think what the book is trying to speak to is how I learned to program: BASIC. I wasn't trying to DO anything specific it was just a good way to start playing around because it came free w/ the computer and you could make it beep or say hi or whatever. I think that posing javascript as a replacement (now that basic does not come packaged with the OS) is a GREAT idea. It's free, there is a developing environment built right in (well with mozilla at least) and it's actually fairly powerful while still beaing easy to learn.

    1. Re:Strongly disagree by TexVex · · Score: 1

      That wasn't the reviewer's premise.

      --
      Fun with Anagarams! LADS HOST, SHALT DOS. HAS DOLTS. AD SLOTHS, HATS SOLD. ASS HO, LTD.
    2. Re:Strongly disagree by HiThere · · Score: 4, Insightful

      But Python is free and available on nearly all OSs. And a decent language. And it comes with a development environment (not a great one, but it works!). And it has a sensible structure (similar to many other languages). And it comes with complete documentation. And....

      Now many of the same things could be said for Java, but I think that Python makes a better first language. In fact, the only competition that I see is Ruby and Lisp. But if you speak English, you'll probably find more help for Python. (And Ruby diagnostics need work!)

      Java is a popular first language in an academic setting, and in that setting it makes sense. But for learning on your own I feel that Python is a better choice.

      C ... well, it's available everywhere, and you can find help. But you need to deal with pointers and casts, and the warnings when you mishandle them are obscure. And then there's the gruesome things that you can get used to doing with the preprocessor...that make your code unreadable.

      C++....that's an unmentionable monstrosity. Sorry, but I'd sooner start a beginner with Ada. OTOH, most of the advantages of C++ can be captured in a more reasonable way with D (from Digital Mars). It's also available for free, but it's not available at all for the Mac. Even so, I thing even D is too complex for a first language (besides, it's still beta, or possibly alpha [it's gotten up to around version 0.8 over the last couple of years]).

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    3. Re:Strongly disagree by Anonymous Coward · · Score: 0

      Python might be fine for older kids or university students, but I get the idea that this is aimed at the 10 PRINT "FUCK YOU", : GOTO 10 crowd.

    4. Re:Strongly disagree by deliciousmonster · · Score: 0

      You could make it say "hi"?!? Man, you are a peek MASTER!

      --
      I have a plan. Using mainly spoons, we'll tunnel our way out of the city...
    5. Re:Strongly disagree by haystor · · Score: 5, Informative

      Getting help learning Lisp is difficult for someone learning on their own. With no Lisp knowledge, it's hard to pick the right platform.

      For just learning Lisp, the path I took was:
      1. customizing a .emacs file
      2. customizing emacs packages
      3. writing my own emacs packages

      Most of my learning involved looking at someone else's code and trying to figure out how they did something. It's one thing to learn how a java feature like try/catch works by example, but trying to learn Lisp's defmacro by example is a path to madness. For that, Paul Graham's books are essential.

      The one major benefit to learning Lisp is that it can be bent to your will. This may require a change in mindset from C/Java where your spend the majority of your time conforming your will to fit the language.

      Only in learning Lisp have I again relived the "aha!" that came with the learning of a first programming language.

      --
      t
    6. Re:Strongly disagree by Major_Small · · Score: 2, Interesting
      what's so bad about learning C++ as a first language?

      if you start with C++, you can stay casual and do console input/output/math, or you can go a little more into it and get into functions/pointers/casts... and if you wanted to keep going, C++ could take you as in depth as you could possibly want to go...

      I learned a little bit of VB first, and then went to C++... one thing that annoyed me about learning VB was that the instructor didn't tell us what all the code was actually doing... we just wrote what we wanted where the IDE told us to... and we had to deal with casting and pointers... I don't see how you could introduce programming without the two...

      The way I see it, C++ gives you a much better background in comp sci than some of the other languages, and IMO, a good understanding of computer science is more important than the language your writing using it with...

    7. Re:Strongly disagree by Anonymous Coward · · Score: 0

      Now many of the same things could be said for Java

      Bzzt. By not being able to distinguish between Java and Javascript, you automatically disqualify yourself from being able to provide any useful commentary.

    8. Re:Strongly disagree by Anonymous Coward · · Score: 0

      "I think the reviewer's premise that 12-13 year old wants to learn programming for a specific task is bull."

      It was for me! C64 had a basic game, "Dam Busters"... I got pretty much perfect at the game. BUT, I wanted to do things like blow up the dam to the smallest possible point without winning.

      So, I started learning the code behind it so I could add MORE bombs! No kidding. At 12 (or thereabouts), it was my first programming experience.

    9. Re:Strongly disagree by Anonymous Coward · · Score: 0

      while True:
      [tab]print "Fuck You"

      ...is all it takes in Python. It's a lot easier than you seem to think.

    10. Re:Strongly disagree by HiThere · · Score: 1

      I can distinguish, I just have a hard time taking JavaScript seriously, so I would NEVER recommend it as a first language. That's why it isn't even on the list I presented.

      Yes, I know that it has it's uses. And I'm sure that it's better than it was 10 years ago. But it's not a complete language, and ALL of the other ones that I mentioned are. (You can add modules written in another language to make a composit that is complete...but that doesn't make *it* complete.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  11. javascript is useless by Anonymous Coward · · Score: 0

    Learn programming in Python instead. Remarkably easy, yet powerful - in fact one of the most powerful programming languages you can find, and platform independent.

    1. Re:javascript is useless by Anonymous Coward · · Score: 0

      Powerful ? Apparently your js knowledge is limited to alert("hello world");

      Read this http://c2.com/cgi/wiki?JavaScript

  12. Does it support Lynx? by nacturation · · Score: 1

    Is that even considered a browser these days? :)

    --
    Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    1. Re:Does it support Lynx? by Anonymous Coward · · Score: 0

      If it isn't, I don't know how I'm able to view 99% of the sites I visit with it.

    2. Re:Does it support Lynx? by Anonymous Coward · · Score: 0

      sure it is a browser. the question asked was: is it considered a browser? learn the difference.

    3. Re:Does it support Lynx? by Anonymous Coward · · Score: 0

      If it's a browser, who doesn't considerer it a browser?

  13. Badly titled. by fred87 · · Score: 4, Insightful

    The web browser is *not* an IDE. You do the programming in vim/gedit/notepad. (emacs is a bit much for javascript IMO)

    1. Re:Badly titled. by 31415926535897 · · Score: 1

      The web browser is *not* an IDE

      While this is true, it would be trivial to write a script (Perl, PHP) that would let someone use the browser as an IDE.

      Frankly, I'm quite surprised that the author or publisher of the book didn't provide this mechanism online.

      The advantage to providing this interface to a beginning programmer is that they wouldn't have to worry about the HTML in the least (i.e. "This is how you 'set up' your script...with <html><head><script> etc.)

    2. Re:Badly titled. by drinkypoo · · Score: 2, Informative

      Mozilla or Netscape Communicator is, in fact, an IDE, as it has an HTML editor included.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:Badly titled. by multipartmixed · · Score: 1

      > emacs is a bit much for javascript IMO

      Actually, I use it on a regular basis for just this task, and I even use my regular C-style. The only short-coming is that the C-style I use (which I've used for *years*) doesn't understand C++-style comments (//), so I have to use C-style comments in my JavaScript code, or the colours get all funky.

      I suppose I should break down and fix that someday, but somehow, that's really low on my priority list.

      Given that JavaScript and C share nearly identical syntactical conventions (at least as far as emacs cares ;) means that I have code that looks the way I'm used to it looking, and can use control-meta-q to reindent. And tab will indent how I want it to. And I can edit multiple buffers at the same time.

      Perfect! The only problem is training myself not to m-x compile every time I'm ready to test.

      --

      Do daemons dream of electric sleep()?
  14. Re:How about by objekt404 · · Score: 1

    ...PHP?

    --
    "Good, bad, I'm the guy with the gun."
  15. Re:How about by Anonymous Coward · · Score: 1, Interesting

    none of which come standard w/ the computer or are particularly easy to set up if you know nothing. That was what was great about BASIC and is great about javascript. it's there. you don't have to install, configure, change your path, anything. all you have to do is go.

  16. J != JS by Anonymous Coward · · Score: 0

    Java != JavaScript, but thanks for trying.

  17. Javascript != Java by nitehawk214 · · Score: 4, Insightful

    I know this was meant as funny, but Java is a normal accepted language. Because it is more structured then Perl or other languages, I highly reccomend Java to beginners.

    Javascript, or ECMA script, is a terrible non-standardized (despite being created by a standards board) peice of junk.

    --
    I'm a good cook. I'm a fantastic eater. - Steven Brust
    1. Re:Javascript != Java by Anonymous Coward · · Score: 0

      Java is absolute crap for most beginners.

      Experienced programmers seem to have this blind spot that leads them to underestimate the damage that the unnessecary (to a beginner) object-oriented syntax in java does to someone who doesn't understand the principles that require it there.

      Javascript isn't much better, mind you, but to say that Java is excellent for beginners is a goddamn lie.

    2. Re:Javascript != Java by asyky · · Score: 1
      Experienced programmers seem to have this blind spot that leads them to underestimate the damage that the unnessecary (to a beginner) object-oriented syntax in java does to someone who doesn't understand the principles that require it there.

      If someone wants to learn to program then ignoring oop principles is a really stupid idea. One of the most important if not the most important thing to learn is good design principles, modularity etc. which is inherent in oop (modularity not good design).

      Java is probably the best language to start with in my opinion. If it's taught properly then you'll learn all sorts of useful stuff like oop, cross platform issues, differences between compiled and interpreted languages etc. and the importance of these issues. What's more you don't have to worry about memory management and the like and you'll have learnt a language that's actually useful.

    3. Re:Javascript != Java by BiggerIsBetter · · Score: 1

      I'm not sure Java is the best language to start with, but the whole OO idea relies on being able to visualise code as objects. Having taught OO coding to various folks, I can say that it REALLY doesn't work for some people. They can follow program flow, but they can't visualise objects "talking" to each other.

      BTW, I think the best way to handle OO programming is not some text editor, but an immersive 3D enivronment where you literally build objects and connect signals. That would r0x0r.

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
    4. Re:Javascript != Java by asyky · · Score: 1

      I don't mean that Java is perfect but out of all the alternatives it's the one that I would pick. From what I've seen the problem a lot of people have with learning oop is that for small programs it's overkill. So when they're starting out, trying to explain that instantiating a rectangle object (for example) and telling it to calculate it's own area is the OO way seems to be a bloated and convoluted way of programming (in this case it is but you have to start somewhere). In the Introduction to (OO) Programming course I took a lot of people were saying things like "i wrote it and it works but em it doesn't use classes. is that ok?"

    5. Re:Javascript != Java by asyky · · Score: 1
      BTW, I think the best way to handle OO programming is not some text editor, but an immersive 3D enivronment where you literally build objects and connect signals. That would r0x0r.

      agreed :)

    6. Re:Javascript != Java by BiggerIsBetter · · Score: 3, Insightful

      Fair enough. In that situation, I'd look at something like Python. You can start them off with proceedural "Hello World" stuff, and then move into classes as they get their heads around it.

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
    7. Re:Javascript != Java by fnc · · Score: 1

      While I prefer static typed languages, JavaScript is a nice scripting language. See what can be done using just libraries like BeyondJS http://w3future.com/html/beyondJS/. The problem is not the language, but the lack of standard in HTML document model.

    8. Re:Javascript != Java by imnoteddy · · Score: 1
      Javascript, or ECMA script, is a terrible non-standardized (despite being created by a standards board) peice of junk.

      Some points:

      The name is ECMAScript - one word, not two.

      The only thing nonstandard is Microsoft's bastardized implementation of what it calls JScript. JScript is not ECMAScript/JavaScript.

      ECMAScript/JavaScript was not was not "created by a standards board" as you claim. It was created by Brendan Eich when he was at Netscape.

      It is not a piece of junk. It is a very interesing prototype based with major influences from Self.

      Clearly you don't know what you're talking about.

      --
      No electrons were harmed creating this post, though some may have been subjected to electrical and/or magnetic fields.
  18. rating by Anonymous Coward · · Score: 3, Insightful

    5/5? 5/10?

    useless

    1. Re:rating by 31415926535897 · · Score: 2, Insightful

      5/5? 5/10?

      I believe the standard rating model used here is out of 10 (in this case it would be 5 out of 10 'slashes').

      I think that's safe to infer based on the text of the review.

    2. Re:rating by spoonyfork · · Score: 1

      5/5? 5/10?

      useless

      Would it matter if you knew? Would you value the reviewer's opinion if you did? Every book "review" I've ever read on slashdot has been useless. Sad though, so much potential here but such odd direction. When I see a book review here I think oh, more paid advertising. I like to read the comments, like this one, for a chuckle. :)

      --
      Speak truth to power.
  19. Re:javascript is horrible by AKAImBatman · · Score: 4, Informative

    I *wish* JavaScript had Java like syntax. I can't count how many times I've typed this:


    for(int i=0; i<length; i++);

    when I meant to type this:

    for(var i=0; i<length; i++);

    or even worse:

    function func1()
    {
    for(i=0; i<length; i++) func2(i);
    }

    function func2(item)
    {
    for(i=0; i<length2; i++) //do something with item
    }

    when I meant to type:

    function func1()
    {
    for(var i=0; i<length; i++) func2(i);
    }

    function func2(item)
    {
    for(var i=0; i<length2; i++) //do something with item
    }

    (For those of you who don't know JavaScript, "i" will be global without that "var" definition.)

  20. Random issues I have with Javascript by dmuth · · Score: 4, Interesting

    I've done a fair bit of Javascript programming, I think it's an okay language. It certainly could be worse. But here are some random issues that I think may make it difficult for beginners to pick up:

    1) No print() or echo() function. If you want to write something to the equivilent of stdout, you need to use document.write(). And if you use alert() as you're debugging something, you'll quickly get tired of boxes that pop up, I know I have.

    2) Weird OOP syntax. If you want to create class foo, you first create function foo, then to create a method you go and create function foo.prototype.bar(). I think that's needlessly complicated. It also leaves the beginner open for a shock when they start studing OOP syntax of other languages, where a class is defined and its functions are actually defined INSIDE the class.

    3) No file/database support. Good luck trying to interact with a file or database from Javascript. As the user learns more about programming, they're going to want to use these sorts of things. Javascript just wasn't designed for that.

    Those are the biggest things off the top of my head on why I believe Javascript is not an ideal choice for beginners. (I don't claim to be a JS god, so if I'm wrong about any of the above, someone please correct me...)

    1. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      Actually the document object can be implied, so you can use write() just as you would use alert(). Same difference as print(), except you would need to add your own BR tags.

      No file/database support

      Use IE -- this stuff is very simple with included COM controls.

    2. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0
      What a BS post:


      No print() or echo() function. If you want to write something to the equivilent of stdout, you need to use document.write(). And if you use alert() as you're debugging something, you'll quickly get tired of boxes that pop up, I know I have.


      Your point is? document.write == print with a few more characters, but in an OO style.



      No file/database support. Good luck trying to interact with a file or database from Javascript. As the user learns more about programming, they're going to want to use these sorts of things. Javascript just wasn't designed for that.


      Of course Javascript wasn't designed for that - it's for client side scripting, and file system access would be restricted by the sandbox.


      Sounds like a silly idea for a book!

    3. Re:Random issues I have with Javascript by dmuth · · Score: 3, Interesting

      >Use IE -- this stuff is very simple with included COM controls.

      I'm sure it does, but I'd like to point out that the title of this article is "Learn How to Program Using Any Web Browser" (emphasis mine). If you start using Microsoft-specific stuff that's in IE, any Javascript code you write cannot be ported over to other web browsers.

      The cynic in me says that this is exactly what Microsoft wants, of course. That would ensure that MSIE has the biggest market share.

    4. Re:Random issues I have with Javascript by alan_dershowitz · · Score: 1

      Stick to pure procedural programming at first, and use it to teach them the basic control structures of procedural programming, like if statements and loops, etc. you could do quite a bit of learning before you ever needed to actually start using OOP or file reading writing. When s/he is ready for it, it won't be so hard to move to another language that offers all those features.

    5. Re:Random issues I have with Javascript by nvrrobx · · Score: 1

      On a Windows platform, #1 and #3 are certainly not true.

      #1) WScript.echo("foo");
      #3) var foo = new ActiveXObject("ADODB.Recordset");

      Yes, you won't be running this in a web browser (unless you find the next script vulnerability in Windows), but save it as a .js file locally and run with:

      cscript foo.js

      if you want it on the console, or

      wscript foo.js

      if you want it ran without the console.

      Also, you could save it locally as a .hta and run it. That's an "HTML Application" - full browser interface, zero security.

    6. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      Of course, sane languages do not have direct file/db support. They you libraries instead. JS can too.

    7. Re:Random issues I have with Javascript by CmdrPinkTaco · · Score: 1

      I, too, have done my share of JS programming, and have taken issue with many aspects of the language. However, if you take JavaScript for what it was originaly designed to do, it is a fair language. If you read the language definition for ECMA Script 3.0, you can see that JavaScript was defined as "providing a mechanism to enliven Web pages in browsers and to perform server computation as part of a Web-based client-server architecture." Based on this claim, it would be inappropiate to include such features in the core specification to allow for file system support (file/database, as you claim). As stated in a previous post, there are extentions to the language that are host specific, but not supported on a broad general definition of the language, since this was never a goal of the project

      --
      Please give your mod points to others, Im at the cap. They will appreciate it more
    8. Re:Random issues I have with Javascript by BlueMonk · · Score: 1

      What about the budding game programmer's favorite? JavaScript and the general browser object model seem sorely lacking in the simple ability to draw pixel or line.

    9. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      Javascript may not have a print() or echo() function but, at least in Mozilla you can dump() output to stdout. You need to enable this in the prefs (browser.dom.window.dump.enabled in about:config), and start Mozilla from the commandline. It's not trivial to get working but it is possible. It's also better than document.write() because document.write doesn't preserve the XMLness of a document - hence it won't work for non-html 4 documents.

      I also think there's a somewhat simpler syntax for object methods:

      function object {
      this.property = var property;
      this.method(args) = function { /*body of function*/
      }
      }

      This syntax might not be quite right, but it is close and does emphasise the link between the object and its methods.

    10. Re:Random issues I have with Javascript by ryepup · · Score: 1

      My favorite is having to cast my typeless variables as numbers before addition, lest 1 + 2 = 12. Typeless language my ass.

    11. Re:Random issues I have with Javascript by mystik · · Score: 2, Insightful

      FYI, neither C or c++ have a built-in output function. printf() comes from #include'ing stdio, and even then it's optional.

      Prototype OOP is weird at first, but amazingly powerful.

      Also, javascript support's eval's and even closures: ( pardon slashdot's indenting, or lack therof )

      //Map takes a list, applies a function to that list,
      //and returns a list of the return values
      //from application of that function.
      function map(code,list) {
      var result = new Array();
      for (var f in list) {
      result.push(code(f))
      }
      return result;
      }

      var = foo {a: 1; b: 2; c: 3};

      map function(a){ do_stuff_on(a) }, foo;
      --
      Why aren't you encrypting your e-mail?
    12. Re:Random issues I have with Javascript by thoth39 · · Score: 1

      Well, about number 1, you shouldn't be using document.write() anyway. You are *not* writing to stdout.

      You are altering the DOM tree of a XML or HTML document. You should be creating nodes with document.createStuff() and deleting and inserting nodes in the tree.

      I'd say that this stuff would be too complicated for 12 year olds learning to code, though.

      --
      -- Pedro
    13. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      If the goal is to teach web browser programming, you can't even have file and database access due to the security model.

      However, for standalone Windows javascripts or HTA apps, that stuff works fine. Since every scripting language depends highly on system-specific stuff, tough shit that it only runs on Windows.

    14. Re:Random issues I have with Javascript by dubious9 · · Score: 1

      I agree about the echo() or print() statement. It's always good to have a very simple HelloWorld program. But for the very introductory programming stuff, why care about OOP and file/DB support? If all you teach are expressions, flow control (loops etc.) and functions then that would be good.

      I've tutored people that have a lot of trouble with for loops, if/else stuff, and why you would put stuff into functions. If there was a good reference on only the how and why for these things it's a good thing.

      This isn't a book for CS people but for people that haven't yet learned how to think programmatically. Most intro books go too far in depth for non-computer people. Those who write computer books think the elementals are rather trival, but I can tell you for a significant portion of the population they aren't. If there was a whole book whose advanced section only got to functions, I would recomend it to people.

      --
      Why, o why must the sky fall when I've learned to fly?
    15. Re:Random issues I have with Javascript by xutopia · · Score: 4, Insightful

      1) You have three options as you said but there are others as well. document.title = 'str' or window.status = 'str'. I think it is a wonderful way to start. First time I saw printf() I was really lost.

      2) the prototype is only there if you want to add a function after you instantiated an object. There are much better ways to add a method to an object since javascript 1.0.

      If you were to build a function with a method you can do it very easily without using the prototype construct (ie inside the class definition) :

      function MyClass(str)
      {
      this.name = str || null;
      this.changeDocTitle = function()
      {
      document.title = this.name;
      }
      }

      var myObj = new MyClass('Beer');
      myObj.changeDocTitle() // your document title will change to "Beer"

      Now the Array object is a great example of when you should use the prototype construct. Say you wanted to add a method to all array objects to check if it contains an item. Here is how you would do it :

      Array.prototype.contains = function (obj)
      {
      for (var i = 0; i < this.length; i++)
      {
      if (this[i] == obj) return true;
      }
      return false;
      } // You could then check to see if an array contains something with a simple method :

      var myArray = [1,2,3,4,5,6,7,8] // shorthand array definition

      if (myArray.contains(3))
      {
      alert("My array contains 3") // of course this one is alerted.
      }
      else
      {
      alert("My array doesn't contain 3")
      }

      The prototype construct is actually really handy here for objects which have already been defined. Using it in any other circumstances is still possible but it isn't a good way to program IMHO.

      3) nope JS wasn't designed for that but for people to learn for, switch, do and while loops it is very handy. You cannot expect someone just wanting to learn a bit about programming to directly dive into a Java/Swing/SQL environment, there needs to be stepping stones to get there. ECMAScript (Javascript) does that quite well.

    16. Re:Random issues I have with Javascript by dmuth · · Score: 1

      Just to clarify my original post, I wasn't trying to say that Javascript is a "bad" language. I've freuqntly used it for web-specific tasks like validating input fields on forms and that sort of thing. For that specific task, I think Javascript is really good at it, and fairly easy to use, as well.

      My main issue with Javascript was teaching to beginners. I know that I when I first learned Javascript about 5 years ago, I had problems picking up the language, and I had been already been programming for a few years at that point. I also recall spending some time saying to myself, "Jeez, how I can get Javascript to open this file?", without realizing that the language wasn't intended to do that. :-)

    17. Re:Random issues I have with Javascript by mobiGeek · · Score: 1
      That would ensure that MSIE has the biggest market share.
      Are you suggesting that this book may actually help MS to win the browser war??? :-)
      --

      ...Beware the IDEs of Microsoft...

    18. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      > I'd say that this stuff would be too complicated for 12 year olds learning to code, though

      I would say so too. The reality is that every web browser will happily display random HTML garbage as if it were stdout. Your budding 12-year old hacker is not going to care if W3C validates.

      I wouldn't worry about the concept of a "structured document tree" until much later. Even then most stuff people want to do can be handled with .innerHTML and .style.display and you can avoid the complex node stuff.

    19. Re:Random issues I have with Javascript by multipartmixed · · Score: 2, Insightful

      1) No print() or echo() function.

      function print()
      {
      var i;

      for (i=0; i 2) Weird OOP syntax [... in normal languages ...] functions are actually defined INSIDE the class

      function point(x,y)
      {
      this.x = x;
      this.y = y;

      function mPoint_toString()
      {
      return '(' + this.x + ',' + this.y + ')';
      }
      this.toString = mPoint_toString;
      }

      alert(new point(3,4)); ...if that's what you like, use it. You can also put the methods outside of the constructor if you want to. Or, you can use function() and create lambda functions if that tickles your fancy.

      The only wierd thing with JavaScript OOP is the lack of meaningful automatic inheritance. You have to pretty much do that yourself.

      > 3) No file/database support.

      C doesn't include file support natively. Neither does C++. I don't know about Java (I'm a C guy), but I suspect it's imported from a class. This goes doubly for database support! BASIC, Pascal, and any other real language I can think of require add-ons for Database support!

      The author of the book *could have* written a class to support file *reading* easily enough, in a *completely* DOM-portable format (by retrieving "files" which are stored on a webserver instead of a local disc.. or they could even be in file://). Writing files is non-portable, but if you chose a specific JavaScript implementation, it's very possible. Two specific ones I'm thinking of are NJS JavaScript (hell, I write shell scripts in it sometimes, it's quite handy) and Microsoft's Windows Scripting Host... as long as you're not running JScript inside the web-browser sandbox, it can do full File IO.

      Somebody else pointed out using ADO for Database access. That's pretty reasonable, you have to do the same thing in C++. You could also [read-only] use the Tabular Data Control (which has shipped as an OCX with every version of IE since 4.0) to read CSV files and interact with them pretty much the same way you can interact with an RDF.

      The list goes on.

      The problem you are having is that you cannot see JavaScript as a real programming language for two reasons:

      1) It has been horribly, horribly abused in the past
      2) There is not a great deal of aftermarket libraries available for the non-Microsoft version of the language. (Whose fault is that? Yours!)

      It is entirely possible to write Good Code in JavaScript, although (like any language) it might not meet your needs. The criticisms you make of JavaScript could be made of LISP as well, and I think emacs has proven the point that you can use LISP to write real, non-AI-field programs.. That do I/O an' ever-thing! [albeit in an incredibly bloated manner].

      In fact, I would argue that with proper "setup" [include files], JavaScript in the Microsoft environment would be a *far better* tool for teaching programming than, say, GW-Basic. Or possibly even VB (although that tenous at best). Certainly as good as Object-Oriented Turing and other educators' pets.

      Getting it to work as well (file io, db access) in the non-MS environment merely requires somebody who cares about these things to write appropriate class libraries for the NJS interpreter. Or the right plug-ins for Mozilla. Etc.

      --

      Do daemons dream of electric sleep()?
    20. Re:Random issues I have with Javascript by hereticmessiah · · Score: 1

      Same goes for Commodore BASIC, but that never stopped me!

      --
      I don't like trolls and mod against me if you like, but I'd prefer if you'd reply.
    21. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      I've implemented most of Ruby's standard library which offers map() and lots of other yummy and tasty things in JavaScript. See this magic file.

    22. Re:Random issues I have with Javascript by jesser · · Score: 1

      1) No print() or echo() function. If you want to write something to the equivilent of stdout, you need to use document.write(). And if you use alert() as you're debugging something, you'll quickly get tired of boxes that pop up, I know I have.

      My JavaScript Shell and Simple JavaScript development environment both include a print() function.

      The shell is good for playing around with the DOM and can be used as a bookmarklet.

      The simple development environment lets you test longer bits of code, but doesn't let you use the DOM, only core JavaScript features like variables, functions, objects, closures, and regular expressions. Leonard Lin is using it to teach some students JavaScript as their first language.

      --
      The shareholder is always right.
    23. Re:Random issues I have with Javascript by One+Louder · · Score: 1
      The problems you listed are not with Javascript, but rather with the particular implementation of Javascript embedded as a scripting language in a browser. I would hazard that *any* language embedded in that environment would equally suffer.

      Take a look at how Javascript/ECMAScript is used in Flash 5 and later, or better yet, take a look at how it's embedded in KDE 3.2 to see the potential of the language *as* a language. I've used SpiderMonkey (Mozilla's ECMAScript implementation) as a scripting subsystem for a couple of specialized applications and it works really well.

    24. Re:Random issues I have with Javascript by dmuth · · Score: 1
      1) You have three options as you said but there are others as well. document.title = 'str' or window.status = 'str'. I think it is a wonderful way to start. First time I saw printf() I was really lost.


      I suppose changing the title and window is one way to do it, but when I build debugging hooks into my programs, I like to print out lots of lines of text, so I can see exactly what the program is doing, if it's hanging at a particular place, etc.

      I agree with you about printf(), it's not exactly the easiest function for a beginning to understand. I was thinking more along the lines of the print statement in Python, Perl, PHP, and the like. Those functions are much more simple and straightforward. (Bonus points are awarded to the Python developers, who were able to make the print function in that language behave like printf() if an extra tuple additional parameters is passed in. That makes it very easy for beginners to pick up on yet powerful for advanced programmers.)

      If you were to build a function with a method you can do it very easily without using the prototype construct (ie inside the class definition) :


      Interesting, that is a method that I did not know, thanks for sharing. It still looks a little strange ("instantating" a function seems kinda weird), but far less difficult than doing it through the prototyping method that I described.

      Now the Array object is a great example of when you should use the prototype construct.


      That is also very neat, and something I had not considered. Thanks for code sample, that goes a long way towards explaining why that sort of functionality exists in the language.
    25. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      It's always good to have a very simple HelloWorld program.
      I remember learning JavaScript in a highschool class. The HelloWorld program the teacher had us write was long and ugly and confusing. I typed out C's version (simple printf("Hello, world!"); return 0; in main), and showed it to a friend who was complaining. I believe his exact words were, "Why the hell can't we learn THAT? C looks a lot easier than this crap!" I suppose it all depends on your point of view ;)

    26. Re:Random issues I have with Javascript by pete23 · · Score: 1

      bleh.

      wrong: iostream and friends are part of the C++ standard. printf and friends are part of ANSI C.

      right: prototype OOP - odd at first, but powerful.

      wrong: your example. nowt that isn't more suited to a lisp dialect...

      right: going home and drinking booze.

      my $0.

    27. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      You're running into those problems because you're getting a String from somewhere and not converting it into a number.

      In variable-typed languages you would get an exception instead which is even less helpful.

    28. Re:Random issues I have with Javascript by Anonymous Coward · · Score: 0

      >1)..

      thats why you teach them to use a "disposable" text area that they can output in. alerts are good in following the flow of control in js.

      js, imho, is a great beginners language.

    29. Re:Random issues I have with Javascript by Frizzle+Fry · · Score: 1
      printf() comes from #include'ing stdio, and even then it's optional

      It's not at all clear to me what "even then it's optional" is supposed to mean. If you are are #including stdio, the existence of printf() is most certainly not optional, and is instead required by the C/C++ standards.
      --
      I'd rather be lucky than good.
    30. Re:Random issues I have with Javascript by BlueYoshi · · Score: 1

      You have also the possibility to write in another window like here I ve write a little function to 'inspect' browser object:

      function inspector(what, s) {
      if (typeof what != 'object' )
      return // exit the function if we don't pass an object
      if (typeof s != 'string' )
      s = what.name
      var output = 'Inspector:'+s+'';
      for (var i in what) {
      output +=''+ i+ ''+ what[i]+''+''; }
      output += ''
      var wnd =window.open("", "Inspector"+s, "height=300,width=200,status=no,toolbar=no,menubar =no,resizable=yes,scrollbars=yes,screenX=100,scree nY=100,top=100,left=100'")
      wnd.document.write(output)
      wnd.focus()
      )

      you can write a little function like this:

      function logStuff(output){
      var wnd =window.open("", "MyLogWindow")
      wnd.document.write(output)
      wnd.focus()
      }
      --
      "Use cases are fairy tales..." I. S. 2005
    31. Re:Random issues I have with Javascript by ryepup · · Score: 1

      At least an exception would be clue as to where to start. In trivial cases its obvious, but when doing more complicated things, such as adding then multiplying, its not always obvious that you got concatenation instead. I'd rather have the compiler bitch at me so I can fix it.

    32. Re:Random issues I have with Javascript by mystik · · Score: 1

      your right. -1 unclear sentence structure.

      #include'ing stdio.h is optional. It'd be a rare program, but if you were using your own IO system, you'd have an unstdio.h to include...

      --
      Why aren't you encrypting your e-mail?
    33. Re:Random issues I have with Javascript by niiler · · Score: 1
      I have programmed in C, Fortran, Quickbasic, IDL, PV-Wave, Perl, LabVIEW, Bash, and JavaScript. Of them, Javascript was the easiest to learn (IMHO). There are now so many programming and scripting languages out there, who cares what you use as long as it gets it's job done. I do respect people who can program in C as easily as falling out of bed.

      Now, as for file access, you can use Mozilla based browsers to access the file system using JSLib if you need to (So long as the web app is local). Likewise, you can use Mozilla to execute local commands on either Windows or Linux.

      I'll grant that Javascript doesn't execute as quickly as optimized C++, but unless what you're doing is mission critical or requires real time handling of data, this is largely a non-issue (again IMHO).

  21. ECMAScript (Javascript) is an awesome way to learn by xutopia · · Score: 1

    it is a simple and clean way to learn about loops and variables for a beginner. It looks enough like other languages so that someone can easily move on to harder meatier stuff. I can't think of a better way to learn myself.

  22. Best way to learn to program by Anonymous Coward · · Score: 1, Interesting

    Is an interactive interpreted language.
    You type, it answers.
    A shell, if you like.

    This should be possible with JavaScript, and it would be a cute thing.

    And yes, it should be possible to give this to a 12 year-old and see them learn to program.

    Once they understand what 'code' is, they can start to work with more complex tools.

    By the way, this has already been done, it's called BASIC.

  23. Sure it is! by Anonymous Coward · · Score: 2, Funny

    Don't you get it, Emacs is the browser and the IDE all in one! It does your laundry too!

    1. Re:Sure it is! by fred87 · · Score: 1

      All we need is a javascript patch for links/lynx, then in vim: :!links ~/my\ crappy\ javascript\ page.htm

    2. Re:Sure it is! by Xoder · · Score: 1

      Links does do some javascript (prompts, redirects, new windows, etc)

      --
      The previous sig has been removed due to /. protecting your best interests
  24. Re:javascript is horrible by Anonymous Coward · · Score: 5, Funny
    not only does it's syntax suck

    Ironic.

  25. PLS MOD UP KTHX by Anonymous Coward · · Score: 0

    bye

  26. JavaScript? by caffeineHacker · · Score: 0, Troll

    Like this will help anyone learn to actually program. Wow, I can make a webpage that has dancing bunnies, I'm l337! Anywho, I don't see how this could be useful to anyone, except maybe to help a Joe SixPack user learn a bit about how things work. If anyone is starting programming maybe try: normal java, python, C++, etc. and try to learn what a data structure is before learning about event driven programming.

    1. Re:JavaScript? by falsified · · Score: 1
      You said:
      I don't see how this could be useful to anyone, except maybe to help a Joe SixPack user learn a bit about how things work.

      And the book review said, in its third paragraph:
      The web page for the book at the publishers states that "The target reader is likely a twelve- or thirteen-year-old, who is just starting to get curious about what makes a computer work -- or an office worker who has been using computer applications for years, and would like to spend some time delving deeper into what makes them tick."

      Oh.

      --
      HI, MY NAME IS ISAAC.
  27. Javascript for the Absolute Beginner by Pionar · · Score: 1

    Javascript for the Absolute Beginner is the book to get for learning programming skills, from breaking up chunks of a job to writing algorithms to pre-planning your work (state your problem, etc.).

    Javascript is a great tool to learn programming, but unfortunately, most Javascript books out there fail to express that fact.

  28. Web Browser JavaScript for Beginners? by xxxJonBoyxxx · · Score: 3, Informative

    This is a crappy environment for beginners. The first thing they will bump into is crap-loads of IE vs. Mozilla vs. Netscape JavaScript inconsistencies. The second thing they will bump into is "how do I save information per user, not per browser". The answer is server code, probably in a different languages than JavaScript, so now newbies have to keep two things straight.

  29. and yet by Anonymous Coward · · Score: 0

    Python has fewer real world uses than JavaScript.

  30. Re:javascript is horrible by SamiousHaze · · Score: 3, Insightful

    I'd have to disagree with you. The syntax is very similar to C/C++/Java - (don't flame me because its not *EXACTLY* the same - and it is more limited) - and secondly, "but it's full of exploits" - Maybe the interpretter on some platforms gives it power outside the boundries of the language but that is *NOT* the language's fault. Javascript is a tool and has its place and usefulness just like any other tool.

  31. Javascript? by Anonymous Coward · · Score: 0

    For teenagers learning to program?

    I'm ... I'm staggered.

    Maybe they should download 10 different browsers and then they can learn the joys of cross-platform programming too.

    Sure glad noone suggested Javascript when I was learning to program.

  32. Re:javascript is horrible by FuzzyBad-Mofo · · Score: 1

    not only does it's syntax suck (think java)

    And you prefer what, VB? I personally prefer C style syntax, the only thing that I dislike about Javascript is that are the camelCase function names (was it getElementById, getElementByID, or GetElementById?).. somewhat annoying but not terribly so.

  33. Re:javascript is horrible by Tablizer · · Score: 2, Informative

    One of the oddities of JavaScript is string concatenation. It uses plus (+) for both concatentation and adding, and this creates confusion and kludges. For example, sometimes you have to say "foo + 0" to force it to "see" foo as a number. Other scripting languages have seperate operators for each. Plus JavaScript has a lousy set of string-handling functions, or at least the earlier versions did. Further, I don't like it's object-oriented tilt feeling that it was just chasing the OO fad stoked by Java, but I suppose this is a personal preference best left to some paradigm war in another place. At least it has user-defined functions.

  34. Alternative reading? by mj_bell · · Score: 2

    Any suggestions for better introductory programming instruction?

    1. Re:Alternative reading? by Daemongar · · Score: 2, Interesting

      I'll second this - any better references out there for learning programming for non-programmers? I leared basic, cobol, and rpg inside and out 12 (it was required when I went to school! oy!) years ago but everytime I sit down to learn C++ or something I get flustered very quickly.

      The title sounded promising, but now it gets slammed. There must be something better.

    2. Re:Alternative reading? by Anonymous Coward · · Score: 0

      Yeah, I learned some programming in high school from a course which wasn't all that well-taught, and the book I used to actually understand things was "The Absolute Beginner's Guide to Programming in C." It's very clearly written and informative.

    3. Re:Alternative reading? by marsu_k · · Score: 1

      I'd reccommend Thinking in Java by Bruce Eckel. It spends quite a while teaching the principles of OOP without quite any code, and although C/C++ are more effecient, Java is more suitable for beginners because you can't make elementary mistakes (like, using an array beyond it's capacity). Best of all, you can get older editions for free.

    4. Re:Alternative reading? by johnnyb · · Score: 1

      My Book if you want to start at the bottom and work up.

      How to Design Programs or Simply Scheme if you want to start at the top and work down.

      I think there's also some good introductory Python books.

    5. Re:Alternative reading? by moranar · · Score: 1

      Ever heard of python? I am currently reading "learning Python" by Lutz & Ascher (O'Reilly). The language is very easy to learn, yet very powerful too...

      The website has a load of good tutorials, too.

      --
      "I think it would be a good idea!"
      Gandhi, about Internet Security
  35. Just what we need by Silon · · Score: 2, Funny

    What this world really needs is more web pages by 12-year-olds with funny little interactive images and little rainbow sparkly things that follow your mouse around. Thanks, Harold.

    1. Re:just what we need by Rysc · · Score: 2, Insightful

      Where are these stupid HR people you refer to? If some JS weenie can get a job due to their stupidity, surely I can.

      --
      I want my Cowboyneal
  36. Everything can be replaced by cheap global labor by Anonymous Coward · · Score: 0

    I would teach programmers a little accounting, how to do support, and not expect the only acceptable job is compiler designer or some bleeding-edge technology.

    I find programmers who are flexible and have some people skills to be doing quite well in the global economy.

  37. JavaScript for Children? What about Flash? by daddywonka · · Score: 4, Insightful

    If the book's actual target audience is 12ish, I don't really see JS keeping the attention of children.

    I also don't think most 12-14 year olds really want an in-depth discussion of programming principals, like the review suggest. I think they'd rather it be fun. That could just be me...

    Though it's not free and only works on a couple of platforms, I think Flash and ActionScript are a great way to introduce people, especially young people, to programming. A few simple lines of code can replace the timeline based motion tweening and is a great, visual way to see how your code works. From there kids can add a few lines of code to make sound and images work interactively.

    True, it might not turn them into kernel hackers, but most kids would probably more interested in learning to program if it kept their attention. Action script can be very easy with many neat things taking only a few lines of codes but it can grow as your young programmer learns more and seeks more challenging projects.

    1. Re:JavaScript for Children? What about Flash? by blamanj · · Score: 1

      Yeah, how about a programming system actually designed for kids?

    2. Re:JavaScript for Children? What about Flash? by TrollBridge · · Score: 2, Funny
      "I also don't think most 12-14 year olds really want an in-depth discussion of programming principals, like the review suggest."

      Nonsense! When I was a lad, I found discussions about developing clean algorithms and object-oriented programming concepts fascinating!

      Course, I did get robbed and beat up a lot in school... do you think the two are related in some way?

      --
      There's a Mercedes gap too. I want one and can't afford one, but it's not government's job to do anything about it.
    3. Re:JavaScript for Children? What about Flash? by Anonymous Coward · · Score: 0

      they do a flash one too! Learn Programming with Flash MX

      looks interesting.

    4. Re:JavaScript for Children? What about Flash? by Anonymous Coward · · Score: 0

      ..I think Flash and ActionScript are a great way to introduce people, especially young people, to programming.

      Flash? Flash?!?

      Have you seen the Flash banners plastered all over Slashdot? You see my point don't you?

      *THAT* is what happens when you teach children to do Flash!

      (Ok, so I'm pissed that Firebird can't block em - big deal, you hate em too)
    5. Re:JavaScript for Children? What about Flash? by eurleif · · Score: 1

      I'm 13, and I've been programming in various languages since I was around 10. Nothing I read taught me good programming principles, and I'm worse off for it. Sure, it was probably more fun then, but I'm still trying to relearn half of what I know about programming.

    6. Re:JavaScript for Children? What about Flash? by f0rt0r · · Score: 1

      How well do Flash development tools work on Linux? The author most likely wanted to reach the largest audience possible, and since most browsers have the javascript interpreter built-in, javascript wasn't a bad choice. I can't speak for the rest of the book, but the choice of language was good with respect to ease of set up.

      --
      I can't afford a sig!
    7. Re:JavaScript for Children? What about Flash? by webmouse · · Score: 1

      You can install the windows version of Flash MX with wine on Linux. But I think only a few 12-13 year olds can afford the Flash MX tool. I hope Macromedia wil bring out a Linux version too. Actionscript has some shortcommings but programming in a graphical/timeline enviroment is fun. wxBasic is nice to start with and is crossplatform.

      --
      Laptop: Vector Linux 5.1.1 SOHO Server: Vector Linux 5.1 Std. Games: Philips NMS 8280 MSX2 / Nintendo DS
    8. Re:JavaScript for Children? What about Flash? by f0rt0r · · Score: 1

      I understand, you had a good point about if the programming tasks are interesting, I guess it depends on the target audience. The author wanted to reach both younger folks and adults who wanted to learn a bit about programming. It makes sense to have them use something that is already available on their computer and is mostly platform independent, though different browsers have different implementations of Javascript, so there is no guarantee each member of the audience will get the same output for the same code.

      Anyhow, just wanted to let you know I wasn't trying to flame you at all, I was giving my take on the author's justification for choosing javascript.

      --
      I can't afford a sig!
  38. Can I get a Hindi version? by BigChigger · · Score: 4, Funny

    Otherwise, no need to be training any new programmers.

    BC

    1. Re:Can I get a Hindi version? by Anonymous Coward · · Score: 0

      I am a Kannadiga, you insensitive clod!!

  39. Challenge of finding a first language by Tassach · · Score: 5, Insightful
    Chosing the first language to teach a fledgling programmer is pretty difficult. The ideal language has lots of different qualities:
    1. It has to be easy to learn and use. In order to build the novice's confidence, it should encourage early successes. It should be easy to debug.
    2. The tools have to be accessable to the student. Ideally, you want to use a language which is already installed on their computer, or at worse be a free download which will run on all major platforms.
    3. It has to be practical. If the student can't use it to do something which is useful TO THEM fairly early on in the learning process, they probably won't stick with it.
    4. It has to provide a good foundation for future learning. This means that it should support all the standard code constructs and have a syntax similar to other more advanced languages. It also means that it shouldn't teach them any bad habits they'll have to unlearn later.
    I'm sure there are other qualities, but this is a pretty good starting list. On the basis of this simple list we can eliminate a lot of potential candidates as first language.
    --
    Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    1. Re:Challenge of finding a first language by 31415926535897 · · Score: 1

      I believe that a great language to learn first is BASIC (whatever variety, probably not Visual) with the caveat that GOTO is disabled.

      I know that it won't teach them OOP in the least, but OO at its heart is still functional, so adding the object abstraction after that won't be too much of a leap.

      I believe BASIC is the way to go because you learn the major constructs of programming (types, loops, functions, etc) without the overhead or complexity of most other languages, and after enough programming (if you're even half clever), you will start to see what you need for 'good programming.' It's hard to teach algorithm efficiency, but even someone using BASIC enough will realize that there is a faster way to write a sort than using bubble sort. By this time they will have matured enough on the fundamentals that they can pick up an algorithm book, understand what it's saying and even move on to a better language.

    2. Re:Challenge of finding a first language by Freedom+Bug · · Score: 1

      You just described Python. Not surprisingly: Python's original goal was a teaching language.

    3. Re:Challenge of finding a first language by betelgeuse-4 · · Score: 1

      I learnt BASIC as my first language when I was 8. It was on an old Amstrad (older than I am) that came with GEM. My only real assistance came from a reference manual (and it was just a reference manual, it listed parameters and return values), but I picked up the language quickly and now I know C/C++, Pascal, PHP and others, although I wouldn't call myself a guru by any means.

    4. Re:Challenge of finding a first language by Anonymous Coward · · Score: 1, Informative

      Squeak, an modern version of Smalltalk, meets and exceeds your four qualities:

      1. It's very easy to learn and use, and give instant results.
      2. It's a free download that's trivial to install and runs bit-indentical on more system than you can shake a stick at.
      3. It's practical, for it can be made to do very useful things. Only big limit here is that it's not exremely easy to make a stand-alone application with Squeak.
      4. It's completely OO, it's extremely consistant, and it's very simular in concept to more advanced languages.

      Squeak is ideal for kids and people just getting into programming.

      I'm 29. I'm trying to learn programming, but not as a hobby- I want to make two tools that I really want but don't have the money to pay someone else to make. And I've found that Python & Squeak have, so far along with learning some BASH stuff, helped me out a great deal.

      www.squeak.org

    5. Re:Challenge of finding a first language by archivis · · Score: 1

      Fortran!

      1) It is so easy it even tells you where on the line to write stuff, its practically fill-in-the-blank coding.
      2) A little digging will find Fortran implementations online free.
      3) Doesn't everyone have some an old mainframe in the basement that they are tired of paying that expensive consultant to maintain?
      4) Knowing Fortran, you'll never want to go back - gimme some C++, Python, Java, and Perl...

      --
      In July O7, I got a mac pro. There's no punchline. Just endless joy and wonder.
    6. Re:Challenge of finding a first language by Rysc · · Score: 1

      It's been said that the best path for learning programming is:

      Basic -> Any Assembler -> C

      But what's really meant is:

      Simple, forgiving language to teach concepts and weed out those who cant shake it. Follow that up with the lowest most basic language you can find, to teach programming at its rawest (today C is going to be that language). Follow that with a modern, powerful language with tons of features anf libraries.

      The idea is that you introduce concepts with langauge 1, whip the snot out of them with language 2, and then show them that programming doesn't have to be that bad with language 3. My observation is that language 1 should be easy but useless, or it will enciurage them to stay with that when language 2 gets frusterating. Therefore I do not recommend Python as language 1 (maybe for 3).

      All normal people who make it to language 3 via this route will be so stunned by the time and effort it saves them that they wont even notice stupid little things about the language which newbies typically complain about. If you teach 'em language 3 first, they'll expect everything to be that easy.

      Hook 'em, burn 'em, save 'em. Ask an evangelical preacher.

      --
      I want my Cowboyneal
  40. An excellent idea by Tryfen · · Score: 2, Informative

    As many other posters have commented - JS comes "free" with Windows. Just like Basic did way back in my youth with a BBC Micro.

    The greatest problem I have with programming today is that it's so damn hard to install the compiler! Java is probably just about the easiest, but you still need to add PATH statments.
    XAMPP makes installing PHP as simple as it could be.

    The last time I tried to install ANT or GCC or anything even vaugly complicated I had to wade through a hundred different URLs to find the right package, download, install, edit INI files and PATH statement, fiddle with the registry and GAAAAAAAAAAHHHHH!!!!!

    We can all agree the JS isn't the best language on the block. But unless it comes in a ready to go package - most people just won't bother.

    It's the same thing as Linux ('scuse me while I rant) you spend ages and ages installing and configuring the damn thing when all you wnat to do is work!

    Right. Rant over. To conclude - JS bad, installing IDEs and compiles: worse!

    --
    If a square is really a rhombus, why aren't all triangles purple?
    1. Re:An excellent idea by kalidasa · · Score: 1

      Installing PERL on a Windows machine is a snap. Of course, there's the whole question of whether PERL would be a good learner's language. Maybe Python (ActivePython is just as easy to install as ActivePerl)?

  41. the joy of js by Anonymous Coward · · Score: 4, Funny

    most program headers start off with something like

    if netscape
    if netscape3
    else
    else if opera
    if opera5
    else
    elsif explorer
    elseif mac
    elseif explorer 5
    elseif explorer 5.5
    elseif explorer 6.0
    else

    nothing like a consistant clean language.... and this is nothing like one.
    but then java has some of the same problems in some areas

    1. Re:the joy of js by Marcus+Green · · Score: 1

      My understanding was that almost all Java applications are based on the Sun implementation and the world of applets has moved towards the Sun Java Plugin which is available for all your favorite web browsers.

    2. Re:the joy of js by Anonymous Coward · · Score: 0

      That's all HTML crap -- the Javascript language itself is very consistant and clean.

      Most of that is because someone is trying to do something like pulldown menus that run every single browser ever made, or they are HTML D00dz who grabbed some old library code from somewhere else. It's not like anyone really cares about Netscape 3 or Opera anymore, and nobody's asked me about Netscape 4 in 2 years or more.

      You can do basic programming with form object stuff that runs on every browser.

      More advanced DOM stuff mostly works on every browser released in the last 3 years.

    3. Re:the joy of js by rjshields · · Score: 1

      most program headers start off with something like

      Although sadly that is the case, if you see js code like that, the chances are the developer doesn't understand js all that well.

      Javascript allows you to query the environment to see if a given feature exists:

      var oDiv;
      if(document.getElementById){
      oDiv = document.getElementById('foo');
      } else {
      //do something appropriate, given that the environment does not support this feature
      }

      --
      In this world nothing is certain but death, taxes and flawed car analogies.
  42. VB? by sulli · · Score: 0, Troll

    No, Visual Basic for Applications. Nothing like Excel macros to learn computer science!

    --

    sulli
    RTFJ.
  43. It's a TOOL by mabu · · Score: 5, Insightful

    The reviewer makes an excellent point. Programming is a *means to an end*. People don't learn how to program just so they can say they program. To not put the art of learning programming into the context of real-world applications is counterproductive.

    Then again, pardon me for being cynical, but this seems reflective of the new type of motivation we have these days behind people choosing vocations. People go to law school, not because they have any interest in law, but because they're under the impression they can make money if they're a lawyer. The bottom line is that if you get into any vocation without having any passion or interest, you'll never be any good at it.

    This reminds me of the arguments over which programming language is best. It's moot. The application and environment should dictate which tools be used. Likewise, if you want to learn to program, and don't know for what platform or application you're interested, you're on the wrong track... figure that out before you buy any books.

    1. Re:It's a TOOL by Anonymous Coward · · Score: 0

      I think perhaps it is exatly the sort of people who started programming at less than 12 y.o. from a book they got ahold of at the library are the ones in it for the fun. I don't know too many people in it for the money who are like yea at age 10 I saw a market in programming....

  44. Jesus y'all are dumb by Theatetus · · Score: 0
    Why not Python? Why not Java? Why not Scheme? Why not Intercal?

    Because everyone with a web browser has a JavaScript interpreter on his computer already.

    Nothing to install, nothing to compile, nothing to configure. Those steps scare people.

    --
    All's true that is mistrusted
    1. Re:Jesus y'all are dumb by Anonymous Coward · · Score: 0

      Those steps scare people.

      Just the people we want writing software then.

      ?

  45. "Program"? by oneiros27 · · Score: 4, Informative

    Most people haven't even figured out how to make a page look good in more than one browser.

    See the Any Browser Campaign.

    [And I don't mean 'detect what browser they're using, and serve them a page that's specially tailored to their browser', I mean making a single page that is written to the standards, and doesn't look like crap when some new unknown browser renders it]

    We know JavaScript isn't good for 'Any Browser', as there are browsers that don't support it -- and it's even frowned upon by the WAI

    --
    Build it, and they will come^Hplain.
    1. Re:"Program"? by Anonymous Coward · · Score: 0

      You can make a page that will look the same (or at least, look "good") in any browser. However, once you start trying to do something other than a generic page with margins, you're going to run into compatibility problems. Don't blame the HTML coders, blame the browser-makers. Oh well, you could always make the whole site flash :)

    2. Re:"Program"? by mobiGeek · · Score: 1
      See the Any Browser Campaign.
      Have you seen that page recently? It looks like one of those pages that was designed to make use of all of the new features of Navigator 2.0 .

      I'm no web designer, but ugly-and-boring is just that...they want to push a message about how to code in HTML, they should at least make their site appealing...or does this just highlight that an appealing Any Browser site isn't possible??

      --

      ...Beware the IDEs of Microsoft...

    3. Re:"Program"? by jsebrech · · Score: 1

      Flash is close to useless to blind web users. At least a standards-based html page's content will be "viewable" for them.

      It is possible to do fancy things that are cross-browser. The basic thing is to design your page to work well on basic browsers, but have optional fancy stuff. CSS, DOM and xbl (last one is mozilla only) are good for this.

    4. Re:"Program"? by Anonymous Coward · · Score: 0

      Yeah, those stupid lazy web designers! (Don't mention that even when you write to standards you errors are most likely generated by improper rendering of those standards by the BROWSERS!

      Hmmm...now programers build the browsers and...TROLL!!!

  46. Nice way to start by sokkalf · · Score: 1

    You certainly don't need an advanced programming language to start programming. I started programming using Quake-C, and continued with C/C++ and Java. Javascript is very similar to these languages syntax-wise, and is very easy to get started with.

  47. Rated a 5?!? by I8TheWorm · · Score: 2, Interesting

    My real complaints about this book centre on the abstract nature of the discussion

    I also have a complaint about the target audience for this book

    I also take issue with the title: this book doesn't really teach 'programming' much at all


    Yet the book review rates a 5? What gives? I would think a book with more than one "I have issue with" would rate a bit lower than "the best possible rating it could get."

    --
    Saying Android is a family of phones is akin to saying Linux is a family of PCs.
    1. Re:Rated a 5?!? by LostCluster · · Score: 1

      I'd hope the writer meant 5 out of 10, or maybe even 5 out of 100.

  48. just what we need by CAIMLAS · · Score: 5, Insightful

    Yes, that's just what we need - every Joe, Shmoe, and Harry that surfs the web to start thinking he's hot shit on Sunday because he's a "programmer", and now he can go out and grab one of those elite tech jobs!

    Of course, knowing the stupidity of HR, they'll likely get hired.

    --
    ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
  49. No! by JAJ5818_X · · Score: 0

    Teach more people JavaScript?!? Put this on the shelf right beside Mein Kampf plz.

  50. First language by Mr_Silver · · Score: 4, Interesting
    Why not teach them VB?

    No seriously.

    It's easy, it's pretty, you get a grasp of functions and objects and you can do moderatly complex things pretty quickly which means that they'll get instant gratification.

    If you want to introduce them to programming, given them something that can make them go "wow!" pretty quickly. Thats what made those Spectrum BASIC books so good - within 10 minutes you had lots of pretty squares up on the screen.

    I'm sure a lot of people would shudder at the though and want their kids to start with C++ or Perl - but I think that it might do more damage than good. No one wants to be scared off by pointers or regular expressions.

    --
    Avantslash - View Slashdot cleanly on your mobile phone.
    1. Re:First language by stratjakt · · Score: 1

      Pretty much every standard course-credit "computer programming" class for non-compsci students I've seen teaches in VB.

      Not only is it fine for teaching the fundamentals, but practical too.. Since it's quite possible such folks would want/need to write some VBA down the road, be it a form letter generator in Word or inserting some custom calculations into an Access app, etc..

      --
      I don't need no instructions to know how to rock!!!!
    2. Re:First language by Farrell · · Score: 1

      It is a good choice, especially since .NET SDK comes free, and you can get the #Develop IDE for free from the web. Provides an enviornment to learn VB.NET in, and the ability to move on to C# and then C/C++ if you want.

      --
      I want you to assume that all spelling and grammar errors are intentional. Thank You.
    3. Re:First language by TheTranceFan · · Score: 2, Interesting
      I see your point about pointers and regex's. But VB is not pretty. Further, it isn't typesafe (nor is JS) and the way you do GUI in VB encourages you to sort of put your code into your UI, "Hypercard" style, which is a bad idea on many levels.

      It's definitely a tough problem - C's got char*s everywhere to freak people out, Perl's just $funky =~ /ashell/, and JS and VB encourage all sorts of slapdash programming technique.

      Probably a more mature language like Java or C# might be better, even with fact that you force yourself to teach OOP and basic programming at the same time, and have to deal with the ponderously large class library. At least you don't have to reinvent strings.

      Hmmm...maybe I'll make $funky =~ /ashell/ my new sig...

    4. Re:First language by ill_mango · · Score: 1

      I agree that you do get instant gratification from programming in VB, but I don't agree that it would make the best learning language.

      I think the problem I had with VB when I was starting out is that I just had a bunch of code samples and not much else. The code was documented and what not, but VB is so GUI-oriented that sometimes I wouldn't know what exactly I was doing wrong, and the code documentation couldn't help me one bit.

      I moved onto Pascal with it's simple development environment and all of sudden I could learn the whole language through code snippets and the like. Although I didn't get instant gratification, I learned how to program, which is what I wanted anyways.

      VB may be a good starter language if you have a teacher, but if all you have is a book or the internet, I would reccommend a simple procedural language like Basic or Pascal

    5. Re:First language by Anonymous Coward · · Score: 1, Insightful

      > And lastly the first timer's language needs to be useful for large scale projects

      Huh? Why? It's not like the language they use to learn basic concepts is going to be the language they use as a professional programmer.

    6. Re:First language by Anonymous Coward · · Score: 0

      I learnt programming in VB. I was 13 years old at the time. I told my dad I wanted to be able to do what he did (who is a doctor but has always written his own medical software after a bad experience buying it custom-made). He gave me a simple visual basic book, don't even remember the title. Yes, it did get me started writing programs. Sadly, it thought me a LOT of bad habits I had to unlearn years later.

      I don't know what book to advise, but currently I would suggest going with delphi as a first language. Like VB you can just start dropping stuff onto a form and have immediate functionality, but unlike VB the underlying language is actually a cleanly designed OO powerhouse with a sane set of support libraries.

      I didn't learn how to program reasonably well until I actually learnt it formally at uni though. And not because of a good book (it was just stroustrup's C++ primer), but because of good teachers. No clue how you would approach teaching someone programming without investing considerable time into actually teaching them.

    7. Re:First language by Starji · · Score: 2, Insightful
      Nooo, don't teach them VB. It's horrible, in fact there are a few reasons why noone should teach (or use for that matter) VB.
      1. It's...
      2. Expensive : Sorry but if you're just learning you don't usually want to spend (on yourself or your kid) a few hundred dollars on something that they might drop in a few days, unless of course you don't have a problem swiping a copy from M$, at which point it's pretty cheap.
      3. Non-portable : Not so much of a concern for most people, but a few of us (like me) actually care about stuff like that.
      4. Encouraging bad practices : In particular the whole "all public variables" idea that they instill from day one. Just a pet peeve I suppose, but that is very discouraged basically everywhere but in VB
      5. Shoddy syntax : I should say confusing syntax cause that's what you'll be when you pick up a new (better) language. I don't think there is a single other (mainstream) language that has syntax as strange as VB's.
      6. Micro$oft : It's just... Micro$oft (yes I'm trying to get fL4m3dz0r3d).

      Now some of those points are very subjective and bullshit, but cost and portability are very real concerns when learning a language. It shouldn't cost really anything to learn basic programing techniques I think.

      Now as far as what I'd suggest for a learning language I'd suggest what everyone else is throwing out (python, ruby, etc). One that I haven't seen anyone else mention yet is HTML. Ok, ok, it isn't a programming language, but writing webpages actually tends to be a good place to start when you want to start making things happen on the computer.
  51. Plug for Squeak Plug-in by Googol · · Score: 1

    If they have a browser, the kiddies can get the Squeak plugin (Smalltalk), go to Squeakland and have a lot more fun. They can start much younger too.

    Java? Sure, but let's see that 31 MB download over Mom and Dad's dialup line. Java is just Smalltalk anyway, with syntactic sugar. -- It's a joke OK?

  52. Teaching 12 or 13 year olds to program by miu · · Score: 4, Interesting

    I keep seeing those "Fighter Maker" and "RPG Maker" PS2 games on the shelves. Seems like that would be the thing to give a 12 or 13 year old to get them interested in programming and maybe learn some of it's basics.

    --

    [Set Cain on fire and steal his lute.]
    1. Re:Teaching 12 or 13 year olds to program by Audiostar · · Score: 1

      I learned Inform as my gateway into coding. Its actually not a bad first step, especially if you are in the 12 to 13 year old range. I guess the down side is that not too many kids want to make the transition from fully rendered 3D graphics to 'You are standing in front of a building...' But, it does facilitate a move into other object oriented languages.

      plugh!

    2. Re:Teaching 12 or 13 year olds to program by Anonymous Coward · · Score: 0

      I think you are on to something. We are seeing a bigger split between programmers. Specifically two types:

      1) The plug n chug programer: puts well made components together in usually obvious ways, maybe uses WYSIWYG, deals a lot in shorter scripting, smaller projects, and often only a few languages. This programmer may be an expert in scientific field or have another profession. For them, programming might be an easy way to expand their toolset in their current profession or interests.

      2) The engineer programer: makes components, designs new things from old components, programs systems and sometimes interfaces for users and maybe other programers. Very much interested in maintainance, how code works, optimization, multiple languages and/or one language specialty.

      There is a lot of overlap, so these types are not mutually exclusive in anyway. However, there are people who are very much one or the other.

    3. Re:Teaching 12 or 13 year olds to program by miu · · Score: 1
      I don't think that the actual language used is important. The value of programming as a tool/toy is that it let kids think in creative ways and learn the value of structuring their creativity.

      When I was 12-13 I did not have a computer, but I loved designing game worlds and writing and running adventures for my friends. The actual skills involved in those activities were valueless from a job skill perspective (and I remember my Father despaired of my mania for games and dislike of school). I did learn a lot about creating generic components, scenario planning, maintenance, and emergency fixes when things went in a different direction than I had planned.

      As far as I can see game maker software is just a better set of tools than the 3x5 cards, notebooks, and miniatures I used. There is the added benefit that it gets kids familiar with some fundamental concepts of programming, and the idea that a computer can be as a creative tool that can itself be manipulated.

      --

      [Set Cain on fire and steal his lute.]
  53. Programming with JavaScript is impossible by LostCluster · · Score: 0

    You can't program with JavaScript no matter how hard you try. The reason why is part of the name, JavaScript is a scripting language... there's a difference.

  54. We've actually designed and implemented this... by taliver · · Score: 4, Insightful

    Here is a course I helped design to teach Javascript programming to CS170 students-- pre-business majors.

    Javascript was our idea of a language replacement for what we were using True Basic. The idea was to have a language where the students wouldn't constantly question why they were learning it, and to pretend like we were doing some level of web enabled e-commerce site programming.

    The problems we have found come from the lack of structure of the language, and combined with the browser's desire to fix as much as it can. While this is a nice feature for a real developer, it sucks when you have to tell a student "I know it works on the browser, but it's still wrong."

    The other issue is trying to keep to a small set of structures for programming, and making sure the TAs for the course don't get too ambitious with teaching dozens of alternative ways to accomplish the same thing. For students at this level, they just get confused.

    But it does work well, and it is nice not having to ask students to buy another piece of software to program with at home. (Unlike True Basic.)

    --

    I demand a million helicopters and a DOLLAR!

  55. Gee, how about using some common sense... by Anonymous Coward · · Score: 0

    The author is not at all pleased with the work.

    Do you think he considers it to be a 5/5 - a perfect score?

    Of course it is 5/10.

  56. Re:javascript is horrible by Anonymous Coward · · Score: 0

    I would certainly agree that Javascript is horrible (or at least used for horrible things), but as far as teaching basic programming concepts (especially in a restricted/limited environment), Javascript is probably quite appropriate. I just hope that people would eventually move on to a different language, such as C.

  57. Why bother with this review at all? by Chess_the_cat · · Score: 1

    This is a book for children 12-13 according to the author. How many children who don't already know how to program read Slashdot? How many Slashdotters with children would be interested in this book when they can teach their kids themselves?

    --
    Support the First Amendment. Read at -1
  58. It works by lukewarmfusion · · Score: 4, Insightful

    I began teaching my brother programming with Javascript. I also recommended to my department head that they use Java as a beginning programming introduction.

    You need to learn the fundamentals of programming - not necessarily Assembly-level, but something that, upon completion of a beginning course, will be useful and applicable to other languages.

    We spent three weeks learning conditionals, loops and case - in my Java course (specifically did not use the word "class" there, for anti-pun reasons...). The prerequisite courses were "intro programming" and another, such as VB. But all but three of students came into the class unable to understand an if-else. My time was wasted, my prof was furious and most students gave up.

    You know what they learn in the intro programming class? QBASIC. You know how many people had a clue coming into Java or VB or C++? Two of us. We'd both been programming for ten years (and we were 20) and could teach the class. It was a req. for the major, so we had to take it.

    Programming is best learned in front of a computer, with a task to do and a good reference to rely on. If that reference is a book, another programmer or freakin' Google, you can still learn the basics from there. I liked the idea of teaching my brother using Javascript because I could 1 - look at his code, 2 - point him at countless resources, examples, etc. and 3 - demonstrate that even if your code follows the rules, works on your machine and is well commented/indented, it won't work on everyone else's machine.

    It won't teach you the inner workings of a machine (previous Slashdot post on Assembly as an intro language) but it will help prepare you for a real internship or at least for a class that will teach you more.

    1. Re:It works by Anonymous Coward · · Score: 0

      Why are you using Java and Javascript interchangeably?

      And what do you think the review was talking about? He said that the author decided NOT to teach the fundamentals of programming, but instead Javascript specific things.

  59. You might want to change your .sig... by revscat · · Score: 1

    ...because I'm afraid the Secret Service might interpret that as a threat against the president.

  60. ratings by Savatte · · Score: 1

    an anonymous coward already echoed the sentiment that I have, mainly that a rating of 5 is not descriptive at all. Why not standardize a scale for all slashdot book ratings? This would help clear up confusion.

    1) There is the ever-popular 0-10
    2) A star rating (0-4 for movies, 0-5 for music), with a possible adjective afterwards (A must have, worthless, etc.)
    3) The letter scale (F-A+)
    4) Or even the Glengarry Glen Ross scale, where a book could only have 1 of 3 ratings (Cadillac, steak knives, you're fired)

    Any of these would be preferable than just a number

  61. Great idea, but for performance reasons... by Anonymous Coward · · Score: 0

    ...the browser *must* be tightly integrated with the OS! This will enhance the user experience!

    Chinpokomon! You Americans have such large penis! Gargantuan penis!

  62. OT: test your nerd factor by Anonymous Coward · · Score: 1, Funny

    Test your m4d n3rd skillz on this test.

    I just scored a meager 40,5% and I hope the /.-crowd can do better than that. But I warn you, the questions ARE ridiculously difficult at times... ;)

    1. Re:OT: test your nerd factor by adamjaskie · · Score: 1

      Hmm... 66.66666666666667%

      --
      /usr/games/fortune
  63. "I'm certain that this one isn't it." by kfg · · Score: 3, Informative
  64. It also has a very nice debugger by fejikso · · Score: 1

    I haven't programmed in VB for quite a while, but I always loved the debugger. It is so well integrated and easy to use!!!

    1. Re:It also has a very nice debugger by Anonymous Coward · · Score: 0

      There's nothing like edit and continue!

  65. Well, that's XXI century's BASIC by apeine · · Score: 3, Informative

    Sure Javascript can be used to teach programming, but if what you do is not at least a bit useful, it won't catch teenagers attention for long. And javascript is quite powerful, even though it lacks some functions that would make it perfect (external file reading, that could be made from the same url as .js file, for security reasons).
    Or we con go back to basic, which could be handled on a disk (or CD), so learning to program would be quite easy!!!

    --
    Want to learn Manga P2P way? try www.mangaschool.com.
  66. Mozilla by sl0wp0is0n · · Score: 3, Informative

    Newer versions of Mozilla have a complete debugging subsystem for javascript. You can step through the code and examine variables. All the fancy stuff that a debugger provides - that too wrapped in a nice GUI.

    --
    My other dog is a Wienerschnitzel.
  67. gratuitous itallics by namidim · · Score: 1

    did you read the review? I'm thinking maybe the part that goes:
    Most adults and even teenagers don't want to 'learn how to program' as much as they want to learn how to use a tool to perform a task.

  68. JavaScript as a first language? by Shimmer · · Score: 1

    I don't think so...

    --
    The most rabid believers in American Exceptionalism are the exact same people whose policies are destroying it.
  69. FORTRAN by Perl-Pusher · · Score: 1
    You young whipper snappers, FORTRAN was good enough for my grandpa. Then again there is always this:

    li $s1,1
    li $s2,0x10000000
    li $s3,0
    move $s4,$v0
    li $s5,1
    li $s6,3
    li $s7,2

  70. non compiling languages by avandesande · · Score: 1

    I hate to say it but programming in a non-compiling non-typed language is just as irritating to a beginner as it is to an advanced programmer.

    I never understood why typing is supposedly such a difficult concept for beginners.

    --
    love is just extroverted narcissism
  71. Re:javascript is horrible by stuffduff · · Score: 1
    While I can manage to get done what I need to do in JavaScript I would like to see a better way to handle integers that having to use parseInt with a radix every time I want to get a number evaluated properly.

    i=9;

    j=9;

    j+=1;

    i < j; (false)

    parseInt(i,10) < parseInt(j,10); (true)

    --
    "Can there be a Klein bottle that is an efficient and effective beer pitcher?"
  72. Re:javascript is horrible by Anonymous Coward · · Score: 0

    STL, python, and any descent OOP programming language should allow usage of + to show string concatination.

    The problem you describe comes from the fact that a variable dosn't have a type, so you have to do + 0 to 'force' the type represintation into an integer.

    In Python, for example, you can do "5"+"6" to get "56". Yet, you can't do "5"+6 because of a type mismatch. You have to do "5"+str(6) or int("5")+6 depending on what you want.

    Perl is in a way simmilar to java script in the sense that it has one type 'scalar' that is both strings and numbers, and it does have different opperands for concatination (the .) and for addition (the +). So in perl, "5"+4 returns 9, while "5".4 returns "54".

  73. Machine Code by axis-techno-geek · · Score: 4, Funny
    Available on ALL platforms, runs at top speed.

    Helps weed out the slackers ;)

    --
    This is not the sig line you are looking for... -- Old Jedi Sig Line Trick
  74. Other Javascript intro book by Anonymous Coward · · Score: 0

    I'm a college freshman taking a course which uses a book very similar to this one- "Introduction to Interactive Programming on the Internet" by Craig Knuckles. So the idea of using Javascript to teach programming is not that fantastically original I guess. (The book we're using is not bad, by the way- fairly clear, although it does have some excessively stupid exercises.)

  75. No nerdy enough obviously by wcb4 · · Score: 1

    "42.857142857142854% nerd blood flows through my veins" according to the test. Amazing..... 42%, 42... Can you imagine that

    --
    I reject your reality ... and substitute my own.
  76. How about instead... by Howard+Beale · · Score: 1

    I'm getting ready to convert my kids' Windows XP systems over to Linux. I'm going to set up Netraverse so they can run the JumpStart (& etc) games, but I'd like to install SmallTalk or Logo so they can start to 'do more' with the computer.

    Any recommendations for a 'kid-friendly' Smalltalk or Logo environment in Linux?

    1. Re:How about instead... by Abcd1234 · · Score: 3, Informative

      Squeak Smalltalk is quite excellent for this purpose, IMHO.

  77. The nice thing about this approach by stuffduff · · Score: 1

    The nice thing about this approach is that everyone can use a browser even if they don't have an internet connection and they can get visual feedback (remember TURTLE?). And for some non-trival javascript check out the5k.org.

    --
    "Can there be a Klein bottle that is an efficient and effective beer pitcher?"
  78. Sometimes, it's all you've got by Eberlin · · Score: 1

    From a long time ago in a galaxy far far away, I had a Win 3.1 machine...ancient hardware, can't upgrade (both financially and technically improbable) but I wanted to learn how to program.

    I had copes if GW-Basic, Qbasic, and Turbo Pascal and knew how to work with those. I wanted to learn Java but on the hardware and that whole Win 3.1 thing, this was impossible. All I knew was that I had a browser (IE) that could run Javascript (ECMAScript) so I ended up practicing my coding with it. HTML built the forms, the Javascript worked with the content. They were all toy programs but it was still educational to have done it.

  79. Try Python by Anonymous Coward · · Score: 4, Interesting

    I highly recommend "How to Think Like a Computer Scientist: Learning with Python." It's a great introduction to programming using a language that doesn't get in the way. Python is also a great language for starting procedurally and "graduating" to OO. Besides being a great book, it's available for free in LaTeX, PDF, PostScript, and HTML. Needless to say, both the language and the book are available "using any web browser." As for JavaScript, I have tried to keep it at arm's length for as long as possible.

    1. Re:Try Python by Reverend528 · · Score: 1

      Python also has the benefit that it can run as an interactive shell. For someone who's learning to program, it's extremely handy to be able to type something in and see instant results.

  80. Argh, should've previewed by multipartmixed · · Score: 1

    I keep forgetting less than signs mess up Plain Old Text for some unfathomable reason. ;)

    Here are the code snippets, rants were unaffected.

    function print()
    {
    var i;

    for (i=0; i < print.arguments.length; i++)
    document.body.innerHTML += print.arguments[i];
    }

    function point(x,y)
    {
    this.x = x;
    this.y = y;

    function mPoint_toString()
    {
    return '(' + this.x + ',' + this.y + ')';
    }
    this.toString = mPoint_toString;
    }

    alert(new point(3,4));

    --

    Do daemons dream of electric sleep()?
  81. Inevitable bad joke... by ivanmarsh · · Score: 2, Funny

    Where can I download the "Any" browser?

  82. It's Not Wannabe by rixstep · · Score: 1

    It is sad that programming is becoming yet another wannabe art and is rather ceasing to be an art altogether.
    - MN Karthik

  83. Red Series by Anonymous Coward · · Score: 0

    I learned a lot of coding skills using the javascript red book. My only previous experience was html, so it was my first coding experience.
    It's really a bad idea. Most Javascripting is about knowing DOM's and not computer science. I suppose it could be used that way, but it lacks teaching things like data types etc.
    For a very introductory level it sounds ok. But really, a language like c, fortran, pascals, or maybe even BASIC is a better introductory language. I wish I had learned in c, or assembly.

  84. The awesomeness of javascript by dtfinch · · Score: 1

    Maybe I went overboard on the title, but it really is a very flexible scripting language. Many programmers fail to realize its full capability.

    The last three games I wrote for my website, where I release some of my smaller projects into open source, are all written in javascript. If you ever wanted to see vector (polygon) graphics done in html+javascript, check it out.

  85. First language by DarkSarin · · Score: 2, Interesting

    Although it has many of the limitations that something like JS or JavaScript has, I personally think that PHP is a great first language. It does require an installation of the language (unlike JS), but I think that it has better syntax.

    I am also far from being a pro, and much of my code really stinks in terms of readability (I am working on it), but speaking from the perspective of someone who had a really rough time with my one programming (we used C) class, I think PHP is better than Javascript for a first language.

    --
    "We don't know what we are doing, but we are doing it very carefully,..." Wherry, R.J. Personnel Psychology (1995)
  86. Logo by Hollins · · Score: 4, Informative

    I still think the best language to learn to program for kids (starting around 7) is Logo. Instant gratification, cool animation, you can make impressive patterns quickly and it teaches the basic control structures.

    Then, they can graduate to StarLogo, an object-oriented version of logo which is easy to learn, but very powerful. A number of labs are using it for research simulation. Go with the turtle.

  87. Re:BASIC is horrible by Anonymous Coward · · Score: 0

    I've never a computer that *requires* BASIC. Sure, the C64 *came* with a BASIC version. I didn't prevent me from going to assembler, etc...

  88. What langauge should I use to teach.... by 1iar_parad0x · · Score: 1

    For a long time, I have felt we need an old-fashioned BASIC language with a solid graphics primitive and mouse/joystick API. I've always toyed with the notion of writing a book that taught programming through examples involving mathematical and scientific programming. Maybe I'd even throw in a little logic (basic syllogisms and computability theory [just a Turing machine]). I'd be aimed at kids. No, I won't water it down. Smart kids will enjoy it, and dumb kids can go back to playing their playstation.

    I first encountered programming on a TRS-80 in BASIC. It was simple. I like the simplicity of C or Java. However, C can get a little ugly for a beginner, and Java is a tad too complex (but not a bad overall choice). I definitely don't want to touch VB. That's like teaching recursion and logic programming in -- VB. VB is a great RAD tool. However, it teaches sloppy programming habits, makes building applications a little too easy (which is great when you know what you're doing, but is bad for someone whose sole purpose is to learn). Plus who wants to learn about pseudo-random number generation or the method of least squares in VB. Oh, and I'd prefer this language be available on Linux and Windows (kids in foreign countries often use Linux [i.e. Brazil and India]).

    Does anyone have any suggestions for a good BASIC interpreter or another language I could use? I could work on enhancing a simple interpreter/compiler myself.

    --
    What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
  89. Intro to CS by dfj225 · · Score: 1

    At my university, parts of the Intro to CS class was taught using JS. Already knowing the basics of programming coming into the class, none of it posed a challenge to me, but I felt sorry for the students who knew no programming. Most of them had a hard time with functions and knowing how to pass variables to them or get them to return a variable. Our final project for the class was to write a very basic "virual pest" (think tamogachi) in JS. Most had a hard time with this. A term later, we have started learning C++. I don't like using JS to write "programs" because it is very poor at reporting error messages. I think a much better choice for a first language would have been php, as, like the reviewer felt, JS has very little real world "programming" applications, but PHP could be insanely useful in real life, plus it's not overly difficult to learn and it follows much of the syntax of C/C++.

    --
    SIGFAULT
  90. Any Browser? by Dracos · · Score: 1

    I can only assume this book begins by instructing readers to open Notepad and IE. Was there any discussion about the history of js (ECMA), how browsers differ in their implementations of js, and how ECMA compliant they are? If not, then the author is cementing IE's stranglehold on the web by teaching his readers wrong (non-standard) methods.

    Does he mention other standards-compliant browsers and the development tools available with them? If this author is not at least teaching DOM techniques, the book is worthless.

  91. VB is a mish-mash of random crap by John+Harrison · · Score: 1
    VB is an ugly collection of hacks. It is poorly organized and poorly documented. Even Microsoft does not consider it a serious language.

    A "teaching language" should be constructed a bit more carefully than the way in which VB has grown over the years.

    1. Re:VB is a mish-mash of random crap by Tassach · · Score: 1
      My point was that VB sucks far less as a tool for teaching programming concepts than languages like C, Perl, Java, or JavaScript. VB is far from perfect but there are few languages that are both as widespread and as beginner-friendly as VB.

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    2. Re:VB is a mish-mash of random crap by John+Harrison · · Score: 1

      How is something that is internally inconsistent more beginner-friendly? What is the advantage over Java?

  92. Re:javascript is horrible by Anonymous Coward · · Score: 0

    I hate those for-loops and its entirely possible to add an .each()-iterator to all Arrays in the language. See this file for that and more.

  93. And Acrobat by OECD · · Score: 1

    If your tool is JavaScript, then it's almost certain your task is related to building web pages,

    Or controlling Acrobat. See this PDF for the object spec.

    --
    One man's -1 Flamebait is another man's +5 Funny.
  94. oh, don't ruin the next generation of programmers by Knights+who+say+'INT · · Score: 1

    Get them started on Haskell!

    To quote themselves, "Haskell is a general purpose, purely functional programming language".

    The focus on the high-level "what" rather than the low-level "how" is the distinguishing characteristic of functional programming languages.

    Of course, this sortof harks back to the recent debate on how all programmers should know assembly language. Guess what, they don't.

  95. Once you know one . . . by Stone316 · · Score: 1
    I'll agree with the person you responded to, learning a new language should be done by diving right in but only by programmers. ie, people with a history in development. Sure, if your new to programming in general your going to write pretty crappy code but for a seasoned veteren they may not know the gotcha's of a particular language but that doesn't mean the end result will be buggy, hard to maitain, no security or comments.

    Some of these things, like cute tricks and security implications are only going to be found via trial and error. How else do you propose someone learns? Not even a training course will solve these things.. You may catch a tip or two from the instructor but in general they only teach the basics.

    I'm a DBA but have done programming in the past. I may not know DB2 but I could ramp up on it rather fast because I know the basic's behind database technology which are common across any product. The same can be said for programming..

    --
    "Thanks to the remote control I have the attention span of a gerbil."
    1. Re:Once you know one . . . by RetroGeek · · Score: 2, Insightful

      Hmmm, I assumed that this would be a person who had not done ANY programming.

      I too just jump right into a new language. It is mostly just a different syntax. Actually I try to find out what you cannot do in a new language.

      Mind you, I had to take a course to learn OO. And I found out that I had been doing OO anyway, just not in a formal sense. Now I find it hard to do non-OO stuff.

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
  96. Here is a free crossplatform alternative by Anonymous Coward · · Score: 1, Informative

    Sure, it's not packed with fancy crap, but it is simple and easy to learn and no Microsoft Tax!

    http://smallbasic.sourceforge.net/

  97. C++ as a first language by joib · · Score: 1

    I got started with C++ (ok I had done some hello world kind of stuff in gwbasic, qbasic, pascal and such), and armed with my current level of hindsight I have to say I disagree.

    My reason is that C++ is a very complicated language. There are a zillion completely non-obvious and subtle ways in which C++ manages to bite your ass.

    Now for the question about which language is the best to get started in, I guess it depends on what you value as important to teach first. If you think it's important that people get some understanding in how computers actually work, know how to implement e.g. linked lists then C might be a good choice. OTOH, if you feel it's more important that they learn more high-level concepts like OO then a language like Python would probably be better.

    1. Re:C++ as a first language by EastCoastSurfer · · Score: 1

      My reason is that C++ is a very complicated language.

      True, but as a starter book you don't have to go into all the crazy ways C++ can be used to get things done.

      IMHO, it is crucial that when learning to program people get exposed to pointers ASAP. Now you can teach pointers using just C, but I would rather have a very structured C++ book/course where OO concepts can also be taught.

  98. JS & math by agslashdot · · Score: 1

    A few years ago when I did my Masters in CS, we had to take a bunch of courses in Advanced Algorithms - math oriented stuff like Primality Testing, Numerical Methods for equation solving, interpolation, range-kutta, pseudorandomness & the like. Java wasn't widely available at that time, but all the browsers supported Javascript quite well. The Professor was a math guy, a computer neophyte who preferred that we turn in solutions ( pseudocode) using pen & paper. He didn't care too much about programming them in a real language. I wrote all my assignments in Javascript - he got his pseudocode, and he could click "Execute" & actually run it in a browser. He was quite impressed & I got an A on that. My own beef with JS is, big-number support isn' t robust. I tried testing primality for 12 digit numbers & the browser would just freeze up. However, JS actually holds up well for number crunching in the 8-10 digit range.

  99. How I Got My Start by Cruxus · · Score: 1

    I'll admit the first programming language I started learning was JavaScript because I already had an interpreter for it (the browser) and I already knew some HTML. JavaScript was too limited to do the things I wanted to do, so I eventually found a decent C and C++ tutorial, purchased Visual C++ 6.0, and began learning a real programming language.

    Now I'm a college freshman dealing with Java, which is nice in that I don't have to do memory management but a little on the slow side.

    --
    On vit, on code et puis on meurt.
  100. No PASCAL? by cschmidt · · Score: 1

    I can't believe nobody has mentioned PASCAL! It's slightly complex, but that was the language taught in my very first programming course in college. I thought it was a nice one to start with.

    It's strongly typed, it has decent OO semantics, has freely available compilers, what's not to like :-)?

    --

    Who am I to blow against the wind? -- Paul Simon
    1. Re:No PASCAL? by dtfinch · · Score: 1

      I don't know. It's a great language, but somehow it never caught on with the masses. I learned it in my first high school programming class, and loved it, but I've only rarely encountered it since then and it's no longer one of my everyday languages.

    2. Re:No PASCAL? by pclminion · · Score: 1
      It's strongly typed, it has decent OO semantics, has freely available compilers, what's not to like :-)?

      It has pointers, which you need in order to do pretty much anything useful. Pointers are a great brain strainer for many beginning programmers, and there are plenty of languages, Python for instance, where you don't have to worry about them.

      In fact, now that I mention it, I think Python would be a beautiful first language to learn programming on.

  101. VB (6) Merits by zoney_ie · · Score: 1

    I would certainly say that it is a good language for more experienced programmers - it is SO painless to manipulate a GUI and yet elements are easily linked to complex code. Unfortunately you can write bad VB code really easily - that is perhaps the main disadvantage. (Not having Option Explicit turned on by default is a perfect example). It's also effortless to access Windows APIs, other types of GUI widgets via OCXs, and basically there's a great "lego brick"-ness to it all. You do need to understand what's happening though to have a good program. VB is simply a tool to make things you know how to do easier - not a complete substitution.

    I don't see why Java can't have as nice an IDE as VB6 though - I haven't been impressed with any I've tried. Borland JBuilder, IBM Visualage for Java, Netbeans.

    None of the above had the simple indexing methods which VB6 has (copy and paste an object (e.g. button) to get option to create a control array). With the Java IDEs I've had to code arrays of buttons etc. outside the graphical interface, which rather defeats the purpose.

    --
    -- *~()____) This message will self-destruct in 5 seconds...
  102. The big advantage of Javascript is... by mykepredko · · Score: 3, Interesting

    that it is free and the license built into the browser allows for development work. There aren't an awful lot of other programming languages/development that can boast this.

    Having Javascript already available in the browsers is an advantage because a very great majority of computer tech teachers that I have met have troubles with even understanding the concept of directories and paths, let alone have a snowball's chance in hell of installing something like gcc under Cygwin.

    Going off on a personal rant, I would like to see teachers be a lot more scrupulous with respect to licensing software. How seriously is a kid going to take the classroom instruction on not sharing other people's IP when the teacher tells them to download VB, QBASIC or some other clearly copywritten tool into their PCs?

    As an added bonus, Javascript is not terrible to program in and you can come up with some good simple client side games. How about Pong, Tic-Tac-Toe, Minefield, Battleship, etc.?

    I think that using Javascript for teaching programming is a step in the right direction, but it sounds like this book could have done a better job in making it compelling for kids.

    myke

  103. If you give out that URL, do this one too-- by Googol · · Score: 1

    Georgia Tech Swiki -- for high school/college age, after the target age 12-13 under discussion.

  104. PHP is a great choice by Richard_J_N · · Score: 3, Informative

    Why not choose PHP. It's a very nice language with clear syntax, no need for a compiler, can even be run on Windows, is perfect for the web, and also for scripting. It also has enough in common with C/perl to make it easier to learn these languages (whereas say VBscript is completely foreign). It also has an easy learning curve - it's looseley typed, and gives helpful error messages.

    I can recommend the book: SAMS "Teach yourself PHP in 24 hours"

    Richard

    1. Re:PHP is a great choice by shlashdot · · Score: 1

      PHP?!? but, but, it doesn't start with a J!

      --
      Additional plugins are required to display all the media on this page.
  105. Why JavaScript, when you can use a real language? by don.g · · Score: 1

    Much work has been done on delivering some sort of programming environment via a browser for early CS teaching purposes - one of the students in my honours year develped a system called JavanOwl which allowed users to type simple Java programs into a textbox, and used Aspect Oriented Programming to produce an animated GIF showing the program's runtime state over time.

    --
    Pretend that something especially witty is here. Thanks.
  106. Sample student portfolio by bytesmythe · · Score: 1

    I bet this guy must have learned everything he knows from one of those books. I know who I'm not hiring for my next web design project...

    --
    bytesmythe
    Hypocrisy is the resin that holds the plywood of society together.
    -- Scott Meyer
  107. Re:You mean like lynx? by Anonymous Coward · · Score: 0

    You mean like lynx? :P

    lynx is a superb text browser which is incredibly useful in a lot situations where I don't have access to a regular browser, and I need to use the web. Like when the boss is around, and he's only familiar with those silly GUI browsers. Heh, it sure looks like I'm doing something useful right now! :)

    Personally, I dispise javascript, and always leave it turned off. I also only give my business to those sites which understand that no, not everyone runs javascript. At some places I've worked, they actually block JS stuff.

  108. JS bad.... by SlashDotForever · · Score: 1

    The reviewer is right. For most people most of the time you need a reason to learn. Necessity is the mother of all invention, remember? In general people like to see instant useable results. I think you have two groups, and therefore, two basic streams that should be followed. The first is the amateur/hobbyist and the second the professionals (people that develop software for a living). The former probably need just a language that is simple to do moderately complicated tasks, something like VB 5/6 for example. The latter need considerably more, OOP, UML, etc. Therefore the requirements for a intro language are radically different. If you are somewhere inbetween learn Python...

  109. Javascript is a horrible language to learn first by popo · · Score: 1


    As someone who learned BASIC on a Commodore PET, (and later on the PC and C-64), PASCAL on a Macintosh, Visual Studio on Windows and finally Javascript -- I have to say, Javascript makes a horrible first language to learn.

    First off, its quirky -- filled with bugs, platform checks, version differences, etc.

    Secondly, its primary output (document.write)occurs on a pageload which makes it a very odd language indeed. Sure, you can write realtime to layers, position elements on the screen and dynamically hide and reveal data to simulate the most basic terminal functionality, but this is an enormous pain -- and hardly the place to learn basic loops, objects, functions, sorts, etc.

    Javascript will always be a very strange marriage between straightforward programming, and the very weird and non-straightforward world of browsers and markup.

    This is a horrible place to start.

    --
    ------ The best brain training is now totally free : )
  110. Re:javascript is horrible by popo · · Score: 1


    "Javascript" is what we're talking about here... not "java".

    --
    ------ The best brain training is now totally free : )
  111. get the "any" browser at by HighOrbit · · Score: 1

    lynx.browser.org. I recommend it's nice JS implementation by the way.

    1. Re:get the "any" browser at by Anonymous Coward · · Score: 0

      Correction. The official Lynx site is http://lynx.isc.org/. It's now listed as so in 2.8.5rel1.

  112. php by pierpa · · Score: 1

    and i say: php if javascript is called a language, than php is much more portable, can be compiled (through zend), works on command-line also. php in 'net aware: files and urls are almost the same thing. php has the best of all the best command-line tools. in a few rows you can send and read email, convert between julian and frech revolution calendar. it does easy semaphores and multiple number precision math. it uses many sql servers as xml or db4 files. it handles ncurses, html and images as input and output. php is the macro of macros. easy and fast.

  113. Re:javascript is horrible by Tablizer · · Score: 1

    I personally prefer explicitly different operators for concatenation and addition. There have been huge language wars over this issue, but it seems a personal preference in the end.

  114. Re:You mean like lynx? by MoneyT · · Score: 1

    Well, I suppose if you're using lynx for all your web browsing needs, chances are, you know how to program already.

    --
    T Money
    World Domination with a plastic spoon since 1984
  115. For school kids? by niittyniemi · · Score: 1

    > 1. It has to be easy to learn and use. In order to build the novice's
    > confidence, it should encourage early successes. It should be easy
    > to debug.


    I'd say JS hits that. You can quickly write a webpage that does something ie. Displays a Fibonacci series, manipulates dates/times with very little code and what's more they pick up some html at the same time!
    For debugging you've got the console/debugger in Moz/Firebird.

    > 2. The tools have to be accessable to the student. ...

    Yep. A browser with a JS interpreter is available on pretty much any platform.

    > 3. It has to be practical. If the student can't use it to do
    > something which is useful TO THEM fairly early on in the
    > learning process, they probably won't stick with it.


    I don't think it has to do anything useful per se, it has to look like it's doing something useful. Ever written something fairly complicated in C and it just prints something to a terminal? But a rollover in JS is pretty trivial and how cool does that look! :)

    > 4. It has to provide a good foundation for future learning...

    I'm not sure if JS does with it's loose typing but I reckon for just getting kids interested in programming it probably hits the spot. It's certainly a good way for them to find out if programming interests them and all they have to do is sit down at any PC with a browser on it, no mucking around having to set up the programming environment except for supplying a decent editor (no, not Notepad).

    My opinion is that JS should be primarily taught at schools instead of the kids stuffing around with Word and suchlike. Ever seen how bored the kids are in class when they have to type a letter in Word? That's not computing, it's stuffing around and they're learning nothing.

    Adults could start with something a bit more featureful (regards doing something that's actually useful), maybe Python.

    --
    The Machine stops.
  116. The best way to learn is not in school by Bruce+Perens · · Score: 3, Insightful
    Programming is not a skill that can be taught.

    The most you can do is help a student develop their skill. Skill is something that comes from the way your brain is wired. If you don't have it, no amount of learning will give it to you.

    There are a lot of people with advanced degrees and little skill.

    Bruce

    1. Re:The best way to learn is not in school by Anonymous Coward · · Score: 0, Troll

      God, could you be more of a pretentious dick? I think so, yes. The answer is yes.

  117. And while we're at it, go get the new Lynx by Anonymous Coward · · Score: 0
  118. You've got to be joking..... or stupid by zibix · · Score: 3, Insightful

    Anyone who actually suggests that learning programming should be made more difficult to prevent irresponsible use has got to take the cake for elitest bullshit.

    1. Re:You've got to be joking..... or stupid by Anonymous Coward · · Score: 0

      Mod this up. That elitist crap makes me sick.

      I think the real motivation behind statements like that is fear... fear that someone more creative than you may actually learn how to program and take your job. What a cowardly piece of garbage.

      The fact that this elitist BS is modded up here at /. really says a lot about its users. Think a little next time, folks.

  119. Client-side scripting by DRO0 · · Score: 1

    My main issue with client-side scripting is not necessarily the language/platform, but the manner in which it is used...

    IMHO, it's OK for web pages to use JS or some other client-side to supplement or enhance the user experience (i.e., basic form validation, help pop-ups, etc). However, I've also seen web pages that depend on JS and I've seen that result in menus that do not work across all browsers and are often even lacking some kind of navigational alternative when the JS doesn't work.

    So I agree with those who say it's not always about programming languages. It's more about universal design principles and good separation (non-interdepedence) of functional roles between client and server-side scripting logic.

  120. Great but... by n0dez · · Score: 1

    I hope they don't tweak it to work only on IE.

  121. I'd really like to learn with this book but... by marcello_dl · · Score: 1

    ...I really can't find this "Any" Web browser anywhere!

    --
    ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  122. A Great Language to learn on by 5+Second+Rule · · Score: 2, Interesting

    I think the Processing tool/language/environment developed by Casey Reas and Ben Fry at MIT is a great place for young people to learn. Its based on Java syntax, but has a very fast and powerful graphics API that lends itself to quickly creating visual sketches in code. Its completely free, has its own environment and compiler that is simple and easy to get started with. The website has plenty of clearly commented examples teaching concepts step by step, a nice reference page with many illustrations of the core functions and control structures of Processing, and a very helpful message board community. Most people creating in Processing share their source code, so if you see something cool you wanna try out yourself (and there is a lot of really cool work featured on the site), its just a matter of reading through the code.

    So if you are a more visually inclined novice programmer like myself, in my experience, playing around in Processing can be immensely insightful and rewarding. And a lot of fun.

  123. Re:Do I have the Asperger's syndrome? by nineoneone · · Score: 1

    Women especially make me nervous.
    Damn right they do. Can you hear them thinking, too? It's natural.

    --
    sig under development
  124. QuickBASIC and 3-2-1 Contact by KalvinB · · Score: 1

    JavaScript is fine but restrictive in the types of things you can do with it. QuickBASIC on the other hand, is incredibly easy and allows virtually any type of game to be made. You can learn how to do sprite animation, binary file loading and saving, scrolling, double buffering, etc. And it's free.

    I learned how to program by using the sample code from 3-2-1 Contact and then modifying it to see what happened.

    After 8 years of pretty much mastering QB I made the leap to DirectX and C++ without flinching. I actually learned the two at the same time. The problem is that books like the above focus too much on syntax. Syntax is not important. It is not necessary to learn 'C' style syntax to learn how to code. What is necessary is *concepts.* I still use all the concepts learned in QB in my current projects.

    The main problem with books like this is that they're boring. I learned how to program by inventing a game that would require learning certain *concepts* and then learning them. JavaScript is not good for making entertaining projects. And so kids will just get bored.

    QB allows you do to anything. Text based adventures, text based scrolling games, card games, graphical games. And if they want to do applications they can do that as well.

    So what if you can load a JPG if you can't do anything with it. I entered in 10000 lines of data by hand in a custom graphics format of my own design to be able to have graphics I drew be loaded into my first major game. I even figured out how to "digitize" hand drawn graphics by drawing pictures on graph paper and then filling in the boxes the lines passed through. I used dirty rectangles to animate a massive character for the ending sequence.

    Those skills are basic skills needed for any project. You need to be able to design file formats. Whether it's for graphics or data. And you need to be able to be creative to solve problems.

    Ben

  125. Fish, Don't Program by Googol · · Score: 1
    Here is what their first program should be, I don't care what language is used or what book downloaded. A few more lines and you can download lots of interesting books, for learning lots of languages.
    use LWP::UserAgent;
    my $ua=LWP::UserAgent->new;
    $ua->proxy(http=>'http://proxy.entp.attws.com:8080 ');
    my $req=HTTP::Request->new(GET=>"http://savannah.
    ......nongnu.org/download/pgubook/ProgrammingGroun dUp-1-0-lettersize.pdf");
    $req->header('Accept' => 'application/pdf');
    my $assembly=$ua->request($req,"programming_book.pdf" );
    print $assembly->status_line."\n";
  126. Re:javascript is horrible by pi+eater · · Score: 1

    Doh.. that's what I meant.

  127. PHP is better..... by Retarded_Ninja · · Score: 1

    I say PHP is better. It is similar in style to C and Perl. It doesn't require much to set up. You can do it at home or even get some free hosting space such as geocities or something newer. They all make the use of PHP readily available and tips, tricks, and tutorials for learning PHP are all over the place. Best of all, with a little resourcefullness, you can do this all for FREE. You could even learn MySQL for the backend for nothing as well. Hell thats how I got started. Open source is great for learning.

  128. SMIL by Vagary · · Score: 1

    Yet another reason why the open source communit needs to make SMIL a top-priority: Flash-style projects with the tall drink of water that is ECMAscript instead of the tub of excrement that is ActionScript.

  129. Re:javascript is horrible by Anonymous Coward · · Score: 0

    That example works fine for me. Are you sure that you're not *really* dealing with Strings? (Use obj.toSource() to find out whether it is a String or Number.)

  130. Python Programming for the Absolute Beginner by Daverz · · Score: 1

    I've heard good things about this book,

    Python Programming for the Absolute Beginner

    which may be what you're looking for for your daughter. For an older teen, this book on PyGame may be appropriate:

    Game Programming With Python

  131. Missing the point... by YuppieScum · · Score: 2, Insightful

    Yes, Python and a host of other languages can be downloaded for no cost, BUT none of them are provided ready-installed along with the OS on 99.8% of all new desktop/laptop computers today, and with 90%+ of desktop/laptop computers sold over the last 5 years.

    With this book and a computer running Win98 or later (can't remember if IE on 95 has JS), or OS X (dunno about earlier versions), the user has all they need to start writing code of their own. No downloads required - hell, they don;t even have to be on-line!

    Never mind the 12-13 age group - I'll be giving this to a few 7-8 year olds for birthday and/or christmas prezzies...

    --
    This sig left unintentionally blank.
    1. Re:Missing the point... by imnoteddy · · Score: 1
      Yes, Python and a host of other languages can be downloaded for no cost, BUT none of them are provided ready-installed along with the OS on 99.8% of all new desktop/laptop computers today

      Python is ready-installed on Mac OS 10.3, which has at least 2% market share of new computers, which is larger than the 0.2% you claim.

      --
      No electrons were harmed creating this post, though some may have been subjected to electrical and/or magnetic fields.
  132. Deitel and Deitel's C++ "How To Program" by JeffTL · · Score: 2, Insightful

    Pretty good book. Covers the C++ language, though it talks an awful lot about UML flowcharts and the like -- okay if that's your style, but for my purposes, farting about with pseudocode and flowcharts is more difficult than writing the damn code in a real language -- at least Applescript, and usually C++.

  133. Re:javascript is horrible by stuffduff · · Score: 1

    That's the problem! var is the datatype and JavaScript's first inclination is to deal with it as a string! Too bad JavaScript does not offer an int!

    --
    "Can there be a Klein bottle that is an efficient and effective beer pitcher?"
  134. C++ as first language... by xenoxion · · Score: 3, Informative

    I just turned 14 and I'm learning C++ as my first language. I don't think it's overly hard, though pointers did take me a few weeks to get the hang of :/. My only gripe is that it's hard to make something that I'll actually use (and thus I sometimes lose interest), because I still don't know how to import/export/create files, and because I wanted to make a few simple games but after seeing some basic OpenGL code I know I'm not going to be doing that for a while (using the tutorials at NeHe I see that I need to write a few hundred lines of code just for a blank screen...).

  135. Let's face it by Anonymous Coward · · Score: 0

    Any language that uses a derivative of C style syntax is not a very good choice for beginners to learn about programming concepts.

  136. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  137. database interaction works through php by Heisenbug · · Score: 1
    You can indeed have database interaction through javascript, though it's not for beginners. You need a hidden frame which can load a server-side application to fetch or write the data and load feedback. Something like

    parent.hiddenframe.location='db.php?action=save& score=12';

    where db.php saves the score, and writes out some new javascript like

    onLoad='parent.bigframe.scoreSaved()'

    You can see a nifty example of this at my web montage tool, here: http://www.unrendered.org/unrendered/imager/

  138. Most people learned BASIC as first language? Naw. by snStarter · · Score: 1

    I have to disagree.

    By the late 70s PASCAL was making a direct inroad into colleges and universities for the purposes of teaching programming. FORTRAN, however, was required for engineers and the sciences.

    Those "bad habits" you metion pale in comparison to "computed GOTO's" in terms of readability. Yet FORTRAN code that runs to this day still uses those.

    Teaching someone to program with Javascript is actually scary to me. There are so many better languages on which to learn.

    Even FORTRAN.

  139. What is really essential for kids: Type-ins by ReyTFox · · Score: 1

    When I was little I copied tons of type-in programs from books or magazines into the Atari. I didn't necessarily understand everything, but doing the work gave me a basic understanding of what was going on.

    I think a modern book based around the type-in approach, regardless of the language, would work very well, especially if it adopted an iterative model where you slowly added bits and pieces to your programs. After each new addition there would of course be some explanation of what's going on that captured the essentials of *what the computer is doing* rather than putting everything in abstract terms and relying on the kid to trust that it'll all somehow work out. An appendix at the back could provide further detail as to how the hardware operates, and the various ways operating systems work with the hardware, without necessarily becoming tied to specific hardware.

    Oh, and there would be no CD containing the programs in finished form. That only encourages you to "see it working" rather than "make it work yourself."

    Maybe I should write that, when I feel up to it :P

  140. Re:Java? RTFA by Anonymous Coward · · Score: 0

    It says "JavaScript", not "Java". Newsflash: they're two different languages.

  141. Re:C++ as first language... by lightistoobright · · Score: 1

    Maybe try some text based games so you don't have to deal with the graphics programming? Maybe a text based RPG, or something with ASCII "graphics". Either one would be fun, and would help you practice so you can better understand the harder stuff.

    Good luck!

  142. Re:You mean like lynx? by hatrisc · · Score: 2, Insightful

    that takes nothing away from the fact that javascript is a very good language to learn programming on. i learned how to use loops and functions in javascript way before i knew what a compiler was. i say 'YAY!' to the author for an interesting and effective thought.

    --
    I write code.
  143. JAVASCRIPT??? by Anonymous Coward · · Score: 0

    That's really, really sick. That man ought to be pummeled to death with the same number of 200 page paper back books that he manages to sell.

  144. Re:You mean like lynx? by cbreaker · · Score: 1

    There's always the group of people that "dispises" something that the "masses" use and like and need. I group you into the same group as people who claim "I have not owned a TV in 20 years and I'm proud of it."

    However, I do use Lynx, it's handy to have around. But I don't dispise Javascript; it's pretty useful.

    --
    - It's not the Macs I hate. It's Digg users. -
  145. [insert pertinent subject line] by Laxori666 · · Score: 1

    Lord help somebody that learns to program using Java. It teaches you the worst programming practices ever, including using classes for everything and never cleaning up after yourself. I think that before anybody learns to program in Java, they should learn to program in C++, or another OO language, first. I don't like Java. Python is an interesting choice as a first language, I've never had that idea before. Personally, I learned to program with QBasic when I was around 9. THis could be a disaster, but I had help from both my parents, which are programmers, and they taught me about arrays and loops and subs, all those things. And then of course you have to switch from that to a real language, like C++. QBasic also makes graphics incredibly easy, which makes it great to learn as first language, as graphics are... just so much nicer. Instant gratification. QBasic isn't really available on everything. But its a far, far better first choice than JavaScript. JavaScript is also pretty incredibly unstrucutred... I don't know. I feel unsafe when writing javascript. Python is pure brilliance =). I told my dad's friend, "Python is this new languages, OOP and scripting." He shook his head and said "when I was young we learned FORTRAN and COBOL." =P So yeah, QBasic if you're under 13, and python if you're over =P.

  146. Re:Barrier to entry is still too high by Leeji · · Score: 1

    Sure it's free, but it's not installed.

    Think about the first experience you had with programming. For most people, the barrier to entry was very, very low. I.e.: They turned on their computer, and saw a GWBASIC prompt blinking at them. They were at a friend's house who had everything set up already.

    I learned Basic that way. I then learned C when my Dad's friend left it on our computer after showing it to me.

    It's a factor I spent quite a bit of time thinking about when I wrote my own introduction to computer programming. I really wanted to use Java as my introductory language, but that still requires an install (and command-line interaction.)

    --
    It all goes downhill from first post ...
  147. Re:Browser IDE: Web Form by Leeji · · Score: 1

    I wrote an introduction to programming (w/ Javascript as the language) and thought about the IDE problem as well. I ended up writing a "Javascript Testbed" for people to use as their "IDE."

    Not the best, but my main focus was _zero_ barrier to entry.

    --
    It all goes downhill from first post ...
  148. Alternative to ECMAScript? by tepples · · Score: 1

    I understand why the WAI deprecates ECMAScript, but if your web host provides no server-side scripting, how else are you supposed to generate content? Such hosts include file:// (used for CD-ROM based web pages) and the many banner-supported free hosts.

  149. Re:That was my first goal by Leeji · · Score: 2, Informative

    You're right-on there. I wrote an introduction to programming (w/ Javascript as the language) and thought about the IDE / language problem as well. I ended up writing a "Javascript Testbed" for people to use as their "IDE." Although I would have loved to use Java as the starting language, my main prerequisite was a _zero_ barrier to entry.

    --
    It all goes downhill from first post ...
  150. The very best way to learn by Laxori666 · · Score: 1

    QBasic -> C -> C++ -> Python -> ?
    Start programming at 8 with QBasic. Ask your parents who know how to program about it, have them teach you if/else, arrays, subs, etc etc.
    You can fiddle around with that for a while. It also has very direct access to graphics, and you get gratification once you start using graphics mode.
    Then, learn C using C for Dummies, the greatest book in the universe. Then learn some C++. Then anything you want. Python is pretty great =).
    Whatever you do, don't learn Java before C or C++... it's evil.
    Well, maybe this isn't the best way, but its the way I did it, and I turned out fine =).

  151. Re:Strongly disagree: MIX! by HiThere · · Score: 1

    I left on one very important candidate. Donald Knuth's MIX.

    This would be a poor choice for most beginners, but I've encountered a few that would fit this nicely. It is for those who REALLY want to understand how the computer works. (You'd better accompany this with a copy of the Art of Computer Programming!)

    I would never recommend one of the modern assemblers, nothing since the Motorola 68000 had the necessary elegance and simplicity. But MIX does! And you can get MIX for most modern environments.

    N.B.: It's important that you choose your language to match the student. I said Python, because I think it's usually the best. But there are things to be said in favor of most languages. Even Haskell if someone comes from a strong math background.

    E.g., I once taught someone to program using Fortran IV. He started out being an astrologer who wanted some specialized tables calculated, and ended up a professional programmer. (Well, before he went into management.) So I've got to count that a success. But note that he was already into intricate calculations, and Fortran was a good match to his problem. (Python would have worked just as well, though.)

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  152. I say teach em prolog... by Phil+John · · Score: 1

    ...none of those if/else and for loops...no...real programmers use tail recursion! ;o)

    All joking aside, whilst I never really enjoyed programming in Prolog I could never look at a finished program and not admire its elegance. Prolog is a beuatiful language, it's just a bitch to code in if you're not used to it.

    --
    I am NaN
  153. Java\JavaScript by SoulSkorpion · · Score: 1

    Yes, people, it's not learning to program in Java, it's learning to program in JavaScript. You should know better. But anyway, that wasn't my point.

    Java would probably be a better language for this sort of thing because JavaScript isn't standardised. "Learn How to Program Using Any Web Browser As Long As You Only Want It To Run On That Browser And Therefore You're Going To Write For IE".

  154. Java != Javascript by Evil+Pete · · Score: 1

    You know that don't you? Just the way you put it makes it like you know Javascript and not enough of anything else to know the bleeding obvious that Java and Javascript have nothing else in common but a similar name. Apart from that I agree, though I'd probably go more for Python ... so easy to learn. Though the easiest language I ever learnt was Basic for the Sinclair Spectrum ... took me a couple of hours one afternoon (had never seen basic before). GW-Basic was nasty and primitive in comparison. For the record my favourite languages are (in order): C++, Java, C, Python, and others.

    As for Javascript, what Javascript I have done I've found much easier using the Venkman debugger in Mozilla ... why on Earth would you do it any other way?

    --
    Bitter and proud of it.
    1. Re:Java != Javascript by lukewarmfusion · · Score: 1

      Obviously Java is not the same as Javascript. But learning Javascript (or Java, or C or C++ or a handful of other languages) will easily translate into other languages as well. I'm not talking details - I'm talking general concepts, logic, etc. I've studied both Javascript and Java, and I'll tell you that there's a lot of crap that comes with using Java that a beginner (just getting into it all) would be frustrated with. Javascript is nice because it's your browser. You can teach it with notepad (or vi, or whatever) and a browser.

  155. Re:You mean like lynx? by Eunuchswear · · Score: 1

    Some people despise people who can't spell.

    (What do you think the chances are that I've made a stupid misteak in this message? :-))

    --
    Watch this Heartland Institute video
  156. Re:javascript is horrible by MrBlint · · Score: 0

    As far as I know javascript does not have any exploits since without an exposed object model to operate on it can't do anything. It is purely a scripting language and its capabilities can be no greater than the thing that is being scripted. The thing that makes lastmeasure (shudder) posible is not javascript but the browsers object model - which would be just as easily exploited in any browser based scripting language.

    --
    That's very perceptive of you Mr Stapleton and rather unexpected in a G Major
  157. Re:Nostalgia by Rich+Klein · · Score: 1

    You had a Mac Plus when you were 7? You aren't old enough to get nostalgic yet! :)

    I remember learning BASIC on a Commodore Pet, Logo on an Apple II, and assembly on a Commodore VIC-20. Around the time you were messing around with Hypercard on the Mac, ARexx was appearing on the Amiga scene, as I recall. It sticks in my memory because ARexx was often compared to Hypercard.

    I wrote a program on the VIC-20 to keep track of subscribers on my paper route. I wonder if that's still on a cassette in my mom's attic? Did I ever get rid of that VIC-20, or is it collecting dust in a dark corner of mom's attic? You'll miss your memory when it goes! :)

    --
    -Rich
  158. Some tutorials and advice on the Web. by ninejaguar · · Score: 1
    I found this reasonable advice from jemfinch during a related discussion:

    "Learn Scheme. Download "DrScheme" and use it while you go through "How to Design Programs," a free online book for learning to program with Scheme. After that, go to half.com and buy "The Structure and Interpretation of Computer Programs" for around $10 (it'll be an old edition, but that's alright) and read through it, doing all the exercises it suggests.

    If you do that, you'll not only know how to program, but you'll be a better programmer than probably 97% of the people on this board. Which doesn't say much, to be sure, but you'll find that the solid basis in programming that you've developed will allow you to learn any language you want easily. And you'll be able to program well in those languages."

    Dr. Scheme
    How to Design Programs (Uses Scheme to teach programming)
    The Structure and Interpretation of Computer Programs (also uses Scheme to teach programming)

    For those who're interested in Ruby, I've found a tutorial on that as well.

    = 9J =

  159. Two better JavaScript books for beginners by Anonymous Coward · · Score: 0
  160. Re:You mean like lynx? by Hognoxious · · Score: 1
    that takes nothing away from the fact that javascript is a very good language to learn programming on
    Yeah, but which javascript?
    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  161. *Any* web browser? by lazarusL · · Score: 1

    First off, PDF is of course misnamed, because there are of course no decent viewers for a text-only system.

    That out of the way, let's talk about this "any web browser" thing.

    Javascript? Yes, you can insert all the hate about Javascript and lack of security here if you like, but I don't need to worry about. You see, my browser is immune to such problems. It's lynx.

    Lynx is no longer a browser? That's what your article seems to imply. The anti-lynx FUD is a little ridiculous these days. I've been told lynx doesn't support graphics, lynx doesn't support https urls, lynx doesn't this, lynx doesn't that. It gets old, certainly. But I hadn't yet heard that someone decided lynx was no longer a web browser.

    "Learn to {cough} 'program' (or at least write Javascript) using *certain* web browsers, only *if* you happen to be on a machine that supports PDF."

    That one looks accurate.

  162. Re:You mean like lynx? by hatrisc · · Score: 1

    javascript is general enough in simple things. of course once one gets into browser manipulation, you get into trouble. but to learn basic programming, functions, loops, it shouldn't be a problem.

    --
    I write code.
  163. Re:You mean like lynx? by Hognoxious · · Score: 1
    javascript is general enough in simple things
    Y'reckon? At a time when I had a longish train commute each day, I was using the Epoc version of Opera & one of them there "javascript by 24 dummies in 7 days" books and the second or so example from the course didn't work.
    of course once one gets into browser manipulation, you get into trouble.
    Of course, once one gets into the decimals, pi isn't three...
    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  164. that... by Anonymous Coward · · Score: 0

    Or anything that looks fun to mess around with. Personally I got hooked on programming because of hex editors. I started of mucking around in command.com (DOS 2.1) and changing command names and error messages to funny, oftentimes stupid puns and outright jabs and the user.

    After that I started noticing certain byte sequences appearing rather regularly, and then I started to unassemble some files.

    Yes I learned to code in ASM, and I was about 12-13 years old then.

  165. Who said anything about Java? by rjshields · · Score: 1

    The grandparent was talking about javascript.

    --
    In this world nothing is certain but death, taxes and flawed car analogies.