Slashdot Log In
Learn How to Program Using Any Web Browser
from the charles-atlas-muscles-in-6-weeks dept.
| 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.
Re:Java? (Score:5, Insightful)
Re:Java? (Score:5, Insightful)
Re:Java? (Score:4, Interesting)
(Last Journal: Monday September 30 2002, @06:48AM)
I could go on... but I think my point is clear
Re:Java? (Score:5, Insightful)
(http://www.livejournal.com/~tassach/)
- People who teach kids to program
- Programmers who write insecure software that's prone to viral infection
- Megacorporations that sell software that is inherently insecure because of intentional design choices
- 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.
Re:Java? (Score:5, Insightful)
(http://frymaster.ca/ | Last Journal: Monday September 15 2003, @12:58AM)
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"
Best way to learn (Score:4, Insightful)
(http://www.wabshirts.com/)
geeky shirts.. funny shirts [wabshirts.com]
Re:Best way to learn (Score:5, Insightful)
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.
Re:Best way to learn (Score:4, Insightful)
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.
Re:Best way to learn (Score:5, Insightful)
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.
Re:Best way to learn (Score:5, Insightful)
(Last Journal: Saturday July 30 2005, @12:51PM)
From the grandparent:
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.
Re:Best way to learn (Score:5, Insightful)
(http://slashdot.org/)
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.
Re:Best way to learn (Score:4, Insightful)
(http://slashdot.org/)
I don't have my degree yet either, and I don't blame companies for not hiring without a degree. It's a baseline
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.
Re:Best way to learn (Score:5, Insightful)
(http://slashdot.org/)
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.
Re:Best way to learn (Score:5, Interesting)
(http://quay.wordpress.com/)
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.
HUH? (Score:4, Funny)
Javascript != Java (Score:4, Insightful)
Javascript, or ECMA script, is a terrible non-standardized (despite being created by a standards board) peice of junk.
Re:HUH? (Score:4, Insightful)
(http://www.livejournal.com/~tassach/)
Machine Code (Score:5, Funny)
(http://www.goshko.ca/)
Helps weed out the slackers ;)
Re:HUH? (Score:5, Informative)
(http://www.worldofschmitt.com/)
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.
I sure don't want to see code written (Score:5, Funny)
Re:I sure don't want to see code written (Score:4, Insightful)
(http://www.livejournal.com/~tassach/)
This is wrong on so many levels (Score:5, Funny)
My thoughts on it (Score:3, Funny)
(http://sduran.inetlocker.com/)
document.write("First Post");
Why teach programmers, period (Score:4, Interesting)
Re:Why teach programmers, period (Score:5, Informative)
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
Strongly disagree (Score:5, Interesting)
Re:Strongly disagree (Score:5, Insightful)
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
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]).
Re:Strongly disagree (Score:5, Informative)
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.
Badly titled. (Score:4, Insightful)
(http://www.fredemmott.co.uk/)
rating (Score:3, Insightful)
useless
Random issues I have with Javascript (Score:5, Interesting)
(http://www.claws-and-paws.com/ | Last Journal: Friday March 21 2003, @02:15PM)
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...)
Re:Random issues I have with Javascript (Score:5, Insightful)
(http://www.xutopia.com/)
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()
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;
}
var myArray = [1,2,3,4,5,6,7,8]
if (myArray.contains(3))
{
alert("My array contains 3")
}
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.
Re:Random issues I have with Javascript (Score:4, Interesting)
(http://www.claws-and-paws.com/ | Last Journal: Friday March 21 2003, @02:15PM)
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.
Web Browser JavaScript for Beginners? (Score:3, Informative)
JavaScript for Children? What about Flash? (Score:4, Insightful)
(http://joshwilliams.com/)
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.
Can I get a Hindi version? (Score:4, Funny)
BC
Challenge of finding a first language (Score:5, Insightful)
(http://www.livejournal.com/~tassach/)
- 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.
- 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.
- 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.
- 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.An excellent idea (Score:3, Informative)
(http://www.digitalmasons.co.uk/)
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!
the joy of js (Score:4, Funny)
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
It's a TOOL (Score:5, Insightful)
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.
"Program"? (Score:5, Informative)
(http://www.annoying.org/)
See the Any Browser [anybrowser.org] 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 [w3.org] by the WAI [w3.org]
Rated a 5?!? (Score:3, Interesting)
(http://www.jeffreyhamby.com/ | Last Journal: Tuesday August 02 2005, @01:54PM)
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."
just what we need (Score:5, Insightful)
(http://forums.boiledfrog.us/ | Last Journal: Friday February 21 2003, @01:08PM)
Of course, knowing the stupidity of HR, they'll likely get hired.
First language (Score:5, Interesting)
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.
Teaching 12 or 13 year olds to program (Score:5, Interesting)
(http://www.magnetbox.com/riaa/ | Last Journal: Saturday July 10 2004, @03:34AM)
We've actually designed and implemented this... (Score:4, Insightful)
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.)
It works (Score:5, Insightful)
(http://www.slashdot.org/~lukewarmfusion/journal/ | Last Journal: Tuesday August 02 2005, @02:49PM)
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.
"I'm certain that this one isn't it." (Score:3, Informative)
KFG
Well, that's XXI century's BASIC (Score:3, Informative)
Or we con go back to basic, which could be handled on a disk (or CD), so learning to program would be quite easy!!!
Mozilla (Score:3, Informative)
Re:How about instead... (Score:4, Informative)
(http://del.icio.us/Abcd1234/)
Try Python (Score:4, Interesting)
First language (Score:3, Interesting)
(http://www.bmo-web.com/ | Last Journal: Wednesday August 18 2004, @08:37PM)
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.
Logo (Score:5, Informative)
(http://www.lipsey.org/jim)
I still think the best language to learn to program for kids (starting around 7) is Logo [softronix.com]. Instant gratification, cool animation, you can make impressive patterns quickly and it teaches the basic control structures.
Then, they can graduate to StarLogo [mit.edu], 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.
The big advantage of Javascript is... (Score:4, Interesting)
(http://www.myke.com/)
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
PHP is a great choice (Score:3, Informative)
I can recommend the book: SAMS "Teach yourself PHP in 24 hours"
Richard
Deitel and Deitel's C++ "How To Program" (Score:3, Insightful)
C++ as first language... (Score:3, Informative)
Re:javascript is horrible (Score:5, Informative)
(http://www.intelligentblogger.com/ | Last Journal: Monday August 27, @11:47AM)
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.)
Re:javascript is horrible (Score:5, Funny)
Ironic.
Re:javascript is horrible (Score:3, Insightful)