201 Comments
- klitzbtc, on 08/31/2008, -11/+95I'm a single semester away from getting my BS (incredibly appropriate acronym) in Comp Sci, and I could come up with 100 if not 1000 things to put on this list.
What I'd really like to see is hands on network and system learning, and since my field of study is Information Assurance, hands on security development and implementation.
There's too much emphasis on "programming" even in my field. Once you learn the concepts of logic, data structures, and algorithms you should be able to program in any language despite the syntax. But still I've had to take 2 Java Courses, C++, ASM, COBOL, and VB. What did I retain from them, I've never do work with COBOL or ASM, and Java is a pain in the ass.
After 4 years I'm very unimpressed with my degree, and if it wasn't for publishing research and outside work in general, I'd doubt that I could of gained anything from my time up here.
/rant - Indyanna, on 09/01/2008, -3/+73Eye contact. They should teach the CS people how to make eye contact.
- anyone4apint, on 09/01/2008, -6/+55How can you possibly teach internal company politics and relationship building at university?
Im sorry, but your university is not there to teach you how to build people skills, it is there to teach you the basic building blocks to get you into the industry and it is then upto you to figure out how to interact with people. You cannot blame your lecturers or your university or your degree becasue when you finally got a real job you suddenly have to prove yourself at far more than just writing lines of code.
Welcome to the real world. - adt41287, on 09/01/2008, -1/+35whos got two thumbs and is in the same boat as you? this guy
- znicket, on 09/01/2008, -3/+34How to actually talk to people without sounding like arrogant socially incompetent *****.
No no... I kid. I love my IT manager. (whistle) - DocHoliday22, on 09/01/2008, -1/+21"I am increasingly frustrated about not having been exposed to these three things before I entered the workforce." - Quote from a dumb guy..
I'm surprised by the number of people who say this. If you feel this way after 3 - 4 years studying then you truly are a dumbass.
You have made some mistakes:
1. Chosen a degree which doesn’t suit your needs or career ambitions. A BSc in Information Technology is not the same as a BSc in Computer Science.
2. Chosen the wrong University – You’ve gone to a University that doesn’t cater for your future ambitions, career motivations or interests and have just settled for the title of BSc Computer Science. – A BSc in Computer Science at UCL has different modules and courses to a Computer Science degree at KCL university.
3. Not enough OWN research - You thought graduating with a Degree was going to be enough to impress a potential boss with your C++ and COBOL skills you find that you don’t know how to use Rapid Implementation tools.
These are the basic mistakes people make. What you need to do is: FIND a career ambition and interest. Have some career FOCUS, KNOW what you want to do in LIFE. FIND a university that teaches enough to meet your career ambitions and interests and GO OUT AND DO SOME MORE RESEARCH AND GET A JOB FOR PRACTICAL SKILLS. - breakaway, on 09/01/2008, -7/+24@klitzbtc
You've nearly completed a 4 year degree and still don't know that "Could of" is wrong? - colincornaby, on 09/01/2008, -1/+18I think this is pretty dependent on the school. The school I'm at (Portland State) has an entire required class dedicated to "real world" programming things. It touches on development models, open source, and office politics. There's a second required quarter down the road of more of that sort of content, along with an optional open source elective that I could take.
So again, it depends on the school. I've been at another school that probably didn't have any of those sorts of classes available. - DutchGuilder, on 09/01/2008, -4/+201. Open Source? How about teaching basic risk analysis/evaluation so young professionals can choose the right tools for the job, be it open source or other.
2. Agile? How about proper systems engineering instead. Mostly Agile is bunch of failed XP refugees. Scrum, however, is promising - but mostly because it is a subset of the best practices from the broad discipline of systems engineering. Systems engineering works. It is used to manage multi-billion dollar programmes - such as building airplanes. Would you feel comfortable on an airplane developed using Agile "user stories"? I wouldn't.
3. Corporate Politics? This is very valid. Courses on organizational behavior and public speaking would benefit every new graduate.
4. Source Code Management. Everyone needs to know this before they enter the workforce and check-in code that breaks the build! - Tarantulus, on 09/01/2008, -3/+18I agree with 1. and 2. but surely 3. can be summed up in a sentence "You're IT. Everyone hates you. Even when they need you, they hate you"
- sulliwan, on 09/01/2008, -2/+16Why would you teach those things to computer science students?
I think the author meant "software engineering". - Peck3277, on 09/01/2008, -9/+23Who's got two thumbs and doesn't give a crap? Bob Kelso
- mikecap, on 09/01/2008, -1/+12Worthless article, please to be burying. Teaching Computer Science isn't about teaching corporate process or buzzwords, it's about teaching computer science. If there were more properly taught individuals in the profession, many process problems would disappear, or at least only be limited to the incompetent decisions of ill-equipped managers.
How about focusing on these actually critical areas instead, that are left out of many "degrees" awarded by lesser institutions:
1) Recursion and procedural programming languages - there is so much focus at many universities on functional programming and industry standard (and currently favored) object oriented practices that exposure to other paradigms is minimal at best. How about showing more possibilities and expanding horizons; there are so many "professionals" out there who haven't the slightest clue how to write a recursive algorithm. On that note...
2) Algorithmic complexity. Wouldn't it be nice if future professionals had a built in understanding of the ways to write code that solve problems in the most efficient manner, and were able to mathematically analyze different programming choices for best use? Walk around your tech office and ask: "what's the order of that algorithm?" and see how many blank stares you get.
3) Databases. Sounds crazy, I know. What's more pervasive in computing than managing data? And yet in a decade of my career, I almost never saw a properly designed relational database. Not in shrinkwrapped software, not in the Fortune 100, not in the biggest enterprise software systems (where data integrity is usually needed most). Pretty much nowhere. - Darkhacker, on 09/01/2008, -1/+12"Java is slow as *****."
Startup time for the JavaVM is a tad bit long, but if you're running a server where it's always up anyway, then the only thing that matters is execution performance which is very good in Java. If we look at binary-trees on the computer language shootout, Java is only 2x slower than compiled C code, and while that might not sound too great, Python is 18x slower and Ruby is 45x slower. It's interesting that I never hear Python or Ruby touted as slow when they are 10-20x slower than Java. And that's just for binary trees. For some algorithms, Java is 100x faster than these languages.
Source: http://shootout.alioth.debian.org/gp4/benchmark.ph ... - Sartori, on 09/01/2008, -1/+12None of those points are related to Computer Science. They might have a place on a degree course related to software engineering or development... but that isn't what Computer Science is supposed to be about. Even programming is largely an aside in CS, or should be.
- DutchGuilder, on 09/01/2008, -2/+12> we do basically everything in Linux from day 1, except when we need specific Windows only software. There's a big FOSS culture.
Be prepared for a shock if you enter the corporate world where Windows networks are pervasive. - dgaspard, on 09/01/2008, -0/+10@klitzbtc. I think you are looking a gift horse in the mouth. I graduated three years ago. In order to know the things "your field is" you need to understand a concept of a loop. Networks and security system don't just work. Someone has to write them.
You said now, you can learn any language. Well, then why are so upset? If you can learn in programming language, you easily learn any security or IA software package.
I really believe Computer Science biggest failing is that it doesn't enforce what it really is. Most people join thinking they are going to learn software and how to build PC towers. Then, they will graduate to become managers. - karianna, on 09/01/2008, -0/+10This actually prompted to come out of lurk mode :).
I've got both a BSc in Comp Sci and a BCA in IS and I agree with many of the posters above. Computer Science is _not_ Software Engineering and is certainly not meant to churn you out as an instant worker for 'corporate job X'. Degrees such as a BCA in Information Systems are much more geared towards having you fully prepared for the job market (they often cover Organisational Behaviour, Software Development Lifecycles and make you do 'Real World' projects) but by their very natures cannot cover the mysteries of computing like the Comp Sci degree does.
So in short, do your research, look at the courses a Degree/Major offers you then Google what the Job Market wants and hey presto you can make an informed decision about what degree program to follow. - loquax, on 09/01/2008, -1/+10One of the problems here is the whole idea of "computer science." CS is still trying to be a scientific study (much like chemistry). A B.S. in Chemistry doesn't prepare you for much else than understanding the foundations of Chemistry. You are not likely to be ready to go out and actually apply (or dare I say it) engineer a chemical process. For that you'll probably need a degree in chemical engineering.
CS (generally) is concerned with laying out the theoretical foundations of computing, not with actually building something.
What we need to have is a software engineering curriculum. Unfortunately many engineering departments do not want to acknowledge that software engineering is a legitimate engineering discipline. The IEEE has a certification (which I took) which they wanted to to explicitly call Software Engineering, but some in the EE crowd got way bent out of shape about linking the word software to engineering. - Bromskloss, on 09/01/2008, -2/+11It sounds like the author has confused computer science with programming.
- klitzbtc, on 09/01/2008, -1/+9Computer Science != English, compilers never seem to mind my horrible grammar.
- dperren, on 09/01/2008, -0/+7Politics? My current CS degree has provided plenty of that. The department thought it would be a wonderful idea for us to engage in some 'Cross site development' with another University department - one that apparently only accepts those who are mentally deficient. The end result was me and a couple of others doing the work of twelve people (resulting in me not leaving my keyboard for 36 hours except for the few obvious reasons - on more than one occasion), a mark of around 60% (for reference, the other five modules I did I averaged no lower than 75% in each), and a complete lack of acceptance on behalf of the department that it might not be a good idea: despite only about 25% of the students stating they were satisfied with the module, for at least the third year running.
End result, about 5% being knocked off my final degree, my social life being obliterated for about four months, and me deciding that the last thing I want to do is pursue a career in IT (such is the difference between Computer Science in academia and Computer Science in business), and therefore me currently being in the process of applying for another five year degree. All because of interdepartmental politics.
On the upside, it has made me realise how little I want to be involved in the IT industry, and I'm very sure that despite the huge amounts of work I'm going to need to put in in the next few years, my change of direction will be worth it. - pickypg, on 09/01/2008, -0/+6Since Law School is post-graduate (after undergrad), then you still can...
- inactive, on 09/01/2008, -1/+7The more they need you, the more they hate you.
Oh also... Doesn't Open source have enough problems right now as it is??? I mean, encouraging kids to go into writing free software who dont really have the passion to do it themselves... It just going to mean there are a whole bunch of noobs around calling for a total rewrite... even more so than it is now... If anything, young programmers need to be taught humility, after all these years I am still running into young programmers who have these bizarro distortions about how much work they can do in a given amount of time... - Maurik, on 09/01/2008, -1/+6A good university will expose you to the real world as well as teaching you. In the 3 years that I'm into my degree I have had a LOT of exposure to real life business situation - all part of my degree.
If I didn't have any of that, I would indeed be blaming my degree. - pegisys, on 09/01/2008, -1/+6That is what internships are for. You learn the skills in college and get an internship for real world experience then by the time you graduate you should be prepared for what ever comes your way.
- DeFex, on 09/01/2008, -0/+51: control
2: alt
3: delete - satanguy, on 09/01/2008, -0/+5building an aeroplane should have a different process to building a web application...
- RealityMonster, on 09/01/2008, -1/+6The game studio I work for uses Visual Studio. When I first started there, I tried using it, but eventually went back to using emacs. 7 years later, I'm still using emacs.
Visual Studio is easy to learn. It's just an editor. It has a compile button at the top. You're selling yourself short if you're applying for jobs at places that'll turn you down because you're using the wrong code editing tool. Seriously. They shouldn't care if you're doing it in notepad, as long as the quality of your code is good. - Scaryclouds, on 09/01/2008, -1/+6Not ever development department uses VS. Where I work we use Eclipse. A lot of the freelance web design I did I use Dreamweaver (yes I know it's not an IDE), there are numerous other IDEs out there that are commonly used. I'm not arguing against learning Visual Studio (learn it if you get a chance), just that knowing Visual Studio is not the end all be all of programming that you are suggesting.
- klitzbtc, on 09/01/2008, -0/+5Well okay, so instead of teaching me 3 different type of OO languages, wouldn't it make more sense to teach the concepts of the top 3 systems of programming?
- pickypg, on 09/01/2008, -0/+5As others are saying, CS is not Software Engineering, even though that is the overall goal for most curriculum's.
The best schools, in my opinion, are the ones that require an internship before they allow you to graduate, or at least encourage them through course credit. If you want real world experience, then the closest thing you will get to it, while a full time student, is a summer internship. - d3dm, on 09/01/2008, -0/+54. Learn a foreign language. And for most CS grads today, this should probably be English.
- simmons, on 09/01/2008, -0/+5I'm studying in Vienna, Austria CS and we can completely choose what we want to learn, except for some introductory classes which are mandatory. There are classes from any field we can choose from, we see appropriate. So everyone gets the education they want. But you have to know which courses you should take ;)
- DutchGuilder, on 09/01/2008, -1/+6> How can you possibly teach internal company politics and relationship building at university?
Courses on "organizational behavior" do just that. Unfortunately, they are usually available only to MBA students. - RealityMonster, on 09/01/2008, -0/+5CS taught me all the reasons why I should hate C++. :/
It's a really common language, and a lot of people use it -- even like it -- but it's a big frickin' hammer. The spec is hundreds of pages long (compare that to C's spec, which is barely a booklet), and until a few years ago, nobody had written a parser that was capable of fully encapsulating the spec. It was so bad that a lot of compiler writers were convinced that there was a bad recursion in the spec that actually made parts of it mutually exclusive.
Template programming is powerful, but it's all found art. They didn't design templates to do all these wonderful things, it was experimental programmers that came up with all these amazing (and in some cases, unbelievably awful) ideas. Sure, templates are powerful, but that's because it's a Turing complete language in and of itself. If I bolted Ruby to C, that would be powerful, too. Templates and generic programming are a response to a problem that shouldn't have existed in the first place. Smalltalk, Objective-C and Java all manage to do some form of generic programming without resorting to such heavy handed tactics.
A friend of mine once said of C++: "The design philosophy of C++ is to never make you pay for anything that you don't use. As a result, there's nothing actually worth paying for." This is probably the most true statement I've ever heard of the language.
Seriously, I could go on all day about this. I use C++ every day, and every day, I'm more convinced that the best way to use C++'s features is sparingly. Otherwise, you're just spooling out more rope to hang yourself with. - publiclurker, on 09/01/2008, -0/+5Sounds like a Microsoft Certified Reboot Engineer.
- TehDoctor, on 09/01/2008, -0/+4***** Visual Studio. It's a bloated, buggy piece of garbage.
- wigry, on 09/01/2008, -0/+4CS is not for everybody and I can hardly imagine a person interested in history or marketing while still being excellent in CS.
I would recomment other way around. Get a good CS foundation and then later take some business management as well. It helps in real world. - philhatesyou, on 09/01/2008, -0/+4If you wanna write ***** little business applications, then there's a little ***** degree at your local university's business college: CIS. Go for it. Leave CS to people who want to learn the theory behind computing.
- omgwtflawl, on 09/01/2008, -0/+4That sucks. My school taught us java as an introductory language, then a little bit of C++. We also had a course that taught us how to learn languages by trying a whole bunch of them. But after that, we were expected to learn any language used in a course we took on our own. So if you were in an AI course that required Lisp, and you had never seen Lisp before, too bad. Buy a book and learn it.
The emphasis was really on the underlying concepts, not on the languages themselves. - mdoom, on 09/01/2008, -0/+4I just got my degree, and luckily I was able to have classes that included functional languages. Actually ML was one we used.
They taught us all major styles of languages. Wanted us to be able to pick up any language when needed, and lucky for me, that has been the case. Started a job and was able to pick up COBOL quickly and have become an effective Analyst. - vonskippy, on 09/01/2008, -0/+4#1 - Teach the native language of India (hindi).
#2 - Teach basic survival skill (like how to make 2 packs of Ramen Noodles last a whole week).
#3 - Teach basic psychology (especially self analysis - why do you feel the need to punish yourself, why do you think you don't deserve a good life, etc.) - N01SE, on 09/01/2008, -1/+5One really good course that should definitely be a part of the curriculum is Computer Graphics, most schools have this as a concentration but not required, and it amazes me how many computer professionals do not understand the GPU and how display devices work. Even people in web dev do not understand how browsers actually render elements, it's insane. Computer graphics scare most off because it is one of the most mathematically rigorous fields in CS. Seasoned game engine programmers are probably the brightest computer scientists/software engineers you can find.
#1 is stupid, open source is not a software process nor a concept of computer science it is simply a type of software, the opposite of proprietary software. Open source development is simply allowing source access, letting anyone who wants to contribute to do so, reviewing their contributions, and scraping or integrating them based on the review (there it is in one sentence you don't need to pay $1000 for it in a classroom)
#2 is actually taught in curriculums which focus on software development as an engineering profession more so than a science.
#3 is something every degree should have but will never be an emphasis, you learn most everything once you get out in the real world, school is only for laying a solid foundation so you can learn quickly and grow as a professional. - skipunk, on 09/01/2008, -0/+4I think that the author of this article should have studied software engineering instead of computer science. In my opinion, there is too much of this 'real world' stuff coming into computer science degrees as it is. I think computer science should focus on the science. Let the students experiment and research different approaches, methodologies, and programming languages, instead of always pushing the 'industry standard'. Let them work on stuff that 'might not be pratical' right now, but it atleast exposes them to different ideas and research they would otherwise not have seen. IMO an average student should be able to adjust fairly quickly when entering the workforce
I am not against teaching the most popular languages (java,c++,C#) in university, as its good for students to be exposed to them, but, if you ware going to school to only learn how to be agood worker in the corporate world, I would say take software engineering, IT, or a programming diploma at a college, instead of computer science. - SpamBuntu, on 09/01/2008, -0/+4true, java runs slower, but offers many higher-level features, like garbage collection (no need to hunt stinky void* with debuggers, to 'remember' to free memory).
if software development was only about speed, people would develop web applications in assembler ;) - SirVizor, on 09/01/2008, -2/+6I am a full time lecturer at RMIT, VN. I am responsible for the Software Engineering Fundamentals class. I teach Scrum (from day one) and have daily scrum meetings. I do cover some company politics and team building. I don't specifically bring up Open Source Development but do encourage the kids to build their own solutions to "offer to the market." I think next semester I'll include a little more on Open Source.
- fas2, on 09/01/2008, -0/+4You don't study computer science to learn a few languages. That is something you can and should do on your own.
Few people have said it here already: Computer Science is not programming / software engineering. - SpamBuntu, on 09/01/2008, -1/+5"...and Java is a pain in the ass"
want develop serious web services using VB or C++? ;) - dcmcderm, on 09/01/2008, -0/+44. Profit
-
Show 51 - 100 of 203 discussions




What is Digg?
Digg is coming to a city (and computer) near you! Check out all the details on our