Programming Your Way

I’ve been working with Python for a while now. In fact, I’ve worked on three books on the topic: Beginning Programming with Python For Dummies, Professional IronPython, and Python for Data Science for Dummies. Of the languages I’ve used, Python actually comes the closest to meeting most of the programming needs I have (and a lot of other developers agree). It’s not a perfect language—no language can quite fulfill that role because of all the complexities of creating applications and the needs developers have. However, if any language comes close, it’s Python.

There are a number of reasons why I believe Python is a great language, but the issue I’d like to discuss today is the fact that you can actually use four completely different programming styles with Python. Care to guess what they are? In order to find out for sure, you’ll need to read Embracing the Four Python Programming Styles. Before I encountered Python, I never dreamed that a language could be quite so flexible. In fact, the single word description of Python is flexible.

Realistically, every language has potential issues and Python has them as well. For example, Python can run a bit slow, so I probably wouldn’t choose it to perform low level tasks on a specific system. It also lacks the User Interface (UI) functionality offered by other languages. Yes, there are a huge number of add-on libraries you can use, but nothing quite matches the drag and drop functionality provided by languages such as C#.

However, negative points aside, there aren’t any other languages that I know of that allow you so much flexibility in programming your way. You have four different styles to choose from. In fact, you can mix and match styles as needed within a single application. The ability to mix and match styles means that you can program in the way that feels most comfortable to you and that’s a huge advantage. Let me know what you think about Python’s ability to work with different programming styles at John@JohnMuellerBooks.com.

 

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!

 

MathWorks Promotes MATLAB for Dummies

I was incredibly pleased to receive an e-mail the other day stating that MathWorks, the makers of MATLAB, had placed a link for MATLAB for Dummies on their site. I’m always thrilled to receive that sort of recognition and I really appreciate the vendor doing it for me. MathWorks was especially helpful during the writing of the book and I thank everyone involved for their support.

Products such as MATLAB are becoming ever more important as people ask for consumer products with more and more capability, and also want smart devices with which to interact. Of course, MATLAB is used for all sorts of technical, scientific, and medical work. However, the place where most people are likely to see the effect of MATLAB is in the improved devices offered at the store, as part of appliances, and within vehicles.

I also see MATLAB as an important tool to help continue the fight to provide better accessibility aids. At some point in everyone’s life, accessibility aids become essential. If nothing else, getting older means having to use accessibility aids to continue being independent. The sooner we come up with truly effective accessibility aids, the better for everyone.

No matter how you use MATLAB, it’s a great tool for performing a wide range of tasks that require heavy duty math. Yes, you could possibly use it for simple math tasks too, but what would be the fun of that. Thanks again to the MathWorks folks for their support of my book. I really do appreciate it!

 

Central Clearing House for Book Contacts

A reader wrote to me the other day with an idea for creating a central place where any reader could contact any author with book-related questions. It would be a social media type idea along the lines of Facebook, Twitter, or LinkedIn, but with a book focus. The way this idea works is that a reader could leave a question on the central site and then the author would receive a notification through e-mail about the question. The question and its answer would remain public. That way, other readers with the same question would see the answer and not have to ask the author about it again.

This blog fulfills the idea that the reader has to a certain extent. When I receive e-mails from readers, I determine whether the question has enough interest to affect a large number of readers. When the question is better answered publicly, I put an answer up here, rather than answer it privately. Of course, there are times when a reader question needs and deserves a private answer. Using the blog approach does make it easier for me to handle some questions discretely, but nothing would keep me from including an e-mail address for that purpose in the book. The problem with this blog is that reader need to know to look here for answers. Even though I publish the URL for this blog in all of my books, readers still managed to miss it somehow and I get queries in e-mail about the availability of such a central knowledge store.

Wrox provides a centralized location for readers to exchange information of the sort that the reader mentioned, but it’s not as well known as the social media sites and I didn’t think to include the URL for it in my book (the publisher does include it as part of the Introduction). My experiences with Professional IronPython, Professional Windows 7 Development Guide, and C# Design and Development tell me that the concept is good, but reader participating is often poor. I actually get a lot more input on my blog.

I like the idea this reader has because it provides a social media type approach to a pressing need authors have to service reader requests for information. The problems are figuring out how to present the idea publicly, implement the idea in software, and then to make the site popular enough that it actually does what it’s supposed to do.

Of course, I’m always looking for input from you on making things work in a way that’s easy for you. What do you think about this concept? Is it possible to create such a site and have it become a success? Would you even frequent such a site? Let me know your thoughts on the matter at John@JohnMuellerBooks.com.

 

Where is Python 3?

A number of readers have been sending me e-mail about Beginning Programming with Python For Dummies and why I chose to use Python 3.3 instead of one of the Python 2.x versions. In general, I believe in using the most up-to-date version of a language product available because that’s the future of programming for that language. So, it wasn’t too surprising to me that I noted in a recent InfoWorld article that Fedora 22 will have Python 3 installed by default. I’ve started noticing that Python 3 will be the default with other products and in other environments too. Choosing Python 3.3 for this particular book looks like a really good choice because anyone reading it will be equipped to work with the latest version as it becomes adopted in a wider range of environments.

I do talk about standard Python in Professional IronPython. Of course, this book is targeted toward IronPython users, not Python users, but talking about standard Python and how you can use both libraries and utilities from it seemed like a good idea when I wrote the book. You need to remember that a solid version of Python 3 wasn’t available at the time I wrote this book and that Python 2 was really popular at the time. If there are readers of this book who would like me to create a series of posts that discuss using Python 3 libraries and tools with IronPython (assuming it’s possible), you need to let me know at John@JohnMuellerBooks.com. I try to accommodate reader needs whenever I can, as long as there is an interest in my doing so. At this point, I haven’t had a single reader request for such support, which is why I’m making a direct request for your input.

This leaves my current book project, Python for Data Science for Dummies. It turns out that the Data Science community is heavily involved with Python 2. My coauthor, Luca, and I have discussed the issue in depth and have decided to use Python 2 for this particular book. The limitation is that the libraries used for Data Science haven’t been moved to Python 3 completely and the entire Data Science community still uses Python 2 exclusively. If it later turns out that things change, I can certainly post some updates for the book here so that it remains as current as possible.

Python is an exception to the rule when it comes to languages. There are currently two viable versions of the language, so I can understand that some readers are completely confused. I encourage you to contact me with your thoughts, ideas, and concerns regarding the use of specific Python versions in my books. I want you to feel comfortable with the decisions that I made in putting the books together. More importantly, your input helps me decide on content for future books, articles, and blog posts. Unless I know what you need, it’s really hard to write good content, so please keep those e-mails coming!

 

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 John@JohnMuellerBooks.com if you have any questions.

 

Beta Readers Needed for Python for Data Science for Dummies

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 a 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 John@JohnMuellerBooks.com and will fill in all the details for you.

 

Table 3-1 in MATLAB for Dummies

A reader wrote a short while ago about a potential error in Table 3-1 on page 51 of MATLAB for Dummies. Errors do creep into books during the writing process and, despite my best efforts, no one spots them until after the book appears in print. In fact, I cover this very issue in Errors in Writing. If you ever find an error in your copy of a book, I’ll do my best to verify it and then post my findings there. The updated Table 3-1 should look like this:

Table 3-1: Relational Operators

Meaning Operator Example
Less than A < B A=2;
B=3;
A<B
ans = 1
Less than or equal to A <= B A=2;
B=3;
A<=B
ans = 1
Equal A == B A=2;
B=3;
A==B
ans = 0
Greater than or equal to A >= B A=2;
B=3;
A>=B
ans = 0
Greater than A > B A=2;
B=3;
A>B
ans = 0
Not equal A ~= B A=2;
B=3;
A~=B
ans = 1

 

The area of interest is the Example column. The updated information will demonstrate the use of MATLAB in figuring out the relationships between expressions. Please let me know if you find any other errors in this book by contacting me at John@JohnMuellerBooks.com.

 

Review of C# 5.0 Programmer’s Reference

A number of readers have asked me about the next book to get after reading one of my C# books, such as Start Here! Learn Microsoft Visual C# 2010 or C# Design and Development. Of course, it’s hard to recommend a next book unless you know where the reader is headed. After all, many of my books offer a starting point or deal with a specific area of interest. Based on the feedback I’ve received, in most cases, what the reader really wants is a compendium such as C# 5.0 Programmer’s Reference by Rod Stephens. This 918 page book is truly huge and contains a great deal of information within the pages between the covers.

The beginning of the book offers a different (and updated) perspective of what my books offer. It’s a starting point for your adventure in programming. Rod and I have complimentary writing styles, so if you didn’t quite pick up a concept in my book, Rod’s explanation will almost certainly make the difference for you. Most importantly, Rod’s book offers that latest updates for C# developers that my books can’t offer because they’ve been out for a while.

By the time you get to Part IV of the book, you’re moving away from the material that I offer into some more advanced programming topics. For example, I don’t really talk much about printing in my books. All of these topics are treated in greater depth than the material in my books—generally because I’m covering the topic at a level and in a manner that the less experienced developer will understand. So it’s essential not to skip these topics even if you’ve read about them before.

Part V is where this book really excels. I was especially taken with the chapter on parallel programming. Just about every machine on the planet provides multiple processors today, yet applications don’t use them nearly as often as they should, which results in wasted processing cycles and poor performance. Rod also provides an outstanding discussion of cryptography. If you’ve read the trade press recently, you know that securing data is becoming harder and harder, yet more important all the time.

Every chapter ends with a set of exercises. This makes the book invaluable in the classroom. An instructor can assign the book a bit at a time and have exercises ready to check the student’s comprehension of the material. Appendix A contains the answers for the exercises, so the answers are easy to check. It could be possible to create a student version of the book that lacks Appendix A so the instructor can check the student’s answers without worry about peeking.

What makes this book a compendium, a reference book, is the appendices in the back of the book. There is an appendix for nearly everything you can imagine. Do you need a quick refresher on data types? Well, you can find it in Appendix B. Appendix J will give you the quick scoop about Language INtegrated Query (LINQ). Look in Appendix T when you need to know more about regular expressions. The point is that the appendices make it easy to perform quick lookups when you’re in a hurry.

The bottom line is that if you need a book that will do more than just sit on your shelf, this is the one to get. You could easily use this book to get a great refresher on C# usage, an update on the new features provided by C# 5.0, a great classroom experience, and that reference book that you need later when you need to rediscover something under pressure.

 

Getting Your MATLAB for Dummies Extras

The process of discovering how to use MATLAB begins when you get your copy of MATLAB for Dummies. However, it only starts there. Like many of my other books, you can also find online content for MATLAB for Dummies in these forms:

I always want to hear your questions about my books. Be sure to write me about them at John@JohnMuellerBooks.com. In the meantime, I hope you enjoy your MATLAB for Dummies reading experience. Thank you for your continued support.