Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

First of all, taking this at face value, I think you're comparing apples and oranges. Computing science is about creating software. Literary criticism is not about writing stories, it's about appreciating and understanding the literature that's already there.

Now, since I read this as a veiled attack on computing science, let me respond to that.

A good grasp of computing science is absolutely essential for a serious programmer. Notice that I did not say that a CS degree is essential; I'm talking about concepts and understanding, not paper credentials.

CS, as distinct from software engineering, is about the theory of making computers do exactly what you want them to. That means stuff like big-O notation, algorithmic analysis, a proper understanding of the various paradigms of programming (as opposed to: "Object oriented? You mean Java?" and suchlike), and the theory of all the "practical" aspects of programming. You can pick this stuff up from books, probably even from experience (which is how it was done originally, of course), but the easiest way of getting it is by taking a CS degree.

A programmer with a good understanding of CS will not spend hours trying to save two cycles in the inner loop of an O(n^2) sort; he will spend twenty minutes replacing the bubble sort with heapsort. For that matter, he won't spend hours trying to re-code an exponential-time algorithm as a polynomial-time algorithm if the problem is NP-hard (well, not unless the object of the exercise is to prove P=NP). A "self-taught" programmer with no grasp of CS might design and set up a database, but won't be able to normalize it, and will end up with redundant (and probably inconsistent) data. He'll write two hundred lines of procedural code to solve a problem that could be expressed in ten lines of functional code... or two lines of declarative code. And so on.

In short, I think you're full of it. Computer science is as useful for writing good software as a sense of plot, character, and eloquence is for writing a good story.

See also Why Theory Doesn't Suck.


In reply to Re: (OT?) Usefulness of CS by FoxtrotUniform
in thread (OT?) Usefulness of CS by social_mandog

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (2)
As of 2022-10-03 18:48 GMT
Find Nodes?
    Voting Booth?
    My preferred way to holiday/vacation is:

    Results (15 votes). Check out past polls.