Author: Anant Agarwal & Jeffrey Lang Publisher: Morgan Kaufmann, 2005 Pages: 1008 ISBN: 9781558607354 Audience: Anyone wanting to learn the fundamentals of electronics and prepared to work at it Rating: 4.5 Reviewer: Harry Fairhead
If you move between software and hardware then at some point you will want to know more about electronics. Of course you don't need an excuse to study this most interesting and rewarding of subjects.
This book is the course text for the edX MIT course 6.002x Circuits and Electronics which I took (and reported on) last year and is presented at regular intervals. The first thing to say is that you don't need a copy of this book to complete the course. There are enough extracts provided as PDFs for you to find out all you need to know, but if you want the luxury version of this otherwise free course then you can buy your very own copy.
The first thing to say is that the course, taught by Anant Agarwal, outshines the book by an order of magnitude. Being able to take the topics at your own pace by simply reading the book doesn't compare to the pressure of working to a schdeule and actually doing marked assignments. You also don't get the lab work using the simulator if you only read the book. This is very definietly an occasion where the "film" of the book overshadows the book which simply plays a weak supporting part.
However, this is not to say that this isn't a good book  given that the course is indeed based on its contents how could it be anything other than very good. Rather than simply presenting electronics as applied engineering, the book (and the course) emphasizes the idea of the "lumped" abstraction as a way of simplifying the analysis of electromagnetism. You are made very aware that what you are doing is playing a simplified game that approximates reality.
The first few chapters introduce the basics of analyzing circuits  mainly how to apply Kirchoff's Laws in a way that is systematic and easy. You learn some higher level network theorems such as the Thevein and Norton equivalents. By the end of Chapter 3 you have more or less covered basic DC linear circuits.
Chapter 4 introduces the idea of nonlinear behavior and how to analyze it either as piecewise linear or using numerical approaches. The next topic  the digital abstraction  is a bit of a break in the flow but it does fit together. If you have thought of digital logic as being about two voltage levels corresponding to zero and one then this is going to be a bit of a shock. The idea of upper and lower voltage thresholds are introduced right at the start as a fundamental way of moving from analog to digital.
Chapters 6, 7 and 8 introduce the MOSFET and a number of ways to analyze its behavior in circuits. This goes from a simple switch model to a small signal analysis. After these chapters you feel ready to tackle almost any nonlinear element but the next shock in store is that we have completely ignored components which can store energy.
The next few chapters deal with what you might call the standard treatment of passive LCR circuits. Chapter 9 explains capacitors and inductors and how they are different. Chapter 10 deals with first order transients and chapter 11 deals with second order transients including tuned circuits and their step and impulse responses. Chapters 12 and 13 push on to steady state analysis of LCR circuits. This introduces the concept of impedance which makes things so much simpler and avoids having to introduce Laplace transforms. Here we also learn about filters of a range of types, Q and so on. It gets close to RF theory at this point but not close enough if it is a topic you want to know more about.
Chapter 13 changes the subject a little in that it is about the operational amplifier. But you could consider this to be about active LCR circuits. All of the fundamental op amp circuits are covered  integrators, differentiators and so on. The final chapter deals with the diode  a nonlinear device  in great detail.
And then the book comes to an end.
This is something of a shock because you have just learned enough to start analyzing and understanding real world circuits and you really want to know about bipolar transistors, FETs and even vacuum tubes! However, the rest of the story is left to you, or perhaps to a future course.
There are some irritations about this book that are made worse if you are reading it standalone.There are lots of small topics at the end of chapters that look as if they are in the book but are in fact only available on the web. Adding them to the book would have added only a small number of pages.
You also need to be very clear that this is not a book on practical electronics  it doesn't teach you about construction or neat tricks with components. It is very much an academic course that sets you up to fill in the practical side for yourself. In particular, you will have to be reasonably okay with math  complex numbers, linear and differential equations.
It also isn't a book that is about any particular subarea of electronics  for example it does introduce digital components but it doesn't explain clocked circuits. The exercises at the end of each chapter also go a lot further than the examples in the text, but at least there are answers at the end of the book.
As a standalone book this is excellent, but you will have to work hard to get from the beginning to the end. Sign up to the course and get swept to the end with your fellow students.
Highly recommended.
MITx Experimental Course Completed  A Report
Computer Science MOOCs for March
Learning Scala
Author: Jason Swartz Publisher: O'Reilly Media Pages: 256 ISBN: 9781449367930 Print: 1449367933 Kindle: B00QW1RQ94 Audience: Developers wanting to learn Scala Rating: 4.7 Reviewer: Ian Stirk
This book aims to help developers learn the Scala programming language, how does it fare?

Introducing Python
Author: Bill Lubanovic Publisher: O'Reilly, 2014 Pages: 478 ISBN: 9781449359362 Print: 1449359361 Kindle: B00PHTRLO2 Audience: Not beginners Rating: 4 Reviewer: Mike James
Python is a popular first language and it is used by many first courses in programming. An Int [ ... ]
 More Reviews 
