Good Books To Learn About Arduinos and Programming

Here's a new book for the total Arduino beginner:

Disclaimer - I wrote it :slight_smile:

I love reading Arduino books and I've learn a lot of things. I'm also taking online courses now and I know my Arduino learning will help my business soon.

And what is your business?, selling on-line business courses?

Any book good for professional C++ programmer ?

is Cookbook used only C?

Any book good for professional C++ programmer ?

Too much good books, different levels and styles and many dedicated to specific platforms.
Spend an evening browsing at amazon will find you a book that matches your personal style.

Sorry, What I meant is Arduino book that use C++ on examples , not C++ books to learn C++

There are at least three books above that will learn you a lot about Arduino specifics.

I was randomly browsing Google+ earlier and saw a post about the amazing completely free full courses that MIT offer.

C, Python, circuitry, algorithms... the lot! Full, detailed courses at all levels with notes, video lectures, course material.

Then I started following links - they're not the only ones giving away a wealth of info.

The snappily titled Beijing Information Science and Technology Network and Information Systems Research Institute have all their course material online (some of it is Chinese). As well as full PDF ebooks (English!) of...

The C programming Language, Kernighan and Ritchie 2nd Ed.

The_C++_Programming_Language_Special_3rd_Edition Bjarne Stroustrup
(See also Stroustrup: C++ Style and Technique FAQ)

Some of those books run to £30/$50 in paperback on Amazon in print version, and how much would you pay for those MIT courses?!

Also...
http://www.cplusplus.com/doc/tutorial/ also has a full, free downloadable PDF of their [complete C++ Tutorial](http://C++ Language Tutorial).

EDIT: Just found another free book! Programming from the Ground Up.

Mind you, this might be straying from C and Arduino, but I've included it here because the intro says...

This is an introductory book to programming and computer science using assembly language. It assumes the reader has never programmed before, and introduces the concepts of variables, functions, and flow control. The reason for using assembly language is to get the reader thinking in terms of how the computer actually works underneath. Knowing how the computer works from a "bare-metal" standpoint is often the difference between top-level programmers and programmers who can never quite master their art.

Which seem like a good way of thinking.

There - how's that for starters!

Good question and good answers! :slight_smile: :smiley:

I am new to Arduino (got my a few days ago) and I've maked the led blink in different ways. (My breadboard is still in the mail) Now I am lookin for a good for the beginner. I've whatched a few tutorials on Youtube and found quite a few good tutorials on-line but I am old fashioned in some way. I want a book. I think I'll learn more if I type down the progams from the book instead of just copy-pasting (and I'll perhaps learn not to make typos).
Books I've considered are:
Getting Started with Arduino by Massimo Banzi
or
Programming Arduino Getting Started with Sketches by Simon Monk
or how about
Exploring Arduino: Tools and Techniques for Engineering Wizardry by Jeremy Blum
At least Blum's tutorials on Youtube are great an I leaned a lot. Not just about the Arduino but also on electronics.

And then maybe some book on actually building something (useful). Maybe:
30 Arduino Projects for the Evil Genius: Second Edition
Any Ideas?

I'll toss my hat in the ring here - my wife & I wrote a book called Arduino for Teens, just released last week.
http://www.delmarlearning.com/Browse_Product_Detail.aspx?CatID=43536&ISBN=1285420896

Available for $25 at Amazon for $25-26 (price seems to vary)

"Are you interested in building an interactive toy, automated artwork, or robot and have no idea where to start? Or do you want to control a holiday light display? Are you new to microcontrollers or electronics in general? These projects are made from smaller, simpler pieces like those presented here. Your imagination is the only limit once you have gained experience with your Arduino, sensors, and motors. Designed for students, artists, and other nonengineers, the Arduino provides an inexpensive, beginner-friendly microcontroller platform. This book will help you translate your idea into a successful project using the Arduino for control. Written especially for new users, ARDUINO FOR TEENS shows you how to put this capable little microcontroller to work! This book will open up the world of automation to you in new and exciting ways as you explore the Arduino's capabilities. Step-by-step, you'll be guided through: understanding your new Arduino and its capabilities, converting your idea into an achievable Arduino project, connecting your Arduino to the outside world using example circuits, using the Integrated Development Environment (IDE) to write and download programs, writing software to control your project using example programs, debugging your project and making it work, and selecting your next (or first) project."

You may not be a teen, but you are sure to learn from this 300 page book.

@Robert
FYI, I pointed some friends in the education field to your book

Thanks Rob, several folks have asked if we are pursueing that field also. In the Products area, some of the initial responders said they were looking at it for use in Mexico also. International!
Certainly much broader than we envisioned while writing it; initially we thought how we could ever fill 300 pages, and then had to trim 40 pages back out to meet the publishers goal for the book.

I suggested to my wife we start locally, donate copies to our local libraries (there are 2 or 3 she borrows from), and the 2 high schools in our town. I know she visited one library already, needs to find some time for the others and the schools.

I'm disgusted with all the Arduino books I've bought or looked at. Only one of my books, "Beginning Arduino Programming", mentions millis() and micros(). And it doesn't mention the internal pull-up resistors or how to activate and use them! Useless! The more I learn, the more I see how much these books lack.

From what I can tell, for a beginner the most important example Sketches to learn inside and out are "Blink Without Delay" and "Debounce". Both use the millis() timer to determine when an LED (or motor, or whatever) should change states or to determine when a switch, button, or other input has been activated and it isn't just noise, based on time passed. And it is scaleable.

Don't even open the "Blink" sketch; what it does, I can do with a 555 timer or a couple of transistors. Using the delay() function is the most useless way to blink an LED or debounce a switch. It is NOT easily added to, and definitely not scaleable.

There are certain best practices in electronics and in programming. I'm not seeing this taught in the half-dozen Arduino books that I own. What I see is heavy use of the delay() command. IMO, it is like teaching a new driver to stop the car with the emergency brake.

/rant

I'm really hoping someone will tell me that their book is better than that.

This one is also quite useful one - Amazon.com -

Introduction to Embedded Systems: Using ANSI C and the Arduino Development Environment (Synthesis Lectures on Digital Circuits and Systems)

The sacred one :

The C programming Language, Kernighan and Ritchie 2nd Ed.

klull3:
Books I've considered are:
Getting Started with Arduino by Massimo Banzi
or
Programming Arduino Getting Started with Sketches by Simon Monk
or how about
Exploring Arduino: Tools and Techniques for Engineering Wizardry by Jeremy Blum

Nice! i'll try them all, thanx!

Hello i am also looking for a good book. I prefer this style of learning. Make together a sketch for example. Blink.
We type the sketch explain what is what.
Do some excersises without telling me the answers.
For example; make the led Blink long then short. Make the led Blink 3 sec and so on. Now leds add another led. Together make the new sketch. Explain, do some excersises with variations to check if you understand and add a switch. Make to gether sketch and so on.
This way i learn something. I find most tutorials or books are making a circuit upload the sketch, look IT works. This is okay for simpele sketches but more comprehensive ones i get lost because i dont understand what the code actually does. The excersises are there to check if you understand the code. I prefer a textbook "school" style. I hope this makes sense

I would suggest you Getting Started with Arduino by Massimo Banzi.
I have finished learning from it currently
It is a great book, to begin with.

I hope this helps
Ruskin