Learn How to Program Using Any Web Browser
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.
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.
I *wish* JavaScript had Java like syntax. I can't count how many times I've typed this:
//do something with item
//do something with item
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++)
}
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++)
}
(For those of you who don't know JavaScript, "i" will be global without that "var" definition.)
Javascript + Nintendo DSi = DSiCade
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.
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.
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
Instant Hacking
KFG
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.
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.
Getting help learning Lisp is difficult for someone learning on their own. With no Lisp knowledge, it's hard to pick the right platform.
.emacs file
For just learning Lisp, the path I took was:
1. customizing a
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
Squeak Smalltalk is quite excellent for this purpose, IMHO.
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.
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.
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
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...).