Six months with the day job – no thanks to school

Post Image Today marks six months of me working at Questionmark. I started there in July as a .NET developer, and so far I’m really enjoying it. The work is interesting, and the people are great. After focusing mostly on Paramagnus for the last couple years, I was kinda worried that the transition would be painful, but it hasn’t been.

Of course, transition may not be the best word as I’m still working on Paramagnus too (along with Dickson). Not as much as I used to, obviously, but Questionmark has been very accommodating thus far. The first month or two was a bit difficult, but I have more of a routine now, so that’s good. The vacation last month was a nice break from everything as well.

I think part of the reason that doing both Paramagnus and Questionmark isn’t impossible is that I’ve never worked solely on Paramagnus. Until April of 2007, I was still a full-time university student! And all jokes about skipping class aside, it still required a fair bit of time and effort. So in a lot of ways I have just replaced school with the Questionmark job.

Those of you who know me well know that I do not look back on my time at the University of Alberta with much fondness. I really enjoyed the Economics courses I took and a few of my options were pretty interesting too. My computing sciences classes, on the other hand, were largely a waste of time. I always felt that the things we were learning about were entirely irrelevant! It still bugs me, because I love technology and I love software development but I absolutely hated most of the CS courses I had to take.

I’ve always wondered if any of the CS stuff I learned would be useful in a real job. None of it was at Paramagnus (except maybe the two database courses), but I don’t think that should really count, because I have complete control over our development and how it works. Questionmark should count though, right?

I can honestly say that if I had to rely on the things I learned in computing sciences for my job at Questionmark, I’d be completely screwed.

Instead of a Bachelor’s degree in Computing Sciences, I should have gotten the BFA in Software Development, as described at Joel on Software:

When I said BFA, Bachelor of Fine Arts, I meant it: software development is an art, and the existing Computer Science education, where you’re expected to learn a few things about NP completeness and Quicksort is singularly inadequate to training students how to develop software.

Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that’s how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.

That sounds like it might have been useful! Better yet, screw university and just start a company. I mean it – I have learned so much from Paramagnus. I can’t imagine where I’d be had I not started the company. I certainly wouldn’t have a job at Questionmark.

Is it my fault for going to the University of Alberta instead of NAIT? No, I don’t think so. The U of A is supposed to give you the best education possible, but that shouldn’t come at the expense of preparing you for the real world. Will I look back twenty years from now and find value in the CS courses I took? Never say never, but I seriously doubt it. The tech industry changes too quickly.

I think the current education model for software development is horribly flawed. Very few people want to be computer scientists, charged with proving theorems and all that other crap. I think a lot of people want to learn how to develop software, from start to finish. I laughed at first, but I think the BFA in Software Development idea is actually quite good. It could totally work!

If I’m ever in a position to make it happen, I absolutely will try.

Other universities should follow Stanford's example

I was less than impressed with most of the Computing Sciences courses I took during my degree at the University of Alberta. I found the majority of the courses either too boring or too out-of-date. Or quite often both.

Maybe the image I had in my head about what university would be like was just plain wrong. I always thought that universities were on the cutting edge, with lots of cool stuff happening. I thought I’d be exposed to some really interesting research, like that of Jonathan Schaeffer who worked on Deep Blue and teaches at the U of A. Sadly, my classes never ever reflected that image.

Today I was reading some blogs, and came across this article that says Stanford University is going to be offering a course this fall called Creating Engaging Web Applications Using Metrics and Learning on Facebook. I’m very interested and very jealous:

Students will build applications for Facebook, then gather and analyze detailed information about how Facebook users actually use them. Students will focus on using detailed numerical measurements to guide software iterations, just like developers do on thousands of existing Facebook applications.

They’ll be graded based on how many Facebook users they can get actively using their applications.

I wish I had been able to take classes like that when I was in university.

It’s important to learn about hard technology problems, such as searching, but I think it’s equally important to study the technology that people use every day, like Facebook. Kudos to the CS faculty at Stanford for taking a chance on Facebook and venturing into the relatively new area of Human Computer Interaction.

Read: VentureBeat

Upside Software

Post ImageThis afternoon the Faculty of Science hosted the first ever Executive Business Seminar for Computing Sciences. These seminars bring real executives from the computer industry to talk to students and faculty about their business, the challenges they have faced, and of course the technology they use. The Faculty of Science has been hosting similar seminars for other disciplines, like Chemistry, and they have apparently been quite successful prompting the start of seminars for CS. The seminars are around an hour in length, and include free pizza and pop.

Today’s speaker was Ashif Mawji, founder, president and CEO of Upside Software Inc., a very successful Edmonton-based software firm. They create software tools that help companies manage contracts. Ashif also brought Rob Brown along for the talk, who is the company’s Director of Team Development. The presentation was really quite interesting, and the success that Upside Software has had is quite impressive. Indeed one look at their customer list will give you an indication of how successful they have been!

After the presentation there was time for Q&A which was probably the most beneficial part of the seminar. Upside Software is looking to hire around 40 people in the coming year, so that was the pitch to students. All of their development is done on the .NET platform using C# – technologies which as you probably know are what I use and promote.

At the end of the session I introduced myself to Ashif and Rob, and invited their developers to attend the .NET Wizards upcoming events. It would be great to have their experience and leadership in our user group! I’d say today’s session was worthwhile, so I am planning to attend the next one too when it is announced.