I really like how easy it is to hack prototypes together with Arduino. I recently moved my own prototypes from PIC24 to a Teensy++ (a tiny little Arduino compatible board) and its made life so easy! Its a lot of fun to play with and the wealth of libraries makes prototyping a breeze. Just today I was tinkering with ultrasonic sensors and with bluetooth modules.
For end products, I'd use C and LUFA for atmels rather than Arduino (or a PIC24 if I want 16bit or some of the other fancy PIC24 features, like 40MHz Fcy on PIC24H! since I have no experience with non-8bit Atmel micros)
If Java on Arduino isn't a possiblity, are there Arduino-like boards for Java?
EDIT: Oh, just remembered you can program Lego Mindstorm in Java. Although I don't know how user-friendly that environment actually is, it's not the one Mindstorm comes with.
Long answer: The C++ dialect you use when getting started on Arduino is fairly short on C++-isms and is designed to be simple, straightforward and familiar for people who used the Java-based Processing framework.
So it wouldn't be a big stretch. At a guess I would even say Arduino is very much simpler than Java for a total beginner, talking in terms of number of concepts required to build something simple but useful.
We have Mindstorms and have switched to RobotC from CMU rather than using the graphical programming approach. That works well enough. It seems that all middle and high-school programs that do Mindstorms stay with the graphical programming approach which is a shame because it makes doing anything serious very difficult.
The real reason I'm saying this is that his diagrams with the LEDs will not work. The potential across the LED leads is 0. In fact, on the example with 3 chasing LEDs, it may blow the ports (I don't know know if the pin is an open collector or a current source).
Also, the Arduino IDE already has a serial terminal built in, so all of the Processing terminal handling stuff is moot.
Final point is that running motors from the same supply as the Arduino tends to break down if you put a decent load on them - you'll get brown outs and weird resets.
On the plus side, he does include his bibliography on the last page, so you can check out the original tutorials. That's a pretty decent set of links and books.
I'm also very confused by the "Arduino IDE" section as the Arduino software includes all dependencies as far as I know.
And "Arduino" doesn't even mean "good friend" ...
http://www.allaboutcircuits.com/
Read it, learn it, live it. I started working through it and even just through the first ~5-10 chapters, you'll be able to understand most electrical diagrams in beginner Arduino projects. This way, you won't be assembling a jigsaw puzzle by pictures - you'll be interpreting the diagram.
Arduino uses C, with a few libraries that you'll get familiar with following any set of beginner projects.
If you're on the fence, and have ~$80 to spend on a hobby - go for a beginner kit that comes with LEDs and a servo, and resistors, etc. It makes life easier.
I have no idea why, but it's just so damned satisfying.
I'm an embedded developer and a few years ago I introduced another (web/desktop) developer to simple microcontrollers. His reaction was the same. It's basic programming, but there is something really visceral about making a cylon LED chaser or wiggling a motor back and forth.
That connection to the physical world outside the computer is what's kept me in embedded systems for 20 years.
A friend & I used this as a teaching resource for the first part of a 3 hour workshop for non-programmers getting started with Arduino. We found it to be a great teaching resource (although I'm not a teacher and haven't tried any other methods, so I have nothing to compare it to.)
I'm working on Internet of things projects, generally on the server side, but I decided to try my hand at making an actual device so I made a stationary bike computer that automatically upload workout sessions on Runkeeper:
[1] http://fritzing.org/download/ [2] http://hackaday.com/2009/08/25/fritzing/