Books I'm Reading (or About to Read)

Since leaving the classroom and returning to the world of software development, I've tried to spend at least an hour a day reading about the changes that have taken place in technology since 2010. In July I started to dedicate my in-bed-before-sleep time to this task, and it's resulted in a lot of books being read and a bunch of new skills being acquired or refined. While it's impossible for any one person to know everything about a given subject, it should not be impossible for one person to know a healthy amount about a number of different subjects. This has certainly been the case with me while I learn more about data modelling, database design, and data warehousing. In fact, looking back at the technical books I've read in the last six months, it's easy to see that the vast majority are all related to databases in one way or another, and the four I have dedicated for January, February, and March are all on SQL Server.

I think I may have a little bit of a database fetish.

SQL Server Books

Last week I finished Stacia Varga's Developing SQL Data Models exam reference and I'm currently going through Victor Isakov's Administering a SQL Database Infrastructure reference in preparation for an upcoming Microsoft certification exam. On deck is Jose Chinchilla's Implementing a SQL Data Warehouse as data warehousing is a topic that has recently piqued my interest. Randolph's SQL Server 2017 Administration Inside Out is expected to be released by the end of next month, and I'll likely set aside some additional time to ingest the wisdom contained in the book. There's just so much to learn and explore!

A few people have asked why I read so much. They want to know specifically why I read so many technical books. When I think about it, though, the answer is not so cut and dry. Sure, I'd like to learn more about these tools so that I can make better use of the technology, but this isn't the only reason. Buried deep in the curiosity is the desire to discover what I do not yet know. As Bart Simpson so eloquently said to Mrs. Lovejoy all those years ago, "what you don't know could fill a warehouse."

It's true. We generally do not know what we do not know, and it's because of this ignorance that incomplete or inefficient decisions can be made to solve problems that other, smarter people may have resolved years before. Not a day goes by where I don't learn something new about the tools I use, and I hope this does not change anytime soon.

There's a certain excitement that comes from reading about an interesting feature or function, then trying it out and thinking about how it might be used to solve a real problem elsewhere. Back in November, I said that 10C would switch from MySQL to SQL Server just because I wanted to gain some experience with the platform on Linux. The conversion was finished mid-December, and nobody has reported any issues with the service since the switch. It was, by all accounts, one of the smoothest migrations of 10C I've ever performed. Learning more about SQL Server will (hopefully) allow me to do even more with the database going forward. More than this, I'd like to better understand how complex business problems could be solved with better use of this powerful tool.

While 10C is a personal project that I take very seriously and put a lot of care into, there is simply not enough "hard" work for me to do with the database. Businesses, however, ask a lot of tough questions. Depending on the quality of those questions, businesses may ask the question again and again in the form of reports. Being able to build the SQL queries to quickly and accurately return the answers is certainly a worthy place to use the skills I'm working so hard to acquire.

Helping Others or Over-Sharing?

Time Flies …The last few months have flown by fast enough to cause whiplash, and not a day goes by where I don't use a skill and think about writing a post about it to save others from the hassle of digging through Google to find the answers they need. A lot of the things I've learned over time have been due to a very specific need, while others have been out of nothing more than curiosity which proved to be useful later down the road. However, one recurring thought has run through my head every time I go to write a quick post talking about some solution to a problem: how much information is too much information?

I'm lucky enough to be working with some enjoyable tools and technologies for my employer; Amazon's EC2 and S3 services, CentOS, Apache, PHP, MySQL, as well as a host of other tools and resources millions of people work with every day.  Many of these items I've worked with to some extent over the last decade while others, such as EC2, are relatively new to me.  Writing tips on how to set up auto-scaling or install the Amazon command-line tools on Windows 7 would undoubtedly save people some time when searching for a nice how-to, and it would act as a personal reference should I forget a step in the months or years that pass.  But would sharing this information be similar to sharing company information?  What I mean is: can I effectively share skills that I learn on company time with the world?

The first answer that pops into my head is quite permissive: I can share so long as I am not putting my employer or its customers at a disadvantage.  Considering how many thousands of customers Amazon has using their EC2 cloud computing solutions, I shouldn't be putting my employer at risk at all.  Naturally, I would never share customer information with the world at large. Heck, I refuse to even talk about customers from my previous employer.  References to the people or companies involved are always kept very vague as to protect both the customer, as well as any legal ramifications that might happen should I splurge on details.

On the flip side, however, is the prohibitive answer: Any skills learned on company time remains property of the company until no longer employed by the company.  Being a super-conservative answer, this would undoubtedly be the easiest solution to go with.  Why risk rocking the boat when it floats just fine already?

All in all, I believe that sharing skills with the online community is fine, so long as trade secrets, company information, and customer data is not shared.  After all, would sites like StackOverflow be as amazing as they are if we weren't allowed to share information?

What's your take on this?  Do you share skills you've learned at work with the online community?  Is it something that shouldn't be done? I'd love to hear your opinions.