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:
- Online Video/Course
- “Teachable Moment”
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:
- Working Effectively With Legacy Code
- The Pragmatic Programmer: From Journeyman to Master
- Clean Code: A Handbook of Agile Software Craftsmanship
- 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.
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.
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
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
Happy 2017! Here are some links for your enjoyment.Read More
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” withRead More
git blameis 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.
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
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
.gitignorefile 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
It’s hard to believe it’s December already. :-)Read More
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.Read More
subscribe via RSS