Month: February 2016

Checklists and Software Development

In 2011, Atul Gawande published The Checklist Manifesto: How to Get Things Right. I first became aware of it when I had the opportunity to hear him speak during his book tour for his latest book, Being Mortal, at the end of 2014, but only got around to reading it this week. The book is about managing complexity in the medical field, but can also be applied to software development. The central thesis of the book is that modern knowledge has made the world too complex for humans to handle unaided. Take any complex profession – medicine, architecture, etc...

Read More

Paying to Learn

Earlier this week, I was reading a friend’s blog post in which he argued that it’s silly to ever pay for education, given the vast number of free resources available online. I disagreed. While I think it’s great that there are so many free resources – in fact, I’m trying to make this blog one of them – and I’m no fan of spending money when you don’t need to, I also know that sometimes you get what you pay for. Sometimes the free resources really are the best. When I’m stuck with a technical problem, I search online...

Read More

Error! Error!

One of my least favorite errors is ORA-01775: looping chain of synonyms. This often means that you’ve referred to something that can’t be found for one reason or another – a table doesn’t exist, a table is owned by a different user, there actually is a synonym loop… The nice thing about Oracle error messages is they all come with descriptions to tell you what’s going on and numbers so you can look up more information. The bad thing is that the messages aren’t necessarily all that helpful, and the error may be too general to let you know...

Read More

Preparing for Microsoft exams: how and why

The value of certification is a constant hot topic for many people; a search for certifications on stack overflow alone returns over 27,000 results, and adding the exact phrase “worth it” still returns almost 800. I’ve never been responsible for hiring people or been asked about certifications, so I have absolutely no comment to make about whether they’re helpful for finding a job. Where I find certifications helpful is in setting a deadline for myself. Since 2011, I occasionally needed to write SQL code and wanted to learn more about SQL, but I never did because it was never a priority. A few years ago, I signed up to take exam 70-461: Querying Microsoft SQL Server 2012; because I was paying for it (my company will reimburse exams only if you pass), I finally had the incentive I needed to sit down and learn the material. I never bothered with the other exams in the certificate, because the certificate wasn’t what was important to me; what I needed was to learn the material that was covered in that first exam. So that’s my primary motivation for looking at certifications: as a way to encourage myself to study. After five years as a professional programmer, I feel like I still have a ton to learn, so I’m in favor of anything that helps me to focus. Right now I’m looking...

Read More

Clarity in programming and the conditional operator

The interesting thing about the conditional operator (?:) is that hardly anybody knows what it’s called (it’s often just referred to as the ternary operator), but everyone seems to have an opinion on whether it should be used. The conditional operator is shorthand for an if/else statement; rather than writing if (condition) {expression 1} else {expression 2} we can just write condition ? expression 1 : expression 2 I’ve had one code reviewer who was extremely against ever using this, to the point where I replaced the one I was using with an if/else statement (at the expense of...

Read More