Beginning C for Arduino, Second Edition: Learn C Programming for the Arduino, 2nd Edition - PDF
Скачать полную версию книги "Beginning C for Arduino, Second Edition: Learn C Programming for the Arduino, 2nd Edition - PDF"
Shortly after Gutenberg’s big breakthrough, I was teaching a graduate-level statistics course and had to have a calculator with a square-root function. At the time, the least expensive I could find, even with an educator’s discount, cost $150. Now I look down on my desk and see an Arduino Nano that’s about the size of my thumb, costs under $5, and has more computing power than some early computers. I can’t imagine where things will be 50 years from now.
The path I took to this moment in time is different than many of you reading this text. My primary area of expertise has been software engineering. However, I have always loved electronics and have dabbled in it since I first got my amateur radio license over 60 years ago. Yet, with all of the technological advances that are embodied in that thumb-sized board that sits in front of me, it’s little more than a lump of silicon unless someone tells it what to do. Programming gives life to lumps of silicon, and I find that power pretty heady stuff.
The primary goal of this textbook is to teach you the C programming language as it exists in the Arduino integrated development environment (IDE). I just Googled “Arduino C programming books” and got 1.1 million hits! Some people are probably rolling their eyes, thinking: “Just what we need … another C programming book.” I hope to convince you over the ensuing pages that this book is different.
First, many C programming texts designed for the Arduino environment relegate programming to the back seat, concentrating instead on the electronics. Indeed, some give you the feeling that programming is a necessary evil you must work through to get to the good stuff. Not this text. The truth remains that so-so software is doomed to produce so-so results with the hardware. Crafting good software can be every bit as rewarding as a well-engineered piece of hardware.
A second factor that makes this book different is my teaching experience. I had a programmer work for me who was perhaps the most gifted programmer I know. One summer I assigned an intern to him and, within a week, she quit in tears, saying he was impossible to work with—let alone learn something from him. Just because you are a brilliant programmer doesn’t mean you can impart that knowledge to others. It’s not until you have 150 sets of eyes staring at you like a deer in the headlights that can you appreciate what you thought was a great way to explain something obviously isn’t. This trial-and-error process of teaching for more than 25 years has helped me develop techniques that lift students over the most likely stumbling blocks.
Finally, teaching programming does not have to be a dry or boring process. I have tried to make this text read as though you and I are talking face-to-face about programming. Although you are the final judge, I hope you come away with the enjoyment and appreciation for programming that I have. The power to make a piece of hardware dance beautifully to your commands is most addicting.