Missing Python for Data Science for Dummies Companion Files

For all those long suffering readers who have been missing the companion files for Python for Data Science for Dummies, they’re finally available at http://www.dummies.com/store/product/Python-for-Data-Science-For-Dummies.productCd-1118844181,descCd-DOWNLOAD.html. All you need to do is click the Click to Download link on the page. I’m truly sorry you needed to wait so long. Thank you to everyone who noticed the missing files and also the incorrect link in the book, which now appears in the book errata. Please let me know if you have any problems locating the files or downloading them at [email protected].

 

Getting Your Python for Data Science for Dummies Extras

The process of discovering how to use Python to perform data science tasks begins when you get your copy of Python for Data Science for Dummies. Luca and I spent a good deal of time making your data science learning experience easier and even fun. However, it only starts there. Like many of my other books, you can also find online content for Python for Data Science for Dummies in these forms:

I always want to hear your questions about my books. Be sure to write me about them at [email protected]. In the meantime, I hope you enjoy your Python for Data Science for Dummies reading experience. Thank you for your continued support.


20 July 2015: Updated to show correct link for the companion files.

 

Review of Mastering VBA

A lot of people have asked about the next book to read after reading VBA for Dummies. Yes, the current 5th edition of VBA for Dummies still works fine as a starting point, even with issues such as dealing with the Ribbon to consider. In fact, you can find some great updates to VBA for Dummies on my blog. However, the fact of the matter is that readers have been asking for more, which is where Mastering VBA by Richard Mansfield comes into play. This is the next book you should get if you want to move on from what VBA for Dummies shows you to writing applications with greater functionality. For example, a lot of you have requested more information about creating forms and Chapters 13 through 15 will help you in this regard. Richard has done an outstanding job of moving you to the next step of creating the complex forms required for robust applications.

Another common request that Mastering VBA addresses is the need for security. While VBA for Dummies helps you understand the need for basic security, Mastering VBA takes the process several steps further and could help prevent breaches given the modern computing environment (one that didn’t exist when I wrote VBA for Dummies). Chapter 18 begins the process by emphasizing the need to build well-behaved code. After all, if your code doesn’t behave, there isn’t any set of security measures that will protect it from harm. Chapter 19 goes on to help you understand the essentials of good security, especially with all the modern threats that cause problems for developers today.

At 924 pages (versus 412 for VBA for Dummies), Richard is also able cover some topics in detail that would have been nice to have in my own book. Readers have complained about having to go online to view object model details for the various Office applications in my book. Mastering VBA provides coverage of the object model as part of the book so you can work through it without having to go anywhere else. It’s a convenience issue—readers really shouldn’t have to look for essentials like the object model online, but every author has to face space limitations when putting a book together. The object model material is spread out across the book, but there really isn’t any way to organize it so that it all appears together. This is one time when you’ll need to actually use the table of contents and index to find the material you need.

As with all the books in the Mastering series, this one has questions at the end of each chapter. These questions are designed to help you master the skills learned in the chapter. You find the answers for each of the questions in the back of the book. This makes Mastering VBA an excellent option for the classroom. More importantly, it gives you another way to learn the material in the book. The longer I write books, the more I come to realize that one or two methods of learning simply won’t do the job. This book usually provides three or four ways to learn each task, which means that you have a higher probability of actually mastering the material (as defined by the title).

For all of you who have been asking for the next book after VBA for Dummies, Mastering VBA is the one that gets my recommendation. Until I actually have time to write a book that specifically addresses the concerns in the reader e-mails I’ve received, this book is your best option. No, it doesn’t address every e-mail request that I’ve received, especially with regard to form creation, but it does answer a considerable number of them. Of course, I’ll look forward to your continued interest in my book and I hope you keep those e-mails coming my way!

 

Sending e-Mail My Way

The e-mail was emphatic and I felt bad that I had missed the original missive, but the original had no subject line and I’m leery of opening e-mail without a subject line—it could contain anything. When you send me e-mail, please be sure that it contains a subject. I need to know at the outset that you have a question about one of my books—that the e-mail is legitimate. Otherwise, it ends up in my Junk Mail folder and won’t ever see the light of day. Adding a subject doesn’t take much time and helps me organize my responses to readers. I still receive upwards of 65 e-mails every day and I answer each of them. Having a subject helps me work more efficiently and also makes it possible for me to provide you with better responses.

While we’re on the topic of e-mail, I do encourage you to write me about any book-specific issue that you encounter. It’s always my goal to provide you with the best possible reading experience. I’ll always take your e-mail seriously, answer it as fully as is possible, and provide the fastest response that I can. All this said, I won’t answer e-mails that are outside the boundaries of good social communication. For example, I won’t answer these sorts of e-mails:

  • Please don’t ask me for free consulting. I do provide paid consulting services and will provide you with a bid for consulting services should you require them.
  • Keep any e-mail you send book- or blog-specific. Yes, I’ve had some interesting off-topic conversations, but for the most part, I much prefer to provide a service to people who have purchased my books or read posts in this blog.
  • No, I won’t do your homework for you. Your homework is for your benefit, not mine.
  • I’ll ignore any e-mail that calls my parentage into question or uses inappropriate language. Yes, I understand that you’re essentially anonymous, but courtesy is for everyone, even people online.
  • I don’t perform free code reviews. If you need a code review and would like to hire me, we can discuss my rates.

I truly do try to provide a valuable service through my books, my e-mail correspondence, and this blog. All that I’m asking is that you treat these resources with the respect they deserve. Please contact me at [email protected] if you have any questions.

 

Beta Readers Needed for Python for Data Science for Dummies

According to just understanding data, a data science consultancy, “data science lies at the intersection between statistics, programming and hacking.” And many businesses can take advantage of data science because it can help them identify patterns that you can use to improve your business’s operations. But, what exactly is it?

Data science is the act of extracting knowledge from data. This may seem like a foreign concept at first, but you use data science all the time in your daily life. When you see a pattern a sequence of numbers, your mind has actually used data science to perform the task. What data science does is quantify what you do normally and make it possible to apply the knowledge to all sorts of different technologies. For example, robots use data science to discover objects in their surroundings.

Of course, data science is used for all sorts of applications. For example, data science is used with big data to perform tasks such as data mining or to predict trends based on various data sources. The fact that your browser predicts what you might buy based on previous purchases rests on data science. Even your doctor relies on data science to predict the outcome of a certain series of medications on an illness you might have.

Even though data science first appears easy to categorize, it’s actually huge and quite difficult to pin down. It relies on the inputs of three disciplines: computer science, mathematics, and statistics. There are all sorts of sub-disciplines used as well. Because of the depth and width of knowledge required, a data scientist often works as part of a team to tease out the meanings behind the data provided to solve a problem.

Python for Data Science for Dummies provides you with a beginning view of data science through the computer science discipline using a specific language, Python. The capabilities of Python as a language make it a perfect choice for this book. While reading this book, you’ll see these topics explained:

  • Part I: Getting Started with Data Science & Python
    • Chapter 1: Discovering the Match between Data Science and Python
    • Chapter 2: Introducing Python Capabilities and Wonders
    • Chapter 3: Setting Up Python for Data Science
    • Chapter 4: Reviewing Basic Python
  • Part II: Getting Your Hands Dirty with Data
    • Chapter 5: Working with Real Data
    • Chapter 6: Getting Your Data in Shape
    • Chapter 7: Shaping Data
    • Chapter 8: Putting What You Know in Action
  • Part III: Visualizing the Invisible (2 Pages)
    • Chapter 9: Getting a Crash Course in MatPlotLib
    • Chapter 10: Visualizing the Data
    • Chapter 11: Understanding Interactive Graphical and Computing Practice
  • Part IV: Wrangling Data
    • Chapter 12: Stretching Python’s Capabilities
    • Chapter 13: Exploring Data Analysis
    • Chapter 14: Reducing Dimensionality
    • Chapter 15: Clustering
    • Chapter 16: Detecting Outliers in Data
  • Part V: Learning from Data
    • Chapter 17: Exploring Four Simple and Effective Algorithms
    • Chapter 18: Performing Cross Validation, Selection and Optimization
    • Chapter 19: Increasing Complexity with Linear and Non-linear Tricks
    • Chapter 20: Understanding the Power of the Many
  • Part VI: Parts of Ten
    • Chapter 21: Ten Essential Data Resources
    • Chapter 22: Ten Data Challenges You Should Take

As you can see, this book is going to give you a good start in working with data science. Because of the subject matter, I really want to avoid making any errors in book, which is where you come into play. I’m looking for beta readers who use math, statistics, or computer science as part of their profession and think they might be able to benefit from the techniques that data science provides. As a beta reader, you get to see the material as Luca and I write it. Your comments will help us improve the text and make it easier to use.

In consideration of your time and effort, your name will appear in the Acknowledgements (unless you specifically request that we not provide it). You also get to read the book free of charge. Being a beta reader is both fun and educational. If you have any interest in reviewing this book, please contact me at [email protected] and will fill in all the details for you.

 

Review of Essential Algorithms

Working in computer science means knowing how to work with computer languages, but it also means knowing how to use math to obtain the results you want. Some math is relatively straightforward, but some becomes so complicated that you really do need some type of process or procedure for working with it. Essential Algorithms by Rod Stephens, “defines steps for performing a task in a certain way.” The first chapter begins by defining what an algorithm is and moves on from there to show you how they can help improve your ability to write complex applications.

The examples are written in a pseudocode that the author explains in Chapter 1. In fact, the explanation is accompanied by some examples of how to turn the pseudocode into an actual programming language. I’m almost positive some readers will take exception to the use of pseudocode because it doesn’t relate the example in their specific programming language, which would make implementation of the code as easy as possible for the reader. In this case, the use of pseudocode is impossible to avoid because the book would be far less useful without it.

This text could easily be used in a college. Each chapter ends with exercises that help the reader understand the concepts better (or at least determine whether any of the material actually sunk in). The answers to the examples appear in an appendix at the end of the book. However, in a college setting it might be possible to create a student version of the book without the appendix and a teacher version that includes the answers. The author also uses many of the same examples that I used when I was a student in college, but with an emphasis on diagrams to pictorially show how the examples work. The addition of graphics makes the examples considerably easier to understand.

The early chapters discuss specific kinds of algorithms that are used in every programming language that exists. For example, the author tackles the topic of randomizing data and ensuring that the randomizing process is fair. Of course, getting truly random data on a computer is impossible, but it’s possible to create random sequences of such complexity that the average human would never notice they aren’t random. This book discusses the topic at a length that I wish the text I had used in college would have provided.

Don’t get the idea that Essential Algorithms is light on the computer science aspects of using algorithms. For example, you’ll find coverage of all the basic structures used by most languages: linked lists, arrays, stacks, and queues. I could have wished for coverage of dequeues because many languages modify dequeues to create stacks and queues. Understanding how this essential structure works would have been great.

There are separate chapters for sorting and searching. These two tasks are performed so often by applications that an in depth knowledge really is a necessity for any computer scientist. All the common sorts are covered in sufficient detail that the reader should understand them with relative ease: insertion, selection, bubble, heap, quick, and merge. In addition, you find the counting and bucket sorts (two types of sorts that are completely missing my my college text—I took the time to check). The list of searches are likewise complete: linear, binary, and interpolation.

The opening chapters are finished with chapters on hash tables and recursion. I thought the chapter on hash tables was a bit light and their use as dictionaries in languages such as Python is only mentioned in passing. The chapter on recursion was far better done. I found the material on the various kinds of curves: Koch, Hilbert, and Sierpinski, exceptional.

The middle of the book (starting with Chapter 10) is taken up with trees, networks, and strings. There should be enough material here for anyone who really wants to learn the information. The author seems to hit his stride in these chapters—they’re both interesting and well written.

The end of the book starts with cryptography in Chapter 16. It’s the part of the book that just about anyone will find helpful and it’s also the part that separates this book from being a mere college text and more of a reference book. The chapter on complexity theory is exceptionally nice. Even if you’re already an expert in other areas of this book, it’s likely that you’ll find some new ideas in this part of the book—enough ideas to make it well worth the purchase price.

Overall, Essential Algorithms is the text I wish I had when studying the topic in college and it’ll make a fine addition to my bookshelf. I’ll likely use it as a reference book when trying to understand how various programming languages are implementing a practical need, such as determining how to work with structures such as stacks. I don’t delve deeply into security issues very often, but I’m sure that material will see use as well. There are some holes in the book, but I wouldn’t consider them deal killers and could provide great fodder for the author in the form of articles and blog posts. This is a great book and one that you need on your shelf.

 

Getting Ready for the Crafting Months

I’m not quite ready to kick back and enjoy the wood stove yet, but I may be getting there. The wood pile is starting to look mighty nice and the cool evenings are definitely inviting. In a week or two, I imagine that we’ll need to start having evening fires and that’s when the crafting will begin. Of course, I participate in a number of crafts, but this winter I plan to focus on making some socks. Warm socks are a must have item during the cold winter months.

In Knitting for the Gentleman Farmer you see a pair of socks I made using my Knifty Knitter, but I’d like to do more. The socks I’ve made so far are more akin to slippers, than something you’d put on your feet before your shoes. So, I recently purchased Loom Knitting Socks: A Beginner’s Guide to Knitting Socks on a Loom with Over 50 Fun Projects (No-Needle Knits), which is a book designed for us who like to avoid needles because they’re a tad hard to handle. This book tells you quite a lot about making socks in just a few pages. For example, you discover how to size your socks properly so they don’t slide around on the wearer’s feet (as mine are prone to do).

The book uses looms of various sorts, one of which is the Knifty Knitter. I may end up getting a few other loom types, which wouldn’t bother me at all. It would be nice to create socks that I could wear anywhere with shoes and that simply isn’t possible using the Knifty Knitter. Fortunately, I already have some print socks (socken bedrucken in German) that are very versatile. I’ll also have to get used to working with thinner yarn and possibly add a bit more light so I can actually see what I’m doing.

What I like best about this book is that the author takes time to demonstrate how you can create an amazing array of patterns using a loom. The Knifty Knitter instructions only show how to create a straight knit-nothing very fancy at all. I’ll be able to use the techniques I learn in this book to create nicer looking hats, blankets, and scarves as well (generally, I don’t make other items, even though I certainly could). If you’re looking at getting into crafting, but aren’t sure where to start, you can find some quilt ideas here.

Unlike a lot of books on the market, this one provides realistic levels for each of the patterns. In addition, there is a nice mix of models (young, old, male, and female). It gets tiring to see books that feature all of the patterns being worn by a young woman. Seeing a guy wear some of the items is a nice change for me and will make me feel more comfortable giving those particular sock patterns to my male friends.

Now all I need is a full tea kettle and some of Rebecca’s amazing herbal teas. With the fire started, tea in hand, and some music playing, my Knifty Knitter (and other looms yet to be purchased) will see a lot of use this winter. I’ll provide updates on some of the other looms I try later in the winter.

Review of Math for the Zombie Apocalypse

Making learning fun is something every author struggles with and few authors achieve. Math for the Zombie Apocalypse is one of the few books out there that actually make a mundane topic like mathematics fun. The essential content of this book is the same as the content for any beginning math book you have ever read. There is no way to get around the requirement of having to learn addition, subtraction, multiplication, and division. However, this book accomplishes its task with panache.

The reader is instantly engaged in a favorite topic of children today, avoiding zombies. Of course, it’s one thing to say that you want to avoid zombies, but it’s quite another to actually accomplish the task. Throughout the book, the reader is asked how he or she would prove their mettle against hoards of zombies roaming the land. The answer is to use math to figure out how to stay alive while less skilled acquaintances become zombies themselves.

Of course, the book is meant entirely in fun. The humor is grand and of the sort that children will enjoy immensely. However, the result of reading the book is that a child sees a useful purpose in learning math—even though this purpose is quite fictional in nature. Most math books out there are dry, humorless tomes filled with mind numbing repetition that will lull the most stalwart child to sleep. There is no reason that a child can’t learn new skills in a fun-filled environment. Before the reader realizes it, he or she has learned new and useful skills.

Fortunately, this isn’t the only book the author intends to write. You’ll want to wait to see the new additions to the for the Apocalypse series, but for now, make sure you check out Math for the Zombie Apocalypse, especially if you have a child that is having a hard time learning the basics. This is the sort of book that I wish had been available when I was growing up and one that I hope others see as being a valuable way to get kids interested in an essential topic. The press, teachers, parents, and even a few students complain about the low scores children achieve in basic math today, but this book does something about the problem.

 

Review of MCSD Certification Toolkit (Exam 70-483): Programming in C#

You’re really excited about becoming a Microsoft Certified Solutions Developer (MCSD)! How do you proceed to make your venture a success? Having been through several certifications myself, I understand the importance of having a great certification guide to help you overcome some of the less intuitive parts of the examination process. Tiberiu Covaci, Gerry O’Brien, Rod Stephens, and Vincent Varallo have provided such a guide with MCSD Certification Toolkit (Exam 70-483): Programming in C#. Anyone planning to take exam 70-483 will benefit from this book because it presents the exam topics in a highly organized manner. You can also look at checking out the microsoft exam dumps on sites like Exam Topics to see how this can further help you out.

Let me get one of the gripes out about the book before I discuss all of the good material though. It seems as if every certification guide I’ve ever looked at includes topics such as, “Why Get Certified?” The problem with these topics is that they waste space and bore the reader. The reader already knows why certification is important, so there is no need to discuss the topic, plus if they need help with the 70-480 certification exam, as well as others, they can look towards websites such as itexams.com for the necessary help. The reasons for getting certified vary, of course, but the vast majority of people can sum it up in one word, money. Certification will open a door to a better job, help the candidate keep an existing job, or move the candidate one step further up the corporate ladder. The topic is unimportant because the only thing the reader wants to know is how to ace the exam (or at least get a passing score). I feel strongly that the authors could have used the space spent in preaching to the choir to provide additional helps and aids. If your tolerance for less useful material is low, then you’ll want to skip directly to page 11 of the book and start reading “How to Study for the Exam Using This Book.”

After you get past Chapter 1, the rest of the book starts to take on a predictable pattern. You read the theory behind each of the topics that the exam will test. Code Labs give you hands on experience putting the theory into practice. My favorite sections are the Real-World Case Scenario, which helps you understand how the theory is actually used to write an application that could exist in the real world. A problem with many certification guides is that they pursue a purely academic course-this book avoids that particular problem and gives you practical knowledge as well.

Each chapter ends with a Chapter Test Questions section that contains a few questions you can use to check what you have absorbed. The questions will typically be useful for one or two uses, so you need to ensure you read the chapter and go through the exercises before you attempt to try the test questions. Otherwise, you won’t really know whether you have absorbed the material. Personally, I found the number of questions a bit small. The authors could have beefed up this section to provide the reader with a better idea of how the exam will appear. Having this type of valuable insight into how the exam will be laid out and what type of questions they may ask you, could help you to achieve a higher score. It may also be worth having a look at something similar to these mb-300 exam questions, (if this is the certification you’re taking), in order for you to see how the material you’re reading can be incorporated within the exam. At least this way you will have a better idea about what the questions will be like, so you’re better prepared.

The Cheat Sheet and Review of Key Terms sections provide an outstanding method for refreshing your memory the day before the exam. One of the mistakes I (and probably many others) made in preparing for a certification exam is to study too hard the night before. If you don’t know the material the night before, you most definitely won’t pass the exam because these exams are designed to thwart people who cram. A reminder, an overview of what you should know, is really all you need the night before. Relaxing and getting the rest you need are essential.

I wasn’t quite sure about the Additional Reading and Resources section found in each chapter. This section is helpful, but only if you’re using the book as a reference after the exam, rather than as a means for preparing for the exam. The authors could have possibly skipped this section in favor of providing more questions or other kinds of hands on learning activities (one of my favorite CNE books used puzzles as a learning aid). Then again, having the book as a reference after the example will likely prove useful too-just don’t cloud your mind with too many competing sources of information before the exam. The trick is to keep your mind clear and focused on your objective (passing the exam).

Overall, the text is written in a clear manner and you’ll find that the authors carefully lead you from one topic to the next. Developers who are already familiar with C# application development may find the book a bit boring because it really does cover all the details. The book is more designed for someone who hasn’t programmed using C# in the past. In fact, the authors recommend that more advanced readers simply skim the book and look for areas of weakness, which seems to be a winning strategy.

Of course, the big question is whether a book is worth the price you pay for it. In this case, you’re getting a bargain. The book is well written and will serve the needs of anyone who needs to take the 70-483 exam. Certification usually brings some significant benefit, so anything you spend on materials today will reap financial rewards in the future. Getting a book is also a lot less expensive than taking a course. Using this book will save you money in the long run.

Review of Visual Basic 2012 Programmer’s Reference

As you might expect, Visual Basic 2012 Programmer’s Reference is a heavy tome at 798 pages. Of course, those pages could be filled with fluff, but that isn’t the case with this book. Rod Stephens does a great job of covering a wide variety of topics that anyone who wants to know how to write Visual Basic applications will need to know. The book starts with the assumption that you have never worked with Visual Studio before. Actually, it’s a good start for some developers who have been coding a while because they are self-taught and really haven’t explored everything Visual Studio has to offer.

The first part of the book discusses using the tools of the trade—a topic that most books seem to miss for whatever reason. I’m not talking a quick overview either. Rod provides six full chapters, 77 pages, worth of material on how to use the Visual Studio IDE for various kinds of application development including both Windows Forms and Windows Presentation Foundation (WPF). This may not seem very important at first, but quite a few readers of my books have problems with the IDE they’re using and even more have no idea that the IDE supports certain functionality. In short, many developers don’t have a firm grasp of the tool that they’re using to write code, so they can’t perform their best work. However, if you’re already completely familiar with the IDE, it’s probably a good idea to skip this part of the book because it is quite detailed. Missing from this part of the book is material on working with Metro applications. In fact, that material doesn’t appear until Chapter 21, so this really isn’t a strong Windows 8 offering from a building Metro applications perspective.

The second part of the book is entitled, “Getting Started,” which I view as a misnomer. Yes, you’re getting started writing code, but anyone who skips the first part really hasn’t gotten a good start. This part of the book introduces the reader to controls, forms, and other objects used to create applications. There are six chapters of this sort of material. Again, you can’t expect to create great applications if you don’t know what objects are already available to you. Developers who don’t really know what objects are available will tend to reinvent the wheel or assume that the language isn’t capable of performing a specific task. Rod does an outstanding job of making the reader aware of what is available and how to use it effectively. There are 100 pages worth of extremely useful material of this sort.

Chapter 13 should have begun a new part. Rod leaves controls, forms, and other objects in this chapter to begin working with applications. It’s one of the few organizational errors in the book, but one that is easily forgiven. The next six chapters, 160 pages worth, discuss basic programming topics such as variable data types and the use of programming structures. Chapter 18 provides an excellent discourse on error handling and will be one of the chapters that even experienced developers will want to read.

Chapters 19 and 20 provide extremely basic, but thorough coverage of database topics. This is not a book about database development. Rather, it exposes you to the topic of database development and you’ll need to obtain another book on the topic to finish your education. This said, what this book is really doing is helping you understand database development at an extremely basic level so that the second book you get, the one specifically about database development, will make sense.

Chapter 21 (which is only 12 pages), likewise, is an extremely basic view of Metro development. Again, this isn’t a Windows 8 book and it doesn’t appear that the author ever intended it to fulfill that role. What Chapter 21 does is introduce you to Metro in a basic way so that you can go on to work with a Windows 8-specific book and make sense of the material it contains. That said, I did notice that Chapter 21 does miss out on a few fundamentals, such as obtaining a license for developing apps. Rod doesn’t appear to mention that the target application will only work when running Windows 8 either (at least, I wasn’t able to get it to run on Windows 7).

Starting with Part III, you learn about Object-Oriented Programming (OOP) techniques in detail. Chapter 22 is a must read chapter because it provides the theory that many books on the market lack. It describes what OOP is all about. It’s tough to understand coding examples when you don’t understand the basis for those examples and Rod fills all of the gaps for you. In the chapters that follow, Rod leads the reader through basic class development, structures, and namespaces. The book then continues with some specifies on collection classes and generics. Again, all of this material is designed around a person who really doesn’t know anything about Visual Basic, so Rod takes time to explain the details not found in other books.

Part IV of the book fills out some basic information needed to create standard desktop applications, such as printing in Chapter 27 and the use of configuration information in Chapter 28. The use of streams and filesystem objects come next in Chapters 29 and 30 respectively. The book closes out with an enormous array of appendices (22 of them) that contain all sorts of useful reference information. After you’ve gone through the book, the example applications and this reference material continue to provide you with long term value.

Overall, this is the book that you want when learning Visual Basic. It provides the details needed to write robust applications quickly. However, getting this information is like getting any other sort of education—it takes time and you must work through the examples. This isn’t a quick reference book, nor is it going to provide you with details about specific technologies such as database development or writing Metro apps. Where the book does touch on specifics, it covers those specifics at a basic level with an emphasis on helping people understand the underlying technology. If you’re looking for a book that provides quick answers, a cookbook approach to solving problems, or detailed information about specific technologies, you really do need to look elsewhere. On the other hand, if you’re tired of being confused by online examples and tutorials that don’t really teach you anything, then this is the book you want.