Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
What about the guy who answers "red-black trees? Isn't that yet another theoretical CS datastructure that I'll never actually code myself, because tonnes of people have written a more efficient version already?".

If I try to store data terribly efficiently in some data structure, I'm probably be doing a premature optimization, something theoretical CS people also hate. ;-)

I mean, sure, I've got a mathematics background. In theory, I could look for some group theory to find me a nice hashing algorithm for a given problem. In practice, a sufficiently good hashing algorithm that's been coded and tested probably already exists; and it's almost certainly a waste of time to retread that ground unless I'm doing research in optimizing hash algorithms.

In general, there are three classes of CS problems - unsolved problems, on-going research, and solved problems. In general, businesses dislike betting their infrastrcture on unsolved problems and on-going research, so 99% of programmers will be dealing with solved problems. The correct solution to a solved problem is usually to download the code that solves it (if it exists), or code up the most reliable algorithm that's known to solve the problem (if no code exists yet).

Theoretical CS benefits many, many people: but that means that only a few really smart people actually need to do it. The rest of us just reap the benefits. I'm not smart enough to to PhD level cryptography, for example -- but I can certainly run the code that does, once my friends work out the algebra that underlies the algorithms.

So, in general, unless you're going to design a compiler, compiler theory isn't useful, except as an example of how to solve a complex problem. Multi-variate calculus isn't all that useful for doing the day-in/day-out work of making a billing system run. It's very useful if you happen to be working on a non-linear optimization research problem; but few of us non-PhDs are.

In general, real world knowledge is mostly what programmers need; the CS experts build tools for the rest of the world to use, and we need a lot less toolmakers than we do builders.

I guess my point is that I spent a lot of time learning the framework so that I could learn CS theory, but almost none of it applies to any job I've ever done. That's only for the Real Smart Kids (TM).

--
Ytrew


In reply to Re: (OT) Real World Skills Versus CS Skills by Anonymous Monk
in thread (OT) Real World Skills Versus CS Skills by Ovid

Title:
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 How to display code and escape characters are good places to start.
Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2024-04-24 18:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found