Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

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":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others having an uproarious good time at the Monastery: (6)
    As of 2018-05-26 16:41 GMT
    Find Nodes?
      Voting Booth?