I’ve been working quite hard recently to learn new things, Haskell being the obvious example, but I still feel kind of inadequate. I saw Jon Skeet’s talk at Oredev and was very impressed with the depth of knowledge he has of C#. It wasn’t anything specific that he said, but his general handling of every situation through the talk. Jon is clearly a complete expert in the language (just look at his StackOverflow reputation) and it is really impressive to watch such a master of one’s field talk on the subject. Similarly when watching Douglas Crockford’s “The JavaScript programming language” lectures it is clear that a true expert is talking, someone who has been there through the conception, creation and development of the language and someone who isn’t caught up in some hype, but genuinely loves his field.

I’ve been watching some other videos from TED and from RailsConf and such, and I look at the guys up on the stage giving these presentations and I would really like to do that sort of thing. I really like to share knowledge, I like meeting other people with a similar interest in software development, and I think I am a pretty good public speaker. However, my opinion on being a pretty good public speaker is probably from giving presentations at uni or at school- I watch David Heinemeier Hansson giving a talk on why he loves Ruby and I see a self belief in what he is saying that I don’t have at this stage. This gives his talk an amazing depth and captivating spirit which is really powerful. I don’t really agree with a lot of things he says, but the way he says them is very impressive.

I don’t think I could give a presentation like that- I don’t believe strongly in one development methodology or another, I don’t believe that there is one true language, I don’t believe that the MIT license is the only way we should be contributing free software to the community. I don’t feel that I have achieved anything yet which I feel strongly enough to talk about with that amount of passion.

I have ideas about a lot of those things, I love the idea of design for test, I love C# language and the idea of functional/declarative programming style, and I believe strongly in the lesser GPL (although to be fair, it could be more concise), but I don’t feel like I can commit to any of these things as my thing. I don’t feel like I can commit to one technology or methodology or community at this stage in my life as a developer.

The things I do believe in are the culture of continuous learning, the culture of taking pride in what we create, the culture of constantly examining process and considering what we can do better, and the culture of taking a problem and finding the best way to solve it with all constraints considered. I believe in the field of engineering, and I believe firmly that software development belongs in it. I guess I’m still learning a lot about how the different pieces of the puzzle fit together, and hopefully one day I will have arranged enough of them to pass on some of it to others.

Jon Skeet’s talk from Oredev “C#’s biggest mistakes”
Douglas Crockford’s “The JavaScript programming language”
David Heinemeier’s Keynote at RubyConf 2010