Category Archives: Career

Fun stuff I do while earning my keep.

Learn Python the Hard (Fun) Way

The course is available online and you can try it for free!

A couple of weeks ago I purchased a book called “Learn Python the Hard Way” (LPTHW). The book sat by my bedside under a stack of other reads until I rediscovered it over the weekend. I bought the book because of the unusual way it marketed itself. Learning something the hard way struck a chord with me because taking the easy way has so seldomly worked out for me. I had dabbled with Python throughout the years and even purchased a neglected book or two on the topic. One of my first professional experiences with Python was when I was tasked with fixing an automated process that was scripted in Python.  Googling here and there I was able to patch up the script and get things running again, but I didn’t have the chance to really solidify my knowledge. I was amazed by how much I could do with so little code, but I found debugging and deciphering the code challenging. Since then I transitioned to other jobs, and worked with teams who preferred a different standard for scripting (For reasons I will never understand, Perl is a common favorite). Python felt accessible and yet mysterious and powerful to me. I wanted to learn more and see what other cool things I could do. Perhaps it reminded me of my early programming experiences.

When I was a kid, I used to go to my school library and read the RUN magazine. I would scour the pages to catch up on the latest techno gadgets and games that were on the horizon, but I also loved taking home code to try on my Commodore 64. I would meticulously transcribe the BASIC and assembly code from the magazine to my notebook. I couldn’t wait to get home to try out the new programs and games on my C-64. Often my programs would not run at all and I had to figure out what was causing the crash. This was a terrific training ground for teaching me how to write and troubleshoot code, skills I use to this day at work. Fast-forward to today where all of the information you could possibly need is at your whim and you might think kids have it made. Learning should be easier than ever, but people still need to go through the process and learn a wide array of skills. That takes time, effort, patience and a lot of hard work. You can’t skim over it. You can’t Google your way through it. You just have to do it.

Now, if you review Learning Python the Hard Way, you might think that the text is really just for beginners, but I believe anyone can benefit from the instructional approach to learning. I am going to work my way through each and every chapter in the book, not skipping a page, skimming over an exercise or cutting and pasting so much as a line of code. I am hoping to become a better programmer in the process, but also, I would like to teach my children how to program in Python using the same textbook. I think LPTHW offers a terrific start for anyone making their first steps into the wonderful world of software development. The book even comes with instructional videos to help you through the rough sections. Learning the Hard Way might be a tough sell for kids, but I hope they will gain an appreciation for programming but also learn important life skills like: self discipline, analytical thinking and problem-solving.

Get It Done!

Do you often feel like you have a mountain of things to do, but just not enough time to get it all done? I know I do. It can be overwhelming especially if you don’t have a good strategy for getting the important stuff done and that is the focus today’s post. I want to share with you the things I do to stay on top and perhaps you can share with me some of your strategies as well.

Now, I’d love to tell you that I am a super productive sort. You know, the kind of person who is perpetually on task, getting it all done with style and apparent ease. But I was clearly not cut from that cloth and besides, the thought of being super-organized makes me anxious. Seriously, who wants their entire day ruled by a never-ending series of To-Do items? For me, there has to be a balance between a life of human doings and of human beings. So my goal is to use strategies that make it easier to manage the conveyor belt of tasks, while providing me the extra time and mental relief of “being on top of it”.

Some Background

Dr. Who's TARDIS

Dr. Who’s TARDIS

“Where does the time go?” may be a cliche statement, but rings true for me. When I am at the computer time slips away like I am inside Dr. Who’s TARDIS. One moment I am easing into my New Year’s Resolutions, the next it’s February and I still have no concrete goals for 2014. Big picture aside, I find it helpful to start with my workflow for taking care of the immediate and important tasks.

By the way, being in front of a computer doesn’t mean you are instantly productive. If you are like me, you can have 50 browser sessions open at a time (more on avoiding this later), along with a slew of apps that have popped up throughout the day. All of those distractions add up and could be making it harder for you to get your work done. I am a computer programmer by profession, so it is especially important that I find a way to corral in all of those distractions. I have compiled a few tools in my toolbox that have helped me “Get It Done”.

My Top 7 Favourite Tools and Techniques for “Getting It Done”

#1. The List

To-Do List

I keep a list of important things that need to be done, front-and-center in my workspace. Composing the list is a matter of personal choice. You could manage your To-Do list using your favourite iPhone app, or on a text editor on your desktop, or even something as simple as scrawling tasks on post-it notes that are placed around your monitor. It’s up to you, but having a To-Do list keeps a constant reminder of the important stuff right there in your face. It’s like what advertisers do all the time on TV or on websites. They know how important your attention is for getting you to take action. From my experience something almost magical happens when you keep a list visible…things just seem to get done. On the other hand, if you keep the list in your head then stuff just seems to slide.

Another benefit of a list is that it feels great crossing off the completed items, knowing that you are always working on the next important task, so you naturally become more productive. At the end of the day there is a record of where all that time went, making it easy to update project managers on your progress.

#2. Declutter Your Workspace

clutterKeep you workspace clean and clutter free. Piles of papers or a myriad of windows creates a mental noise that can slow your progress or make it more challenging to complete a task. So, take a minute at the end of each day to do a little tidying up around your workstation. Virtual messes can affect you too. Don’t be afraid to close out browser tabs. Only keep programs open that are related to getting the next task complete. If need be, you can always locate previous sessions in your browser history. If you find a juicy StackOverFlow article that deserves further investigation, save it to Safari’s Reading List or create a temporary bookmark.

#3. Employ the Pomodoro Technique!


What is this Pomodoro Technique you ask? Without getting into the particulars, the Pomodoro Technique basically is a time management technique that can make you more productive by having you  focus without distraction on a single activity for a brief period of time (25 minutes). You use a kitchen timer (you can even buy a tomato timer if you want) to track your progress for each session. When the timer starts ticking, you start working with full concentration on the pre-decided task. If someone or something interrupts you during a pomodoro, you must reset the timer and begin again. It takes practice and you have to work at protecting those 25 minutes sessions from distractions. Once you have completed a pomodoro, you can take a 5 minute break to check your email or just plain relax. Repeat the process a couple more times and then take a longer break. Typically, you will not get more than 6 pomodoros out of your day.

For a more detailed explanation of the Pomodoro Technique, check out the official website:

#4. Go for a Walk


Unless you work in one of those operations where you are tied to your desk, you should aim to go for a 5 minute walk about every 30-45 minutes. If you practice the Pomodoro Technique, you could go for a walk after you complete one pomodoro. If you are in the zone, you could skip the walk until two pomodoros are complete and then go for a 10 minute walk. Sitting down at your desk for prolonged periods is not healthy. Some people like standing workstations, but I have not personally found this set up works for me. I would prefer frequent walkabouts. Often I step outside my building to get fresh air to clear my mind and my lungs. Why should smokers be the only ones to enjoy this reprieve?

#5. Drink More Water

glass-of-waterA few years ago my wife started suggesting that I drink more water throughout the day. The advice sounded great, like eat less junk food or exercise more but I didn’t think it would really change how I felt. I drank a lot coffee (still do) and thought I was plenty hydrated. Boy, was I wrong. Replacing a coffee refill with a tumbler of water can do wonders for how you feel AND THINK. For tech workers, this is huge. Your brain works so much better when it is properly hydrated, so drink up! “Experts” recommend 8 glasses a day. Give it a try. You’ll feel and think better.

#6. Tips for Managing Stress


Part of being more productive is handling stress well. Although some people seem to navigate stressful situations easily, dealing with stress isn’t an innate talent. Coping is a learned skill. Learn to recognize when you are feeling stressed. If you feel like you are suddenly going to lose your cool, it’s OK to say you need to step away for a moment to gather your thoughts. It’s amazing how stepping away from a situation for just 30 seconds can totally change how you feel. If you can’t leave, stop talking, pause and take slow, deep breaths. You can’t take back words spoken in the heat of the moment, and people won’t fault you for taking a moment of silence while you collect your thoughts. One more thing on the topic of stress management- keep a sense of humour about all things. Being serious all of the time is exhausting for you and everyone around you. Try to find the SNL scene in your everyday life. I can’t tell you how many times I mentally turn a boring boardroom into an SNL comedy sketch.

#7. Keep a Positive Mindset

Stuart Smalley

Don’t listen to an internal dialogue of self-doubt. Don’t waste your mental energy thinking about what negative ideas others might have about you. Take a tip from Stuart SmalleyYou’re Good Enough, You’re Smart Enough, and Doggone It, People Like You“.  Celebrate the minor victories. When you have fixed an elusive bug or finished writing a section of a tedious document, give yourself credit for a job well done- a mental high-five! It’s amazing how much smoother and faster a day goes when you have a positive outlook.

What are some of the tools in your “Get It Done” toolbox? I would love to hear about them!


Stuart Smalley,