“Computer Science” Versus the Real World
Why did I get into a master’s degree program? I had hoped to learn new technology, learn about the insides of existing technology and to learn and practice some advanced programming. I have been in the program for about two years now, and I can safely say that every bit of my education that has to do with recent technology, has been from work that I have done outside of school or at least outside of classes taught in school.
That is a sad revelation. I am on the second highest level of Computer Science education possible. I have learnt little in school. Where are the professors and classes that pertain to real world computing? Why are all the gurus and technology innovators outside of educational institutions? Where are the Mark Pilgrim, Phil Ringnalda, Joel Spolsky and Jakob Neilsons of the educational world? Why are we teaching classes about Ada and Cobol instead of classes on (developing) programming standards and .NET? Let me give you some examples.
I only signed up for classes which sounded interesting to me. Two of the most fun classes were advanced database systems and wireless networking. However, if I had stuck to the information taught in the class, I would have learnt very little of present technology. In our wireless networking class, we learnt about call centre routing and advanced prediction systems for wireless networks. We were told that these were the basic constructs of wireless networks and it was really important to learn before jumping into contemporary technology. I played along till there were only four weeks left in the semester. We had not talked about any present technology yet. I finally decided to make up my own project so I could learn something of consequence from the class. I did some work on 802.11b and Bluetooth co-existence problems. But where is the beef?
I could go so far as to say that if I had worked with Phil Ringnalda, Joel Spolsky and Matt Mullenweg for the past two years (instead of going to school), I would have learnt more and would be a much, much more capable computer scientist. (I already have learnt lots from them just from associating with them) My physics education tells me (and furiously prompted me) to work with the cutting edge of technology. I had been pushed to find new ideas to explore and forced to think outside the box. I worked with three seperate research projects while at The College of Wooster. All three of them dealt with cutting edge technology either from NASA or from OARDC. I was learning about things which we talked about and heard about everyday. I have compeltely missed that in my present education.
There is another arguement often used. Higher education is designed to be supplemented with real world knowledge and the more you learn outside, the richer your own educational experience. That is a load of crock coming from people that have stopped learning themselves and are unwilling to work any harder to learn the new technology and adpot it in their teaching. If a student is forced to learn everything that is worthwhile on their own time, what is the point of going to school? There needs to be some serious rethinking of education and educational objectives!
So, are we producing truckloads of “dumbed down computer scientists” (with arcane ideologies) who are supposed to lead the technological future of this country and of the world? Are computer professors and scientists worried about the usefulness of their work? Am I spending oodles of money to just get the “masters degree stamp” on my forehead? Is the computer science profession on its way out? To be replaced by the free-thinkers and self taught gurus?
I might be jaded because I went to school that is really short on money and does not have a very good computer science program. Are other Universities the same way?
12 Comments »
The URI to TrackBack this entry is: http://mindfulmusings.net/weblog/2004/03/29/computer-science-versus-the-real-world/trackback/
RSS feed for comments on this post.
Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
AMEN! Just goes to show that college is all about jumping through hoops just to get a degree. They focus more on that, then on the learning itself. But oh well at least you get the degree.
Comment by Quiet 3/29/2004 @ 1:51 pmI had a similar outlook when I was in university. The theory really is the important part. What you’ll find is that every company or organization has their own unique style of implementation and development process, so having a structured background is important.
The difference between academic and corporate software worlds in terms of process, attention to detail/quality, and timelines are almost incomparable. Unless you land a research position, you’ll inevitably spend most of your time working around other people’s problems.
If nothing else, use the time to learn to be adaptable and creative in problem-solving.
I like the new logo, by the way!
Comment by dennis 3/29/2004 @ 11:17 pmI couldn’t agree more! I could have passed nearly every one of my CS classes at Saginaw Valley State University without ever showing up. All you have to do is read the book and take the test. The profs simply regurgitate the information from the pages and don’t add any real knowledge in. So basically I wasted 4 years going to school so that I have a piece of paper saying I could pass their stupid tests. Don’t even get me started on how I think tests are such a dumb indicator of someone’s ability for something such as programming, networking, etc. Why not solely grade on projects and give students worthwhile information that they will actually use in a job somewhere?
Comment by MtDewVirus 3/30/2004 @ 8:36 pmI went to a school with an excellent computer science program (I will not say which). We had classes on algorithms, concurrent programming, distributed programming, etc. If we had had a class called “bluetooth” or “802.11b” I would have laughed, then been disgusted. A “class” about .NET belongs in a computer science program as much as a class about a particular calculator belongs in an accounting program.
It reminds me of the saying “Give a man a fish, and he eats today; teach a man to fish, and he will never go hungry” (paraphrased). Sure, classes about current technology may serve you well today, but without the fundamental theory you will eventually go hungry.
– Dave
Comment by David Gray 4/2/2004 @ 3:13 pmWell… At least the computer scientists will be able to teach the “History of Technology”.
Comment by Jason 4/24/2004 @ 10:45 amReally though, does anybody know is NC State also sucks when it comes to modern technology? I am planning on pursuing a computer science degree there, then going to Florida Tech, MIT, or Carnegie Mellon for my master’s.
I find lab experience is the best tool for problem solving.
The process:
1. Read A Little
2. Solve Some Small Real World Problem In A Lab
3. Goto Step 1.
The going to class thing is about socialization. It is great time to network with professors, staff, and fellow students. This is something that is just as important as knowledge and problem solving.
Read = Knowledge
Comment by Travis Berthelot 11/21/2004 @ 4:41 amLab/Testing/Problem Solving = Problem Solving
Class/Socialization = Networking/Find A Job/Find Friends
Computer Science (CS) involves the study of the internal workings of the computer, programming, systems programming, networking, algorithms, etc…
It seems that you were very dissatisfied with the CS program at your school. In reality, I am in a program called Information Systems Technology (ISTE) where we learn Information Systems, Information Technology, and Computer Science concepts. For instance, in our Introductory Programming class, we learn Programming History and Design, as well as a high level programming language (in my case Visual Basic .NET) We focus on concepts and theory, as well as the “real-world” applications. In CS, you are limited to learning the internal aspects of computing, and mostly shy away from applied concepts.
IST is real in terms of its program. You learn how to fish, and eat the fish, too…
Comment by IST Student 1/22/2007 @ 8:45 pmI agree with “IST Student”
If theory is not what you are interested in, maybe just major in IT or CIS.
The key is, if you can learn CS, then you can solve ANY problem. I majored in CS, and when I want to learn a new technology, I just go to Barnes and Noble pick up a book, read it, then download some software and experiment. I always find that its based on the same theory i’ve already learned, just combined in different ways.
I don’t think master’s degree CS student really needs a class to learn a new technology.
Comment by Douglass Davis 2/9/2007 @ 1:20 pmThe authors way of thinking is that schools dont teach the new technologies, E.g. the applied stuff like a class on .NET . While in undergrad, I used to think this same thing too, until I have been in industry now for a number of years. Tech college such as places like DeVry, etc tend toward teaching particular technologies: Windows server, CISCO training, wifi 802.11, .Net coding. Real programs do not do just these for a good reason. Think about the long run. If you are taught the latest greatest name brand techs, web interfaces, programming languages, etc, but have not been taught basic theory, you will get by in the short run, but will not adapt to new problems and solutions and languages in the long term. Its a pain in the butt, but learning CS and Information theory is best for building long term problem solving skills. I really think that a 70/30 or even 60/40 rule for Theory/Specific Implementation is a good balance. More theory than specifics, but you need both.
Food for thought.
Comment by Nick Yeates 5/13/2009 @ 4:57 pm