I'll disagree a bit with dragonchild
What I learned in the CS degree program many years ago has been very useful in my 'real' jobs. Some of those things were/are:
TMTOL - There's More Than One Language. We implemented basic algorithms - sort, search, string manipulation, tree traversals, etc. - on every language available on our system. That hands-on experience made quite clear that each language has its strong points, and that no language is best at everything. Not even Perl, though it wasn't around then :)
Algorithms - While I can't say I've read all of Knuth's works front-to-back, they have kept me from trying to reinvent the wheel or implementing poor solutions. Many (not all!) of the self-taught and 2-year degree programmers I have encountered learned "a language" or two, but not "how to program". Poor implementations of basic algorithms, lack of appropriate data structures, poor analysis, etc. plague much of their code.
Learning by Example - Whether through textbooks, peer review, or live code from existing systems, including languages and operating systems, we <it>saw</it> a <it>lot</it> of code. In a classroom setting, we had the opportunity to discuss the approaches various authors had taken and learn from them. By the time we hit the job market, we already had a feel for what might or might not work in various situations.
Teamwork - While occasionally one gets the opportunity to work independently, the vast majority of jobs are with teams. Working on class projects as teams gave us a chance to experience the interpersonal dynamics and get used to - if not beyond - the give and take and exchange of ideas. MMWINAB (Maybe My Way Is Not Always Best :)
Granted, degree programs have changed, as have teaching styles and methodologies. But IMHO, a good formal education is worth the time and money.
FWIW, I've not yet completed my BS after 20+ years, more due to lack of convenience and constantly changing degree program requirements than anything else. However, the deficit is only a few general credits: math, speech/communications. This has not been a factor so far in finding employment. Many years of consulting, including time with well known companies, along with good recommendations from previous employers, seem to mean more than a peice of paper.
Speaking as one who now is on the hiring side of interviews, certifications are not anywhere near the top of the list of priorities for a potential new hire. The MSCE certifications, for example, tell me you simply know some basics on installing and running Microsoft products, not that you have an in-depth knowledge of programming or of the many quirks and oddities of the products. It certainly does not tell me if you work well with others, could adapt to our corporate culture, or play a good round of golf (Perl or otherwise).
YMMV. Philosophical rebuttals welcome :)
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>
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
Want more info? How to link
or How to display code and escape characters
are good places to start.