Trying new languages is considered a good habit by most software craftsmen. At the same token, generally most professionals agree that you can’t practice aimlessly you have to have driven, deliberate practice. Just programming doesn’t make you better. Programming with a goal, and making bugs and or hard things to maintain is good practice. Realizing that you need to then practice those things which you found difficult and then making that your sharpening of the saw effort is the real goal of practice.
In an effort to both learn more python, and get better at writing code in general, I have decided to practice python and math by combining them to make the project euler algorithms.
I think that the python koans were a great experience in learning what the language could and could not do. However solving problems and getting in the thick of them with the language really teaches you how to figure things out in that language.
As promised I’m going to continue to write about deliberate practice, and its role in craftsmanship. One way that I am deliberately practicing is using the project Euler problems. These problems provide a good problem domain to play around in, without getting caught up on the concepts in which to practice principles and self disciplines of the craft.
I’m using a language I have not used as much as others I know, python. I really enjoy python, this lets me use it in the “trenches” as it were. The second piece of the practice which I need right now is TDD. Its not that I don’t believe in TDD or haven’t done it, its that I know I can get better at it such that its my main mode of operation, and not an after thought when I have time.
The TDD reason may push me into practicing in a different language as the testing tools for python are more primitive than other languages, although testing is not difficult the test runners and tooling is just rougher, in my immediate experience. Given this practice it may not be a problem.
I’ll post an article with my progress and the metrics I’m using in my practice. My initial goals for the practice are, get through the first 10 euler problems, in python, with test coverage.
Posted in craftsmanship, Uncategorized | Comments (0)
A lot of people, myself included, are thinking about how the software industry can instill learning and getting better industry wide.
The Software Craftsmanship movement seems to be the next iteration of this thought.
Its a thought process that there should be a very small gap if any between, getting it done fast, and getting done right.
There are a lot of concrete principles that people are associating with this movement. Single Responsibility, Open Close… However, that is a very narrow way to look at it. Especially if we expect all people in all languages to aspire to be craftsman of software.
To me it all comes down to how you assess where you are in terms of quality, and what needs worked on. Then working on those things in order to achieve a higher level of quality. If tested code is better than untested code, and you haven’t ever tested, or testing is very hard for you to do in a crunch, maybe you just need to practice testing more?
Deliberate practice, the kind that professionals in other fields use to be at the top of their game, is very much a part of this mind set. I’ve heard a lot of people echoing this sentiment without putting their finger on it directly. Analysis of where you are in terms of where you want to be, and identifying things you can practice to get to where you need to be.
So I am going to be writing a few articles on my thoughts of how I’m doing this, and maybe others can benefit from deliberate practice in the same way.
Posted in craftsmanship, Uncategorized | Comments (2)
The current answer to OS choice for both my laptop and desktop is.
Ubuntu 10.10. Which coincidently was released on 10.10.10.
101010 in binary is 42 in decimal.
42 is the answer to life the universe and everything, and ubuntu 10.10 seems to be quite a good answer to Os’s for everything for me right now.
Posted in Uncategorized | Comments (0)
So I search for random stuff a lot. There are just some things I find myself searching for multiple times. I’d like to see myself on the list when I search for them again. Its kind of like leaving yourself breadcrumbs. So here is the list for the last few weeks. I hope to continue this as a series.
- T-SQL that strips the time off a date and gives you a 00:00 date time.
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
- The name of the chello artist on wync radio show I heard
Zoe Keating – she is amazing check her stuff.
- What is the open source name for google analytics
Urchin
- Ninject Dojo and project links
Dojo, Github, web extensions, good tutorials
So in the last couple weeks, I’ve been evaluating new IOC frameworks, and doing so to fix some sql issues, while writing some date based reports. Thinking of putting analytics on my server, instead of having it be cloud run, or at least replicating to get reconciliation of client contact with GA in the cloud. Zoe has provided thought provoking music throughout. I first hear her while listening to Radio Lab, and couldn’t really find her easily. Her first name has umlauts on the e, so its a bit hard to find her even in my itunes library, but her last name is easier.
I’ll try to make this a regular post, and really start getting more regular on the blog in general. Its not a new years resolution, since its not different that I want to start blogging.
Posted in Uncategorized | Comments (0)