Sample Video Frame
Exercise 7: grep
The find command should have been possible but a good challenge for 45 minutes. At this point you should be knocking down as many blockers to your start as you possibly can imagine. You may find that when you eliminate something your skill gets worse. For example, I used to walk to get a coffee before I started to work. This took me about 30 minutes and was very nice, but that's 30 minutes that many times turned into a few hours. I decided to stop doing that, but then my work suffered. Turns out I still needed coffee, so I bought a nice espresso machine and learned how to make my own lattes. Now I get up and make myself a latte and go do a bit of drawing, which gets me in the mode for doing creative work.
Not everything you do is an inneficiency, so be careful not to eliminate something simply because it takes up time. There are little rituals and personal habits that can get your brain ready to work. The trick is to not eliminate those but to instead make them easier to do before you start working.
You should also be getting a concept of time management during this first part of the book. Setting a time limit of 45 minutes will make it very clear that you have no idea how long you take to do something. With only 45 minutes you can't waste 30 getting your vim windows just right and organizing the perfect directory structure then crafting a brand new algorithm for sorting. You have to be frugal in what you implement and in what order you do the work.
A good way to tackle a project is to start with the simplest thing you can get up and running first. In the find example that was probably getting a file by a glob pattern. Someone with poor time management skills will immediately try to get the -exec argument working to prove they are an awesome coder, but -exec can't work without -name and is much more difficult to implement. The way to decide is to tell yourself that you want something you can use when you're done. If 45 minutes passes and you can use -exec but can't get files into it then how can you use it? If the same time passes and you've got a way to list files matching a name then you've done it. You have something in 45 minutes.
Keep working your list of blockers and evaluating how well you do with your start, but now start looking at time management. Strategize what you are going to implement so that if you ran out of time you'd have something you can use. They don't have to be complete features, but two useable features is better than 10 that don't work at all because you forgot the simplest thing they all need. Or worse, 10 that don't work because you bounced around half-implementing all of them so none of them work.
Register for Learn More Python the Hard Way
Register today for the course and get the all currently available videos and lessons, plus all future modules for no extra charge.