So welcome to my new blog blah blah blah.
I’m doing this as I have some ideas about programming popping up with no outlet in my work environment.
In my programming I feel I’m approaching a similar phase to the end of my physics PhD. When I started my physics PhD, I could answer textbook problems in a textbook manner; but if you have ever seen real physics research it is nothing like a textbook. I could solve technical problems in a “fiddle with it until it works” way, which is the only way that graduate students work; analytic solutions are not possible when you are working with 15 independent parameters. As I got to the end of my 3 years of doing physics research, I found that I entered a great new intellectual state: I was able to use my textbook learning with my experience that had been gained from soldering wires and spending hours trying to align laser beams. At the end of my PhD I was able to balance the two to solve real problems and my knowledge of the specific domain of the research meant that new ideas just came bubbling out. I could do physics just by talking to other physicists.
Then, of course, I left physics and started all over again in programming. And of course, I started with the experimental “fiddling” style that is the recourse of those with no formal training. Now after 5 years, I’m starting to put the pieces together and trying to view problems in a context that isn’t academic but, like academic learning, I’m trying to extract the essential “truth” from repeated similar experiences. Of course, many people have done it this is just my 2 cents. There isn’t, of course, “one truth” but I think that there is a “body of knowledge” that can be re-used and there are parts of that knowledge that already exists and part that still needs to evolve and part that can be taken from other disciplines. There are similarities with other human activities – say, mathematics and mechanical engineering – and differences, of course.
I also think that it’s for me personally to move from being a guy who makes programs to being a software engineer and all that is implied by that. I’m not there, but I’m on my way. However, in order to do that there needs to be some breadth of learning and depth of learning that only time can produce; but also a commitment to the craft. Hence the title. I’ve served part of my apprenticeship and now it’s time to become a journeyman and learn from the masters of the programming craft, and maybe contribute a little too.