• Let's Invest in Ourselves For 2017

    This week I started the evaluations for the programmers that I manage. As part of that process, we have them do Professional Development goals that they need to complete every quarter. I believe that everyone should be doing some type of learning about their craft. Not only does it improve your current work place but it opens up new opportunities for future employment. Our Professional Development comprises of three pieces:

    1. Book
    2. Online Video/Course
    3. “Teachable Moment”

    1. Book

    It seems a little crazy to have people reading books in the age of the Internet where tutorials for every possible technology are online. But books provide a valuable service. They form a collection of all the information the author thinks you need about a topic. They allow you to read them through at your leisure even in places where reading from a computer would be looked down on (take off/landing) and it’s easier on my eyes. The idea is to pick a book you’ve never read on a topic you’re interested in or might help our development process and/or business.

    Generally, everyone reads their own book on their own time line and then submits a few notes about what they learned (this keeps people honest). This quarter we’re having everyone read the same book and then we’re discussing it in a Google Group (that way when we add new employees they can go through the same book and see what other people said).

    2. Online Video/Course

    Again, the idea here is to pick a topic that is of interest to the person and give a little report about what they’ve learned. I’m looking for more of a broad overview of a technology so they can know it exists and what it’s good for (FLOSS Weekly, The Hanselminutes Podcast, and Three Devs and a Maybe are a good source of broad technology exposure).

    3. “Teachable Moment”

    In on the job training there’s this idea of “See One, Do One, Teach One”. The though is that you see someone do a task, then you do it, and finally you teach someone else how to do the task. The hope is that by the time you’ve reached “Teach One” you understand what’s going on enough to answer any questions.

    I wanted to take this concept into our group as “I ran into this problem”, “I fixed it”, and “here’s how I did it”. I feel like a lot of the time we fix problems on our own but don’t related that information back to our group so everyone learns. This puts an incentive to bring that knowledge back to the group.

    My Personal Goals

    To prove I’m “willing to do anything I ask of people”, I’m going to be making the same goals here. Every quarter I’ll discuss what I learned in a book, what I learned in an online course, and I would argue most of my blog posts are “teachable moments” so as long as I keep creating them I’ll count that. I’ll announce my book picks in advance (on Twitter and Facebook so you can read them too if you’re interested.

    The books I’ve picked are:

    1. Working Effectively With Legacy Code
    2. The Pragmatic Programmer: From Journeyman to Master
    3. Clean Code: A Handbook of Agile Software Craftsmanship
    4. Refactoring: Improving the Design of Existing Code

    I’m still on the lookout for videos/courses but I have a list of them saved in my bookmarks that I can start looking through. I’ll be posting the parts I found interesting on this site for everyone to enjoy but feel free to read them along with me.

  • Social Media

    One of my goals this year was to create a social footprint for This Programming Thing. I’ve started out with Twitter and Facebook. The plan is to slowly roll out changes and see how they affect my readership but please follow us for updates.

    Initially, any of the items that will get posted to my link posts will also be sent out via Twitter and Facebook as I find them. We’ll also create the monthly roundup of links with a couple other items included. We’ll also include links to all our posts as they’re published.

    I also created a Medium account to cross post there to see how that works.

  • Maximizing Your Efficiency in Sublime Text - Goto Anything

    One of the best features in Sublime Text is the way it makes it simple to open file and find specific pieces of code inside your project. In this article we’ll discuss how to use some of the Goto menu items.

    Read More
  • TPT 2017

    As I normally try to do this time of year it’s time take a little retrospective on what’s been done over the last year and what I want to accomplish in the coming year.

    Read More
  • Link Post and Podcast Roundup: January 2017 Edition

    Link Post Logo

    Happy 2017! Here are some links for your enjoyment.

    Read More
  • Git Blame Previous Versions of a File

    One of the downsides to working on a project for a long time is that it’s hard to remember why changes get made. If you have a good comment policy the comments can be helpful to determining why something is the way it’s done (I recommend at the very least you include a ticket number and a helpful description of the change) but the “problem” with git blame is that “hides” previous version. While a line might have been changed yesterday it’s reason for existing might be hidden from you directly. This article will explain how to view the previous commits for a line so you can determine why it was added/change/whatever.

    Read More
  • Select Distinct With Conditions in MySQL

    The other day I ran into an interesting problem with an SQL query, I needed to create the count() of all items and the count() of a specific set of items. Normally, I would use subqueries but there was so much data that the subqueries took a minute and that was not acceptable to our client (I actually wrote the query originally with a small amount of data and after 4 years the performance of it was horrible. :-)).

    Read on to see how to fix this.

    Read More
  • Ignoring File Changes in a File Using GIT

    The other day I ran into an interesting issue with a Git repository. We needed to have a file included in a repo so it would would get created but we didn’t want to track any of the changes (in this case it was a log file from a legacy application). Normally, if we want to ignore a file inside a repo we add it to a .gitignore file but that wouldn’t work in this case because that would completely ignore the file or track the changes after we’ve added it.

    Git has a quick feature that takes the file and ignores any change to it:

    git update-index --assume-unchanged path/to/file.txt
  • Link Post and Podcast Roundup: December 2016 Edition

    It’s hard to believe it’s December already. :-)

    Read More
  • Maximizing Your Efficiency in Sublime Text - EditorConfig

    One of the things you’ll find annoying if you’re trying to adhere to the PSR standards is that it’s hard to notice things like extra spaces at the end of lines and that you don’t have a blank line at the end of your file. You can run something like phpcbf to fix the file before you commit (and that’s a perfect option which will discuss in another article) but it’s nice to have sublime clean up whenever possible before you save.

    The EditorConfig file is a file format that allows you to define how the editor should save files of specific types. Sublime Text has support through a plug-in named conveniently enough EditorConfig.

    Read More

subscribe via RSS