Here’s a complete PhD thesis paper on the software engineering analogy [pdf] (a little different from the construction analogy).
Category Archives: Development
Archive Journal Entry: 20030326
My friend Charlie has started a blog. He suggested that I start adding some photos to my own, specifically my avocado project. Unfortunately I have some technical difficulties (not enough usb ports on my laptop) so I cannot upload the photos right now.
More news about my Software Construction Analogy paper: there is another article on kuro5hin.org, this one about software architecture. It refers to my article. I have also participated substantially in the discussion there. I’m hoping that in a few weeks I will be able to publish a more scholarly attack on the software construction analogy. Eventually, I would like to develop the ideas into a full book. How many words are in a standard technical book? Addison Wesley, one of my favorite publishers, has some guidelines for book submissions.
Today was a crumby day. I had a very bad headache that started last night and continued until this evening. It seems to be gone now, but I didn’t make it into work. I have an important deadline coming next week so that was very frustrating. Tomorrow I have a morning meeting with the CIO of the organization I am working with – I hope I feel much better!!!
Archive Journal Entry: 20030324
I wanted to thank a couple people for putting comments about my Software Construction Analogy paper on their blogs: Seth Dillingham, and Eric Hancock. Thanks!
I went to see the movie “Dreamcatcher” today. It was okay. The real reason I went to see it was to see the Animatrix short that precedes the feature. I am very much looking forward to the Matrix sequals coming soon…
Yesterday I got the dance pad for the StepMania dance game for PC. I tried it out briefly last night and did about 20 minutes with it this evening in Jersey City. I love it!!! I fully expect to get really good at it and get lots of exercise in the bargain. There are a couple minor problems tho: the pad is a thin flexible plastic thingy that slips easily both on my carpet at home and on the hardwood in my apartment. Not only that, but in my apartment, jumping around on the hardwood is a bit tough on my feet. So, I’ll probably buy some stuff to make it better, like a thin dense foam underlay and some sort of system for holding it in place on both hardwood and carpet. I was also thinking of putting some sort of ridges under the pad so that I can feel when my feet get out of place.
Archive Journal Entry: 20030320
Here is the email discussion I referred to a couple days ago regarding career strategy advice:
—– Original Message —–
From: “Mishkin Berteig”
To: “Greg Matthews”
Sent: Monday, March 17, 2003 7:16 PM
Subject: Re: Seeking Advice — Computer Science
Greg, I’d be glad to spare you a few minutes. See my responses below… — Greg Matthews wrote:
My name is Greg Matthews and I am a Computer Science student at the University of Windsor. I am currently preparing to go into my final year of studies with plans to graduate next April (2004), and I have decided to go into this last year with a strategy to best prepare me for my job search after completion.
Good idea 🙂
I am currently seeking to find some advice from professionals within this area and I was hoping you might be willing to answer a few questions for me that might help me better plan for my future career. Would you be spare a few minutes to answer some questions for me?
Here are my questions:
- In your opinion, what is the current state of the job market for IT professionals?
Bad, but not insanely bad. Basically, if you are pure comp-sci with no other skills and no experience, things are going to probably be rough. Even with other skills and experience things are tough. But they have improved substantially since 2001 which was a completely dead year!
- What caused you to go into your specific area of IT and if you were to start over would you still take this path? If not, what?
I got onto my path accidentally in some ways, and quite deliberately in others. For example: I never expected to work with Java, partly because it didn’t really exist until I got out of school. However, I quite deliberately did not stop learning after I finished school. The path I have taken, which could be summed up as “Object Oriented Guru” (and along which I have not yet reached the summit), was only sorted out after I got finished my degree and had some work experience.
- What IT professions (if any) would you recommend staying away (possibly due to over-saturation/high-competition or otherwise)?
It is difficult to say. The problem with the IT industry is that it changes quickly. (That is also an advantage, of course.) I honestly don’t think it is possible to plan even a year ahead in terms of any specifics. Use your education to go as broad as possible: theory, math, business, languages (computer and human), humanities and social sciences, science etc. This is so that you can know what you are talking about no matter where you find yourself in a year or two or five… If you are not already well-read, it is probably urgent to try to broaden your horizons. In the long run, prepare to always be learning! Other than that, choose what is most attractive to you. I chose programming because that is what I enjoyed most. If you like fiddling with hardware, follow that, etc.
- What advice would you give to a person looking to get started with minimal previous experience? How can I get my foot in the door without experience what would an employer look for?
Well, there are lots of possibilities. Get involved in or start an open-source project. It doesn’t have to be big or take a lot of your time. Make sure that you advertize any personal projects you have done. If you haven’t done any, you might be in trouble so I would suggest you get moving on that. For me, personal projects meant stuff related to AI. Just do something that you are interested in.
- Is additional education (Masters or MBA) important in today’s market?
A post-graduate degree is not necessary, but professional training can be very helpful. For example, take a seminar course on Project Management, or a software development methodology such as RUP. This will likely cost you a couple thousand, but believe me it is worth it. If you can’t afford that, or find the time, do a ton of reading in a subject related to the computer field, but not really computer sciency.
- What would you consider to be ideal entry-level positions to gain the best experience and opportunity?
Two things to consider: 1. your first job should be with a small local technology startup where you are either the only technical person or one of two techies. This allows you to get experience doing everything, and that is criticaly. After a year, or at most two, get out of that job and find one with a big tech company such as IBM, Sun or Microsoft. These can be hard to find but they are excellent. After that, your career options are pretty much open. Whatever you do, don’t take a first position with a large company if you can avoid it because you risk being pigeon-holed into a specialty that may not suit you. (Caveat: if the position is exactly what you are hoping to do for the rest of your life, then go for it!)
I would greatly appreciate if you could answer any of these or offer any additional advice you may have to offer.
Thanks in advance!
Do you mind if I put up your email and my responses on my weblog? I will happily remove your name if you desire, or link to your home page if you want…
– Greg Matthews
I think that the summary to all that I said is:
- have a broad foundation of education
- be flexible
- continue learning outside of school
- try doing things you enjoy
- don’t get pigeon-holed early on
Interestingly, non of that advice is specific to the IT field and represents a fairly “liberal”
approach to education and work.
Some links: Charlie Kirby’s cool site and his other cool site.
Some people might think this would be a good place to say something about the “war” with the USA and Iraq. So there, I did. But that’s all I’m saying about it 🙂
One hour later… okay so here’s a link about the war.
Archive Journal Entry: 20030314
Yesterday I submitted an abridged version of my paper “The Software Construction Analogy is Broken” to Kuro5hin. It was submitted at 9:30 pm EST, and posted to the front page of Kuro5hin at around 11:00am EST today. Someone by the name of Hamis Harvey has already written some very intelligent comments on my article on his blog. The larger paper itself deals with the same topic but provides a substantial set of scholarly references and notes as well as some differences in the text. The paper is not yet complete and I am grateful for the many excellent comments people have made on Kuro5hin. I intend to honor those comments by making my paper even better (and of course acknowledging the sources of the improvements!). Thanks K5!
Archive Journal Entry: 20030204
I’ve been forced to work a little bit in C++ and my clearly articulated and carefully considered opinion: RUN AWAY, RUN AWAY!!!!! Okay, so this rant has probably been done to death but really, what’s up with virtual methods? What’s up with the really stupid syntax (:: just doens’t do anything for me!)? What’s up with the stupid reliance on preprocessor directives? What’s up with the lack of dynamic typing and reflection? What’s up with the hassle of separate .h files? What’s up with references????!!! Whoever thought this thing up must have been really really twisted! (And this corroborates that.)
Archive Journal Entry: 20030203
I had a great weekend. Christian and I went on Saturday to get a bunch of stuff out of our storage unit in Elmvale. On the way there and back, Chris and I worked on developing an NSpace class in Java. It will allow for data to be organized along an arbitrary (and dynamic) number of dimensions. It will be a sparse data structure so that not all locations in the space must have data. We’ll probably put it up on SourceForge in a week or two. I’ll let you, dear reader, know when that happens 🙂
As for the stuff in storage, we listened to the XXX (US$) (CA$) soundtrack while we were loading the van. Christian acknowledged my superlative skill at packing (due to my extensive experience with moving) :-/ Lots of good exercise lifting those heavy boxes! We also stopped for lunch and did some development work during our meal.
Sunday was packed with Baha’i activities. In the morning we went to Baha’i children’s classes. I watched Haifa in her preschool “class” while Melanie and Justice went to the senior kindergarten class. We met a few people too. We went home then. Melanie’s mom and grandmother stopped by for tea. Melanie was a bit upset about the condition of the house, what with a bunch of boxes and pieces of furniture all over the place from our storage run. We tidied up a bit and things were presentable. Then in the afternoon we went to the Markham Unit Convention. It was very well run, but not as nice as the unit convention in the SF Bay area last October. I asked a question about the process of reflection on the Ruhi training materials and the methods of facilitation to emphasize the need for putting the training into action. I also privately talked with the delegate about the fact that the world is awash in the excesses of materialism, and that future unit conventions might be better should they include the arts to a substantial degree.
After the unit convention we went on a bit of a drive and looked at some mansions
that are near where we live. The rest of the evening was mostly me getting ready
for being back in Jersey City.