The Complete Software Developer’s Career Guide

The Complete Software Developer’s Career Guide by John Sonmez
$19.79 paper / $9.99 Kindle at Amazon

My first exposure to John Sonmez came when I downloaded his audiobook Soft Skills. This was the only book I found at Audible that seemed relevant to my job as a developer, and I enjoyed it enough that I bought a print copy (so I could follow the references more easily) and started reading John’s blog and listening to his podcast. (I no longer read the blog, because it has popups, but I still enjoy the podcast). So when I was offered an advance review copy of John’s new book, The Complete Software Developer’s Career Guide, I was happy to take a look. (Spoiler alert: I ended up also purchasing the Kindle version after it came out).

This massive (almost 800 pages) tome is broken down into five sections: getting started as a software developer, getting a job, what you need to know about software development, working as a developer, and advancing your career. Most of the material in the book is also available in John’s many other products, but it’s nice to have it collected in one place and organized. So far I’ve focused on the final section, which is most relevant to my current career, but I’ve also jumped around and read bits here and there in the book. The writing is consistently readable and even entertaining, and what John has to say largely matches up with my own experiences. Now that I have the Kindle version I do plan to go back and read through the sections that are aimed more at less experienced developers, as I’d be quite surprised if I can’t pick up a thing or two.

Overall, this is a wide book rather than a deep one; it won’t make you an expert on any one subject, but it probably covers just about every area you can think of related to having a career as a software developer. I definitely would recommend it to someone trying to figure out how to get started, and experienced developers are likely to enjoy it as well. And while it may be long, it’s also an easy read. Given the amount of content here, I would actually have expected a higher price tag, and it has a lot of links to even more content if you want to go more in-depth in a particular area.

Five stars.


Murach’s C# 2015

Murach’s C# 2015 by Anne Boehm and Joel Murach
$47.70 at Amazon

I’ve been doing C# development professionally for a couple of years now, but haven’t had the opportunity to check out the new features in the latest version, nor have I had the need to use some of the more advanced features of the language.

If you’ve read a Murach book, or a review of same, then you’re familiar with the format: code on the right pages, explanations on the left. My habit is to read everything on topics that I don’t know much or anything about, and just skim the right pages for topics that I’m more familiar with. I like this format because it makes it easier to find areas that I need to read without going through everything.

For completeness, I’ll describe the entire book below; however, since I’m already familiar with C#, I skipped reading the first few sections and went straight to the advanced topics.

Section one is an introduction to Visual Studio; if you haven’t written code in Visual Studio before, this section will take you through setting up and using the program. Section two covers the essentials: numbers and strings, control structures, methods, event handlers, exceptions, arrays, dates, and debugging. Section three is about object-oriented programming and covers classes, indexers, inheritance, interfaces, generics, documentation, etc. I only scanned these sections, but they look like a good introduction to programming in general and C# in particular.

Section four covers database programming, which I was interested in. I currently work with databases but mostly use a proprietary database access method for accessing a hierarchical database, so I’m not very familiar with the built-in database methods. This section starts by introducing client/server systems and relational databases, then covers working with data sources, working with bound controls and parameterized queries, and using ADO.NET to write your own data access code. Section five continues talking about data, covering files and data streams, XML, LINQ, and the Entity framework. Finally, section six covers methods to enhance the user interface and deploying an application.

My only complaint with the book is not actually a problem with the book itself: I would have liked to have seen the new features of C# 6 called out, but since the book is aimed more at people who aren’t familiar with C# I can’t really knock it for not discussing changes from previous versions. I actually learned C# from a previous edition of this book five years ago, and still have no problems recommending it as a great introductory text.

Disclosure: I received a free review copy of this book.


Murach’s JavaScript, 2nd Edition

Murach’s JavaScript, 2nd Edition by Mary Delamater
$54.50 at Amazon

I’ve been doing web development full time for a couple of years now, but I still haven’t gotten very in-depth with JavaScript, for two reasons: most of my coding is done in C#, and the JavaScript I do write uses a proprietary framework. I’ve wanted to learn more of it, though, so I’ve kept an eye out for a good book that actually covers JavaScript rather than jumping straight to jQuery.

For those not familiar with Murach books, they all follow the same format, so once you’ve read one you’ll know whether they work for you or not. The books use a “paired pages” format with syntax and examples on the right, explanation on the left. This helps make the books useful to people of different experience levels: you can scan the pages on the right until you see something you need to know more about, and then read the left page for that topic.

I found the book to be well-edited and easy to follow. As expected, it starts with the basics and runs through advanced topics like closures, finishing with a short chapter on when and how to use jQuery (although I’m not sure I’d agree with the assertion that you should use jQuery whenever you can – why add the overhead of including a library just to save a few lines of coding?)

Section one of the book covers beginning JavaScript, including objects, functions, events, forms, and controls. Section two covers intermediate JavaScript, including web storage and regular expressions. Section three covers advanced skills, including timers, recursion, namespaces, and JSON (JavaScript Object Notation). The book is on client-side JavaScript and focuses on using straight JavaScript rather than the various libraries, which is what I was after. There are definitely some missing topics, but I’m assuming they’re covered in Murach’s companion books. Overall, if you want to learn vanilla JavaScript (probably a good idea) rather than jumping straight into a framework, this book is a good choice.

Disclosure: I received a free review copy of this book.


How Software Works

How Software Works: The Magic Behind Encryption, CGI, Search Engines, and Other Everyday Technologies by V. Anton Spraul
$19.72 at Amazon

Have you ever wondered how Amazon keeps your credit card information safe from hackers, or how the minions were actually created? And how DOES Google usually manage to find what you’re looking for over the entire web?

This book isn’t about software in general, despite the title – it’s about nine specific pieces of technology. It can be difficult for people like myself who have a technical background to judge how readable a book is to non-technical people, but I believe How Software Works delivers. The author assumes an intelligent reader, but one without a technical background, and gets into enough detail in each section to provide an accurate idea of how the technology works without getting bogged down. I found it to be very readable, and I thought the author did a good job of explaining sometimes complex concepts.

I have in the past taken graduate courses on some of the topics this book covers, such as cryptography and computer graphics, and I found those sections to be accurate to the best of my recollection. I think this would make an excellent text for a freshman topics course on computer science.

Disclosure: I received a free review copy of this book.


The Politics of Crazy

The Politics of Crazy by Chris Ladd
$7 on Amazon Kindle or free with Kindle Unlimited

I don’t normally read political books from republicans, but I happened to run across Chris’ blog recently and enjoyed his writing, so I figured I’d give the book a try. I wasn’t disappointed; the book is well-reasoned and Chris offers several insights I hadn’t previously considered.

The first point that really grabbed me was the idea that teachers are the reason democrats are more interested in actually governing. Both major parties have a number of special interest groups that can be counted on for support, but the democrat’s supporters include teachers and other government workers – groups that have a vested interest in a government that functions well. The republicans don’t have equivalent groups, and many of their supporters would actually prefer that government not work well; thus, republicans have much less incentive to do a good job governing.

Much of the book is Chris’ ideas for policy. As an old-style conservative, he advocates for a small, yet strong government that takes on fewer tasks but does those tasks well. While I certainly don’t agree with him on everything, I found many of his points convincing. The book ends with an argument that politicians have become less accountable due to reduced participation in public (not necessarily political) groups, and a call for more community participation outside of voting – be it the PTA, a neighborhood meetup, or something explicitly political – with the goal of reducing extremism by making politicians again geek approval from community-minded interests.

Overall, a good read that I certainly recommend.


The Pizza Bible

The Pizza Bible by Tony Gemignani
$17.54 at Amazon ($12.79 Kindle)

Although I’ve had a pizza stone for years, I’d never actually made a pizza. The whole process just seemed a bit more involved than I was ready for.

This book does a great job of telling you exactly what to do; with no pizza-making experience whatsoever I had no difficulty in following along and making my first pizzas. I did end up making some substitutions (I used the bread flour I had on hand rather than the specific flour types the author recommends, and just used mozzarella cheese instead of multiple types) but the pizzas still turned out great. I also used just one pizza stone, rather than the
book cover two he suggests. I did end up having to buy a few newitems – all the measurements are given in grams, and a digital scale (which this book pushed me into finally buying) and palm scale (that will register down to 0.01 grams) are both helpful if you’re trying to be exact. Aside from the scales, you’ll need at least one pizza stone, a pizza peel, and a stand mixer; any other specialty equipment you lack can be worked around (but I think the straight-edged dough cutter is going to be very worth it). More troublesome was the list of ingredients – semolina and diastatic malt weren’t to be found at my usual grocery store, and I had to order the malt off Amazon – but the basic ingredients weren’t too outlandish or expensive. Just be aware that you may have to do a little bit of hunting around before you can get started.

After an introduction to the tools and ingredients, the first chapter teaches you two make two pizzas over three days. The rest of the book is filled with recipes for various styles of pizza, plus a few other things you can do with pizza dough (such as calzones). It’s a very personal book, with frequent asides from the author about why he does such and such and his experiences at pizza competitions around the world.

My first pizzas weren’t the best I’ve ever had (and certainly weren’t perfect circles!), but they were pretty good. I expect to get a fair bit of use out of this book, and have no trouble recommending it.

Disclosure: I received a free review copy of this book through the Blogging for Books program.


The Book of CSS3

The Book of CSS3: A Developer’s Guide to the Future of Web Design, 2nd Edition by Peter Gasston
$24.34 at Amazon ($15.41 Kindle)

One of the interesting things about CSS3 is that it’s not a fixed standard; new options are being constantly added. It would even be more accurate to say that there is no CSS3; instead, we have a set of separate modules that are independently updated, giving us a continuously evolving CSS standard. However, CSS3 is a convenient shorthand to mean “those features added after CSS2” (plus it sounds good in marketing materials) so it will no doubt continue to be used for the next few years.

The Book of CSS3 actually starts out by explaining this, along with a little more detail about how the W3C recommendation process works, so that the reader understands why the book covers what it does and in the order it does. The current usability of the various CSS modules varies widely; some have been implemented across all major browsers for half a decade, while others are still completely experimental. The book starts with features that are universally implemented (such as media queries and selectors) and ends with an overview of features not yet available without vendor prefixes (such as regions and variables). There’s also an appendix showing the current implementation status of each module (although this will, of course, change rapidly) and another of online resources.

If you don’t know CSS yet, this is not the book for you; there’s no explanation of the difference between IDs and classes or how to include a CSS file in an HTML document. Instead, you have an explanation of what the new features are and how to use them. As someone with a reasonable background in CSS, I found the book to be extremely readable and expect it will make great reference material.

The content of this edition is very similar to the previous edition, which I also own. The chapter on Template Layouts was replaced with one on Grid Layouts (Grids being listed as a not-yet-implemented module in the first edition). Two new chapters have been added, one on Values and Sizing and one on Blend Modes, Filter Effects, and Masking. Many of these are not yet available in Internet Explorer, but can be expected to be added in the future.

Overall, a very solid book, one I’d have no problem recommending for a web developer looking to make the move to CSS3.

Disclosure: I received a free review copy of this book.


Becoming a Better Programmer

Becoming a Better Programmer: A Handbook for People Who Care About Code by Pete Goodliffe
$28.51 at Amazon ($18.35 Kindle)

More than in most professions, being a programmer means constantly learning: new programming languages, new techniques, new software. As with anything, we also get better over time with experience. But how can we actively work to improve our programming skills?

In Becoming a Better Programmer, Pete Goodliffe attempts to answer that question. The book is divided into a number of short chapters, written so that they can be read in any order, with references to related chapters at the end of each one. Each chapter briefly covers one topic, such as the importance of code reuse or version control, writing less code and looking for bugs, error handling, etc. The writing is entertaining – I found myself laughing more than once – and comics about programming are scattered throughout.

For myself, the book wasn’t particularly useful, because everything it covers is stuff that I and my team are already doing, but I think it could be a very helpful resource for novice programmers or newer software companies that haven’t yet figured out best practices in coding. This would make an excellent gift for either a new programmer or someone building a new team of programmers. And as I mentioned, it’s an entertaining read.

Disclosure: I received a free review copy of this book.


this & Object Prototypes

You Don’t Know JavaScript: this & Object Prototypes by Kyle Simpson
$19.62 at Amazon ($12.49 Kindle)

If there’s one thing that’s particularly frustrating in JavaScript, it’s this. this has an irritating tendency to suddenly refer to something entirely different than you were expecting, at which point everything breaks.

this is confusing because it’s runtime-bound based on the context of the function’s invocation: how it was called, where it was called from, etc. After reading this book, I’m still not always sure how to ensure that this refers to the correct context, but at least now I understand more about WHY it’s being irritating. Still, more space could have been devoted about why this works the way it does, rather than simply giving the list of rules that JavaScript follows to determine the context.

While this was the reason I got this book, it takes up only the first two chapters; the rest is devoted to objects. Objects in JavaScript can also behave in unexpected ways because JavaScript doesn’t really have classes, and inheritance doesn’t work as you would expect it to in an object-oriented language.

I found myself rereading material in this book as I worked through it, but I think that’s a function of the language rather than the writing; JavaScript has just never clicked for me. I deducted a star from my rating because the book didn’t really tell me what I wanted to know about this, seeming to give a quick overview of the rules without much of the logic behind them and then jumping into objects, but otherwise I’d call it a pretty good book.

Disclosure: I received a free review copy of this book.


My Perfect Pantry

My Perfect Pantry by Geoffrey Zakarian
$22.68 at Amazon ($12.79 Kindle)

CoverIt’s typical for a cookbook to be arranged according to the type of food (breads, dinners, desserts) or the main ingredient (pork, beef, chicken). What I’ve never seen before is a cookbook arranged around pantry ingredients: almonds, beans, raisins!

My Perfect Pantry starts off with a description of foundational items – allspice, cayenne pepper, etc – before moving on to the recipes. For each ingredient, there is a page describing that item, followed by three dishes, all with pictures. Most recipes are just a few steps.

As a novice cook (I’ve been known to moan that I don’t have any food, only things to make food), I’m still in the process of discovering what items need to be in my pantry and how to use them. Generally I’ll flip through a cookbook looking at pictures to see what looks tasty; this one is particularly visual, which makes that easier, and I found a number of recipes that I want to try. No instruction on cooking techniques is given, which is fine – that can be easily found elsewhere – but no particularly unusual equipment is called for, and in reading through the entire book I saw very few recipes that use ingredients I’m not familiar with.

I can tell that this cookbook is going to be very easy to use, and for that I rate it five stars.

Disclosure: I received a free review copy through Blogging for Books.