Sara Williams' blog

musings and rants from sara williams

CS degrees and summer skiing

Earlier this week, I went to a review of our academic evangelism plans.  One of the points that Morris raised is that the number of CS grads is declining, so it's not sufficient for us just to talk to CS folks.  That got me thinking...

I have a CS degree.  When I was in school, I really believed that I was going to spend my working life writing compilers.  I had no idea that there were other things that you could do with my degree.    Evangelist?  Tester? Program Manager, Industry pundit?  I never knew that these were options.  At least at my school, there was no forum for me to learn what jobs in the real world existed for different degrees.  Would we increase the number of CS grads by doing a better job educating freshman about the range of jobs and opportunities there are for CS grads?

And that lead to a bigger question... Is a CD degree relevant in today's world, or tomorrow's?  I go back and forth on this one.  On one hand, tools like VB and Excel make it pretty easy for the non-programmer to built pretty sophisticated systems without knowing much about what's going on under the covers.  On the other, I'm a firm believer that understanding what's beneath the abstraction is critical to using tools effectively.  See Joel Spolsky's great essay about this idea.  On the broad scale is the mix of CS and non-CS folks changing?

 

And of course, that lead to even bigger questions.  Is college the best place to learn how to be a computer scientist?  Are there other disciplines (music, math, econ, eng) that better prepare students to build great software?  Should we rethink what knowledge and experience someone really needs to be a great software person?

 

 

More questions than answers.I'd love to learn more about what other folks are thinking about this.

 

Robb and I are off for some summer skiing at whistler!  Being the skiing fool that i am, i think that it's great that I can ski there 10 months out of the year!

Published Friday, May 23, 2003 3:16 PM by SaraWilliams

Comments

 

Stefan Krueger said:

CS is also a way of thinking, and strategies for solving problems. There are tools that make it relatively easy to build a program. But designing and creating complex software systems takes more. Therefore I think you should have a related education. Not necessarily CS (I don't have a CS degree, but an engineering). I don't say that other sciences and arts wouldn't be able to contribute. But for the majority a CS related education makes sense IMO. It should be noted on the other hand that technical education is not all. You also need social and communication skills, etc.
May 23, 2003 4:04 PM
 

Scott said:

I'm another developer who doesn't have a CS degree...I started at University doing a joint CS & Psychology degree, but to be honest, I learnt more relevant skills from the Psychology part of my degree than the CS part - in the end I chose to ditch the CS part. When I went to University, the only languages we learnt were Pascal and Ada on HP9000 systems - pretty much useless to me both then and now. Picking up opject oriented concepts in my opinion is more a matter of aptitude than learning. Almost without exeption, the best coders and architects I've worked with have more rounded backgrounds than pure CS, my current team consists of Mathemeticians, Biologists and artists. I'm now in a position where I hire developers - to be honest, the degree a person earned has practically no impact on my hiring choices, enthusiasm and aptitude - which admitedly are harder to assess than the posession of a certificate - are much more important. An essay which struck a real chord with me was this by Paul Graham http://www.paulgraham.com/hp.html
May 23, 2003 4:23 PM
 

Jason Mauss said:

First, let me throw out the fact that I am 22, almost 23. When I was 17, graduating from high school I thought it would be wise to attend college and get a CS degree before jumping into the job market. Boy was I wrong. Instead of following all my friends away to college, I just started teaching myself software development. After a couple years of this I went back and attended some college CS-type courses and found that because of how seriously and rapidly I had chosen to educate myself, I was way ahead of what they were teaching at the college. Granted, it was a junior college, not a major university but still, it was basic stuff. I have not stopped educating myself (and probably never will stop) over the last 5 years and have found myself years ahead of my college friends in terms of what I know. The only other guy I know my age that's as far ahead of the field for their age as I am didn't go to college either. I think that says something about the quality of what you learn from a CS degree. Of course it depends on the person...some people without degrees are brilliant, some with degrees are pretty lame, and traditionally, a degree was a standard measurement of a certain level of education. Having said that, I think that measurement is no longer an acurate way to know how much somone really knows. I think like previous commenters have mentioned, it depends on how seriously one takes themself as a developer, how motivated they are to be a top-notch developer, etc. I'm not anywhere near the top of my list of career goals yet but, I think my goals are a lot higher than mosts, and I think I'm alot higher up the ladder than most people my age that spent 4 years at college getting a CS degree. Of course, YMMV.
May 23, 2003 5:01 PM
 

Steve Hiner said:

I too, lack a CS degree. I have a BSCE (Civil Engineering, not Computer Engineering). I think it did a good job of preparing me for a career in programming. Basically, any form of engineering degree is going to teach you about problem solving and we all know that's what software development is all about. From the design phase through implementation all I do is solve problems. I think that's what pulled me from structural engineering into programming (aside from being a total techie geek). I love to solve problems. I think having a civil engineering degree gives me a unique perspective on this issue. Civil engineering is basically a catch-all for all the fields that don't have their own engineering degree. As I understand it there used to only be 2 kinds of engineers, Military and Civil. Then Electrical, Chemical, Nuclear, etc. split off of Civil. The reason I bring this us is because it seems like a CS degree is too general. Perhaps they need to start dividing it out into more specific degrees. Things like software architecture, application development, user interface (most of us engineering types suck at that). Maybe even AA degrees for things like software testing (don't flame me if you're offended by that suggestion :-). As I mentioned, I don't have a CS degree so for all I know maybe they already have sub-degrees like this. If so just ignore me and go on about your day.
May 23, 2003 6:13 PM
 

Jeff Julian said:

I have my degree in CIS (Computer Information Systems). I received this degree from DeVry of Kansas City. I made this choice due to the location of the school, pace of the classes, and the fact that I had a BS by the time I was 20. I believe the degree helped me build my foundation in the field, but I did co-op the entire time I was in school so it is hard to pick what helped the most.
May 23, 2003 6:58 PM
 

Scott Swigart said:

No CS degree here either (does anyone have one?) My parents bought me a VIC-20 when I was 12, and like many from that generation, I've been writing code ever since. What I've learned is that some peoples noggins are just wired for coding, and some peoples aren't. It isn't that that people can't learn it, it's just insanely boring (or all consuming) depending on who you are.
May 23, 2003 7:03 PM
 

Steve said:

You need some sort of science, math or engineering degree to prepare you. Attaining one of these degrees is like being put in a meat grinder. It prepares you for the meat grinder out in the field. I've come across some good engineers that have non-technical degrees, but those are the exception. I have a BS in EE and am pursuing a MS CS. I think the CS training is teaching me to think out-of-the-box. It's good to mix it up, as long as you keep working in the field, you can't go wrong.
May 23, 2003 9:05 PM
 

Simon Smith said:

My experience of hiring people over 20 years is that there is very little corellation between academic levels achieved and performance in a tech job. (I say 'tech job' rather than programming job because as you rightly say the range of alternatives is really quite large.) If I have a faint suspicion that people with math or music backgrounds do better in the long run, but it's not anything I can prove. My experience of CS graduates in the UK has not been good - at least when you take them on for their first job. Being able to quote Djikstra etc does not prepare them for what they need to do in your average software house where conditions and goals are quite different to those in an academic setting. Most of the graduates I have observed have been very slow to adapt to the constraints they have to work with, and have taken a long time to even realise that they are serious constraints despite them being pointed out to them frequently. It's not all doom and gloom, though - most of them seem to catch on in the medium term.
May 24, 2003 5:09 AM
 

William Beem said:

Oddly enough, I just discussed this same topic with the nutritionist at my gym this week. Her husband is a CS professor at the University of Central Florida. She mentioned his concern about the decline in students relates directly to the decline in job possibilities. UCF has an excellent CS department. It's the reason many technology companies located offices near it in Central Florida (e.g., Oracle, SAIC). Those companies aren't really hiring lately. Another concern is that CS lost some of it's appeal. It's no longer new and magical. Now it seems that many corporate offices treat IT workers as replaceable drones.
May 24, 2003 9:55 AM
 

Mark Hurd B.Sc.(Ma.)(Hons.) said:

I have a computer science degree and can only agree that they produce computer scientists, not computer programmers. However, as usual, it depends upon the person and the course. There are some fundamentals that you realise others don't understand when you review their algorithms or code, irrespective of their experience. Often a degree is less highly regarded than a MSCE or other relevant industry certification, but a degree should mean the holder can be up to speed in any system in a short while, often with no training expenditure required.
May 24, 2003 11:51 AM
 

Anand said:

When you are developing bussiness apps(which I suppose a majority of us do), it is more important to know the bussiness rather than what happens underneath. Yes, I am a techie and do know what happens underneath, but I necessarily do not look for the same when I hire people. If I develop in VB, I look for good VB skills and [Bold]thirst for knowledge[/Bold]. This will always make a good programmer. A CS degree does now...
May 26, 2003 3:47 AM
 

Darren Neimke said:

My name's Mortimer, but you can call me Mort! I've often remorsed over the all to brief education listing on my resume but, it's only recently that I've got enough real world apps under my belt to truly believe that a comp-sci degree is not a 'must-have' to build world class computer programs. To build high quality computer programs you really just need the ability to understand a clients requirements and enough steely determination to see the job through to completion. I think that the rigours of enduring a comp-sci degree education probably ensure that anyone that makes it through to the end of the training *does* have the attributes that I've mentioned, but, that's certainly not to say that that group makes the best application developers. I mean CRIKEY who on earth rolls their own B-Tree's or writes a new sorting algorithm these days anyway? ;-)
May 26, 2003 6:57 PM
 

Gwyn Cole said:

Up to the final year of University, I always believed that “knowledge is power”. So I strived for “knowledge” in every way I could. But, in the final year it dawned on me, knowledge maybe power, but University wasn’t necessarily about that. University was about “a way of thinking”, “problem solving” and “learning how to learn”. This has led me to believe that it really doesn’t matter what degree you have, you have the necessary qualities to solve virtually any problem. Although it worth noting that you can achieve these qualities outside of a University degree, it’s just harder to prove it sometimes.
May 27, 2003 5:24 AM
 

Erik Porter said:

IMHO, it doesn't matter how you do it as long as you do it. I think if you've got the brains and the not just the brains, but the "right" brains for the job, you will succeed in this industry. For me, personally, college wasn't for me. I attended 3 semesters and dropped out and started working. Have been ever since and would never even consider going back. I know many people that did very well by continuing in college and I would never ever recommend someone not go, but if it's not for you, then it's just not. No sense fighting it. I think the big problem for me was that my brain just doesn't work like they like to teach in college. I have a curious mind and just couldn't sit and listen, maybe I have ADD :P I just wanted to play, tinker, create! I'm a firm believer that a truely good programmer has a certain type of mind and if you don't have that type of mind it doesn't mean you won't be successful, but it also doesn't mean that just by going and getting yourself a degree or a certification, etc means that you will succeed, IMHO
June 1, 2003 2:22 AM
 

Heath said:

From what I've seen in an area of Iowa that has both a university (where I went) and a handful of tech colleges, people are getting into computers for the money - which is totally the wrong reason. Even people that were in my CS classes usually didn't get that you actually have to learn - and want to learn - this stuff outside of class. Universities are there to teach you to think, not to do. Any monkey with a keyboard is bound to turn-out something. The students who, like me, either started developing early in life or really *wanted* to learn about computers and applied themselves did well; others did not. Then you see a lot of these people that went to places like ITT Tech. They learned how to write a program or click a few buttons and checkboxes to configure a network. I conducted interviews not long back and it was obvious that these people - even some from the CS department at the university - had no real interest in computers because they knew nothing outside of class. People are in it for the money these days, it seems, and these point-and-click IDE's like VS.NET only promote such a decline in skill levels and research. At CodeProject and at work I've had to answer a lot of questions by coders (not developers) that can't even do a simple index search for a keyword. So is it any wonder that CS grads are in decline? People can make money faster at a 2-year college rather than a 4-5-year college, so why bother?
June 2, 2003 9:26 AM
 

Mike Dimmick said:

I have a CS degree - now! I started at University in 1996 studying towards Electronic Systems Engineering but dropped out of that and onto CS in 1999 because I couldn't get the hang of quantum mechanics. CS was always the other choice, and I chose the ESE course because it had a large amount of computing science in it. I graduated in June 2001 (Lower Second class honours, mainly due to making a big mess of the final project), so I've now been out in the real world for two years. My university was moderately practical and hands-on about teaching, so it wasn't just book learning. Some lecturers were extremely good; others less so. If I hadn't already learned C++ (initially from Beginning Visual C++ 5, then from Scott Meyers' Effecitve and More Effective C++ and Stroustrup) before taking the oficial course, I would have been as awash as the rest of my class. So what do I use from my degree? I did get a pretty solid grounding in basic software engineering principles and the mechanics of basic data stuctures. Being a C++ with MFC programmer (most of the time) I don't often write data structures directly, but if something goes wrong I can drill into it to know what's going on. I think the key point actually is to have a genuine enthusiasm for computing (we begn to see the opportunists about a year or two after I started) and to enjoy reading and learning about your subject. I have a (probably bad) habit of consuming long technical books like 'Inside Windows 2000', to know what's going on. I seem to need to understand how the components are put together in order to truly understand the whole. Not just reading technical books either; a software engineer must be able to communicate precisely, which you can only do if you know your language inside out (which applies to English as much as it does to C). A degree of any sort can help you, but only a CS degree can teach you the necessary vocabulary at the same time. I don't deny that there are exceptional self-taught programmers; BillG is one, of course. But I do think that the CS degree has value. Another way I continue to learn is by reading newsgroups and forums, trying to understand the issues, and presenting answers. I reckon my strike rate is about .75. If interested, you'll see old posts on alt.comp.virus, then more recently on comp.compilers, and since taking up Pocket PC development as a profession, on microsoft.public.pocketpc.developer, microsoft.public.vc.embedded, occasional comments at CodeProject and answering questions at the Pocket PC Developer Network forums (www.pocketpcdn.com). Okay, that was a bit of a plug, wasn't it?
June 2, 2003 7:02 PM
 

Jen said:

I think that some people start with the talent to code and design, but formal education is really necessary to turn the in-born talent into real skill. Classical problems like sorting and searching cannot be ignored when applications begin to scale in size, number of users and complexity. The structure of CS from a college level helps to give programmers a jump start as their applications get larger. I don't think that many other disiplines other than CS can give a person this basic foundation.
June 6, 2003 10:00 AM
 

Jonathan Nixon said:

After reading Jason Mauss's comments above, I felt like I just had to speak up. I am also 22, soon to be 23 and I have just finished my CS degree. Part of me wishes I had never done it. If I had just studied it on my own and tried to get a job out of high school, I would probably have 4-5 years worth of experience now. In todays job market, thats adequate to get a decent job. However, having only 2 years of real experience at present, it is very difficult to find a decent job. I also felt like I was way above the rest of my fellow CS students. While they were stressing over the data structures assignment in class, I was spending my extra time working for a software development firm in town. They completed a simple data structure assignment and felt like it was the hardest thing they had ever done. Meanwhile, I was put in charge of the re-development of a software package used by many high schools and colleges in their sports programs. After 2 years, I have learned far more than I ever would have out of a classroom. I believe someone else said earlier that CS makes computer thinkners/scientists, NOT programmers. They were absolutely correct. The batch of CS students coming out of college (from what I have seen) are very weak in any actual programming languages. Rather they have been given just enough knowledge to say something is theoretically possible or not possible. I think its time that employers begin considering much more than just what degree a person has. I myself am heading back to college to get my Masters - not because I will learn anything new, but mostly because now is a good time to do it - and it could gain me a better job or more income in the long run. Of course, I still cant imagine where I would be if I had just jumped into programming out of high school. Oh well, the .COM era is most certainly a thing of the past....
June 6, 2003 4:20 PM
 

Ian Ceicys said:

I am invovled as an SA with Microosoft, and while I working on my CIS udergraduat degree, I can definitely say that I wish I could go about my education in a self-teaching way. I'm working on my MCSE and yet the peers that I have who aren't in college but who have studied themselves and held low programming positions daunt my skills. I'd love to help give some feedback so feel free to get intouch with me, (just remove the commas from my email address--I don't want to get anymore SPAM)
June 17, 2003 9:48 AM
 

Marc Bollinger said:

First let me say that I've got one year left of my CS degree at RIT, looking to get an MS afterwards. I agree with a lot of opinions in this thread, especially the ones (though it is quite overstated) that a computer science degree makes a computer scientist, not a computer programmer. As an interjection, let me add that I'm quite proud to be a computer scientist as well then! ;-) I did take offense however, to the assumption that everyone would be better off not entering post-grade school education and learning to program in the meanwhile. First, it really, really does depend on the institution. I remember back when I was looking at schools taking a tour of a local college (which, incidentally is extremely well regarded for engineering disciplines), and speaking with a graduating senior of his final project and thinking, "Wow, that might have taken a few weeks' worth of effort, but it's not at all conceptually challenging, and fundamentally pretty basic." In addition to the actual rigours of academia at the school, there is a myriad of other factors which come into play as to whether a graduate will be a good computer programmer, technical evangelist, etc. It's all up to the indvidual. Were you spending every waking moment (and some not-so-awake) reading, studying, wrapping your brain around complex concepts of design, and putting them to practice? Or were you playing Quake 3 all night? Beyond that, our CS department requires (or rather, emphasizes, lately the req't has been waived quite frequently) that students complete a full year's worth of discipline-oriented paid internship experience before graduation. To be trite for a second, the proof is already in the pudding there. It becomes self-evident after a few years who has been gliding through the curriculum and who's been working nights during that phase. CS students at other schools I've talked with are working as life guards and such. That's not to say that my school does it any better, as I said, many people of late have had those co-ops waived or gotten by with lesser co-ops. That's not even saying that a school with a co-op program is the only way to go to pick up real world skills, by far it's not. There are many students at many fine institutions who work very, very hard on their own software, as well as contribute to community-oriented software projects. The quote, "The batch of CS students coming out of college (from what I have seen) are very weak in any actual programming languages." is tremendously weak and too thin over so many candidates. There are simply too many individuals out there to flatly say that every Computer Science student or graduate does not have skills applicable to the real world. I'll grant you that a large proportion I've met do not, but I definitely would never define a static rule over such a wide body of persons.
June 26, 2003 11:07 AM
 

College Fun Facts » Sara Williams’ blog : CS degrees and summer skiing said:

April 7, 2008 6:07 AM
 

Colleges » Sara Williams’ blog : CS degrees and summer skiing said:

April 12, 2008 7:55 PM
 

Sara Williams blog CS degrees and summer skiing | Paid Surveys said:

May 29, 2009 7:07 PM
 

Sara Williams blog CS degrees and summer skiing | Joint Pain Relief said:

June 9, 2009 8:04 PM
New Comments to this post are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker