http://www.perlmonks.org?node_id=134277


in reply to (Ovid) Re: (OT?) Usefulness of CS
in thread (OT?) Usefulness of CS

While it's hard for me to say how useful a CS degree would be (high school dropout 'cause of Math of all things... ), I don't think by any means it's a necessity. I've met plenty of CS Majors that were bigger hacks than Danielle Steele.

I don't think anything is a replacement for experience (and books). With the abundance of computing power today, it's really easy to churn out bloated code that merely functions. This has it's place in some limited situations, but it's also why even though PC's are 20 times faster than 6 years ago, the actual performance gains lag far behind. (Windoze anyway). On the other hand, "Premature optimization is the root of all evil."

Slightly OT, I think the fundamental picture of PC Computing is lost on many a college student. I think a great project for someone new to computing would be to have write a game or some similarly complex simulation on an old 386/486 (or something with constraints) that was way too ambitious to actually run on such an old system.

They would get their hands dirty. Once they got it running (slowly), they'd be forced to look at the efficiency of their algorithms. Once that was tweaked, they'd have to turn to look at the operation of the system itself for further speed, then finally, compromise features. I can only speak from my own experience but these are issues that come up quite routinely in the programmers line of work and are hard to teach from a book.

I also think every programmer should do some assembler, at least for awhile. While it's tedious as hell, it gives you a great feel for what is actually going on under the hood.

my $two_cents && 'Happy Holidays';

-Lee

Replies are listed 'Best First'.
Re: Re: (Ovid) Re: (OT?) Usefulness of CS
by jlongino (Parson) on Dec 26, 2001 at 14:35 UTC
    First, let me say this is not a rant at shotgunefx. I replied to this post because it hit several topics that I wanted to touch on. I don't think anyone disputes the fact that college systems turn out an inordinate number of hacks, whether CS or literary. I also doubt that many would dispute that there are a goodly number of bad CS and Literary university programs.

    However, some of these examples listed above actually represent the basics of any decent CS curriculum:

    • CIS students on a systems information track usually have to write a multitasking operating system simulation. I had to do this in Advanced Operating systems.
    • <OLDFART>I was in college from 1983-1987. When I graduated, we still had IBM PC Jr.s in the PC labs and an IBM 4341 mainframe with 8MB of core memory. Do you think that the scope of our assignments were limited because of the hardware constraints? Mind you there was no such thing as CPAN back then, we had to write everything from scratch using the quaint data structures Ovid mentioned.</OLDFART>
    • Students in the systems information track were also required to take Compiler Construction and Design. I was exempted from this because I requested to take a graduate course in Artificial Intelligence instead. My project was a 3d tic-tac-toe game on a 5-by-5 cube. with graphics.
    • Assembler was required for all CS majors and was a prerequisite to Data Structures. Digital Logic, required for systems information, also provided valuable insights on how computers work.
    One of the points I'm trying to make is that universities are a lot like computers: Garbage in, garbage out. Those that apply themselves and learn the required material will benefit from a college degree.

    Colleges do provide the opportunity for real hands on (paid) experience for their students, it called co-op. I had one friend that worked with the local Corps of Engineers and two at QMS (Quality Micro Systems) R&D. One is currently upper management at Adobe.

    People should also consider the fact that most intelligent college students do more than just attend class and do homework. Some work, have families, belong to professional organizations and also find time to further personal projects or research as well (computer related or not).

    Here are some interesting statistics lifted from here:

    Table 1. Highest level of school completed or degree
             received, computer programmers, 1998
    
        Level completed                                  Percent
        ------------------------------------------       -------
        High school graduate or equivalent or less          10.6
        Some college, no degree                             20.5
        Associate degree                                    10.2
        Bachelor’s degree                                   45.3
        Graduate degree                                     13.4
    
        About 3 out of 5 computer programmers had a bachelor’s
        degree or higher in 1998 (see table 1). Of these, some hold a
        degree in computer science, mathematics, or information
        systems, whereas others have taken special courses in
        computer programming, to supplement their study in fields
        such as accounting, inventory control, or other areas of
        business. As the level of education and training required by
        employers continues to rise, this percentage should increase
        in the future.
    

    --Jim