Ruby certification

On Dec 8, 2007 5:47 PM, Giles B. [email protected] wrote:

such a stupid thing will be created by greedy people willing to take
of people’s stupid push.

I think it’s only fair to post insanely ungrammatical English if you
don’t speak regular English.


Giles B.
I am not Austin’s friend and I can understand your complaints about
his language, but he spoke out of my heart I have to admit, this is
one issue that can outrage me too :(.
R.

http://ruby-smalltalk.blogspot.com/


All truth passes through three stages. First, it is ridiculed. Second,
it is violently opposed. Third, it is accepted as being self-evident.
Schopenhauer (attr.)

On Dec 8, 2007, at 1:30 PM, cruiserdan wrote:

The requirements for various bits of fancy paper is a fact of life.
Even well-intentioned technically proficient managers may find they
are required for their firm’s due diligence process.

Thus, our (the Ruby community) goal should IMHO be to identify one or
more good certs and support them. When someone comes in asking which
cert is the best, that is a great opportunity for us to influence the
situation.

When I was on the Agile Alliance board, I wrote a position statement
for it on certification. http://www.agilealliance.org/show/1796 The
key sentence is “employers should have confidence only in
certifications that are skill-based and difficult to achieve.” Laurent
Bossavit and I are (learning Rails by) working on a website to try and
establish the kind of “web of trust” that allows people to vouch for
each other. We’re just barely at a minimally useful deployment (it’s
not even running on Mongrel yet), but whattheheck:
<http://wevouchfor.org/

If we can get a non-laughable number of people certifying each other,
we’ll be ready to revamp the site to make it appealing for people
looking to hire other people.


Brian M., independent consultant
Mostly on agile methods with a testing slant
www.exampler.com, Exploration Through Example, twitter.com/marick

If we can get a non-laughable number of people certifying each other,
we’ll be ready to revamp the site to make it appealing for people
looking to hire other people.

I think that’s a good idea. workingwithrails.com comes from a similar
point of view. I usually fill out the absolute bare minimum of
necessary info on a social networking site, but I discovered today
that I’m definitely the exception, at least on that site. people are
using it a lot.

LinkedIn does something similar too, but it’s kind of too formal to
take seriously. (somewhat like certifications, wow, somehow kept the
whole thing relevant.)


Giles B.

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com

On Dec 8, 2007 2:05 PM, Grabber [email protected] wrote:

certification the developer sign-in in a web site, and submit a project.
engineer student at maua.br
Brazil - São Paulo

I’m kind of with Austin here. Mostly because I’ve seen the IT world
dive right into certs that prove no capability whatsoever. My
favorite story involves a guy who spent a reasonable sum of money to
get Cisco certified only to become mortified later that his
credibility was a far more important currency. Certs don’t really
make for a good litmus test. I’m not a manager or employer, but I can
tell you who I would hire just from reading this email list; and no,
it has nothing to do with being white or having an Ivy League
education.

My 2c.

Todd

I’m kind of with Austin here. Mostly because I’ve seen the IT world
dive right into certs that prove no capability whatsoever. My
favorite story involves a guy who spent a reasonable sum of money to
get Cisco certified only to become mortified later that his
credibility was a far more important currency. Certs don’t really
make for a good litmus test. I’m not a manager or employer, but I can
tell you who I would hire just from reading this email list; and no,
it has nothing to do with being white or having an Ivy League
education.

I think certs are silly, but I also think criticizing the original
poster for seeking one is jumping the gun.


Giles B.

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com

Gregory S. wrote:

Back to the topic at hand, though, what are your reasons for getting a
certification?

Do you think you’ll learn more that way than learning on your own? You
might, but that isn’t a good reason to list it on your resume or bring it
up in an interview.

I think a cert like any degree is a talking point. I have a B.S. in
Computer Systems Engineering and an M.S. in Computer Science and will
add my UW certificate experience to my resume because it opens a line of
conversation with the interviewer. If I were a job seeker, I would want
them to know what I’ve done and for them to ask questions about my
experience. If I am applying for a Ruby programmer position, why would I
want to shoot myself in the foot by not listing including my UW Ruby
certificate? I want the HR person to say, “Check this resume out.”
because they are the ones screening resumes and are looking for degrees,
certs, and other “keyword” matches. This gets me in the door. Now any
smart company will perform due diligence with a true technical interview
that will assess knowledge, abilities, personality, fit and anything
else relevant. If they don’t do their due diligence and hire someone not
really qualified, well then they get what they deserve.

Do you think it might come in handy as a backup or safety net? Maybe, but
you’re probably better off investing your time and money in learning as
much as possible rather than taking a test and paying for a piece of paper.

I agree that the paper based “I took a 3 hour test at the [fill in the
name] testing center and passed and now I’ve got my certification” is
completely shallow. Not all certifications are equal though. The UW
certification I detailed in my original post is 90 hours of classroom
instruction over 8 months. I’m only a third of the way through and I’ll
be releasing my class project as a gem in the next few weeks after the
first quarter (of three) wraps up. I sense a real hostility by a lot of
people on certs in general without making the distinction of what I’ll
distinguish as the test based cert versus the experience based cert.
Admittedly, the experience I’m getting as I pursue my UW cert is not the
same as someone who codes Ruby daily for a living but it should not be
completely discounted either.

Another way I choose to look at it is on a standard double sided resume,
there are about 100 lines of text. Three to five lines of that is
probably devoted to degrees and certs with 75% of the remainder
dedicated to work experience. Clearly if a cert is listed but has no
relevant work experience tied to it, that also says a lot.

Regards,
Jim

On 12/9/07, Jim C. [email protected] wrote:

smart company will perform due diligence with a true technical interview
that will assess knowledge, abilities, personality, fit and anything
else relevant. If they don’t do their due diligence and hire someone not
really qualified, well then they get what they deserve.

Let me try to state this a different way. We recently had someone who
interviewed where I work and he claimed to be (among other things) a
Ruby expert. Since I am a Ruby expert, I was involved in the
interviews with this guy. (We’ve since hired him, because he checked
out.)

But you know the very first thing that I did? I Googled him. I was
able to find examples of code that he’d written (not Ruby, but other
languages). I went into the interview armed with knowledge about him
far better than any certificate would provide.

The 90 hours of classroom work that you’re spending for a certificate
could be spent working on an open source project and contributing code
that would help others and help you forge something even more valuable
than a certificate: a reputation. And that is something that will
matter to me when I’m involved in hiring far more than any certificate
ever will.

I think your UW cert will be better than most crap certs out there,
based on what you’ve described, but I still don’t think it’s the best
use of your time or money, compared to shipping open source
projects.

-austin

2007/12/8, Robert D. [email protected]:

On Dec 8, 2007 5:47 PM, Giles B. [email protected] wrote:

such a stupid thing will be created by greedy people willing to take
of people’s stupid push.

I think it’s only fair to post insanely ungrammatical English if you
don’t speak regular English.

I am not Austin’s friend and I can understand your complaints about
his language, but he spoke out of my heart I have to admit, this is
one issue that can outrage me too :(.

Which one, the bit about greed? If so: it always takes two to
tango… :slight_smile: If people are willing to pay for something, being as
stupid as it may be, why not make money from it? There are a lot more
harmful ways to spend money on superfluous things than training - at
least if they don’t involve a 1000+ miles air travel.

Kind regards

robert

PS: My personal view of certificates: rather cold blooded. If I
interview someone, I take them into the mix but I certainly do rely
more on what answers I get to technical questions about the area of
interest.

2007/12/9, Austin Z. [email protected]:

Let me try to state this a different way. We recently had someone who
interviewed where I work and he claimed to be (among other things) a
Ruby expert. Since I am a Ruby expert, I was involved in the
interviews with this guy. (We’ve since hired him, because he checked
out.)

But you know the very first thing that I did? I Googled him. I was
able to find examples of code that he’d written (not Ruby, but other
languages). I went into the interview armed with knowledge about him
far better than any certificate would provide.

But then again, you’re probably also an interviewing expert. There
are probably more people around interviewing whose Google-Fu would not
have brought them that far. :-))

Cheers

robert

On Mon, Dec 10, 2007 at 11:24:50PM +0900, Robert K. wrote:

far better than any certificate would provide.

But then again, you’re probably also an interviewing expert. There
are probably more people around interviewing whose Google-Fu would not
have brought them that far. :-))

…which falls under places I probably don’t want to work. If they can’t
be
bothered to Google me, it probably isn’t somewhere I’d be happy.

Remember that an interview cuts both ways. You may be trying to convince
a
potential employer that they want you to work there, but they’d better
be
selling you on the job and the environment. When they “end” the
interview
with “Do you have any questions for me?” you should be doing the same
thing
they were doing: asking questions to which the answers will determine
whether you should work there. (The questions asked by both sides are,
of
course, additional pieces of information for that determination.)

It’s pretty common to think of job seeking and interviewing as one-sided
affairs, where the candidate humbly submits him-/herself for
consideration
and desperately tries to convince the powerful employers that he/she is
more worthy than the other candidates. This is crap. If you are actually
in
this position you have already done something wrong.

Part of the reason for working on/with leading edge technology is to be
in
demand. The market for Java or .NET programmers is largely saturated,
and
typical (note I said typical, not all – your anecdotes have no power
here)
compensation and working conditions are what they are because of
simple supply and demand economics. Other pressures level the field to
an
extent, in that differences in competence have a relatively small effect
on
compensation and working conditions. Likewise, with demand
outstripping supply for Ruby (and particularly Rails) developers, I can
expect to find work I like with compensation and working conditions to
my
liking because I can pass up less appealing opportunities without
running
out of options. As long as you are competent and can show your
competence,
the same applies to you; certifications won’t help with that.

Cheers
robert
–Greg

Gregory S. wrote:

out of options. As long as you are competent and can show your competence,
the same applies to you; certifications won’t help with that.

Well … such “demand outstripping supply” tends to evaporate rapidly,
and someone who wants to ride the waves needs a pretty good sense of
where things are going and be able to become a world-class user of new
technologies very quickly. I think I can pretty much name the top twenty
to fifty Ruby programmers in the USA, and the projects they’re working
on. Unless you’re one of them, expect to find that it’s an employers
market.

And Austin, you’d be one of them if you came back to the USA. :slight_smile:

2007/12/10, Gregory S. [email protected]:

languages). I went into the interview armed with knowledge about him
far better than any certificate would provide.

But then again, you’re probably also an interviewing expert. There
are probably more people around interviewing whose Google-Fu would not
have brought them that far. :-))

…which falls under places I probably don’t want to work. If they can’t be
bothered to Google me, it probably isn’t somewhere I’d be happy.

:slight_smile: I did not want to seriously defend certificates (mind the smiley).

Remember that an interview cuts both ways. You may be trying to convince a
potential employer that they want you to work there, but they’d better be
selling you on the job and the environment. When they “end” the interview
with “Do you have any questions for me?” you should be doing the same thing
they were doing: asking questions to which the answers will determine
whether you should work there. (The questions asked by both sides are, of
course, additional pieces of information for that determination.)

Of course.

It’s pretty common to think of job seeking and interviewing as one-sided
affairs, where the candidate humbly submits him-/herself for consideration
and desperately tries to convince the powerful employers that he/she is
more worthy than the other candidates. This is crap. If you are actually in
this position you have already done something wrong.

Part of the reason for working on/with leading edge technology is to be in
demand. The market for Java or .NET programmers is largely saturated, and
typical (note I said typical, not all – your anecdotes have no power here)

Actually, although there are plenty Java developers around, it’s still
hard (at least around here) to find someone which is either a) good or
b) has the skills you need. But that’s the same with every topic:
quality is rare and expensive. :slight_smile:

compensation and working conditions are what they are because of
simple supply and demand economics. Other pressures level the field to an
extent, in that differences in competence have a relatively small effect on
compensation and working conditions. Likewise, with demand
outstripping supply for Ruby (and particularly Rails) developers, I can
expect to find work I like with compensation and working conditions to my
liking because I can pass up less appealing opportunities without running
out of options. As long as you are competent and can show your competence,
the same applies to you; certifications won’t help with that.

Exactly.

Kind regards

robert

On 9 Dec 2007, at 15:36, Austin Z. wrote:

projects.
I think it depends what your goals are. Are you primarily trying to
learn a language well or are you trying to make yourself more
employable?

Shipping open source software is invaluable for confronting and
overcoming real-world problems. But the projects you work on may
well not expose you to the breadth of the language. You’ll probably
end up learning a great deal about a subsection of the language.

A well-designed course (certificate or otherwise) should cover the
breadth of the language, or at least the theoretical side of it.
You’ll probably end up learning something about most of the language.

I wouldn’t rely on someone who either only wrote software without any
theoretical understanding of the language or who only studied the
language but never shipped software.

It’s similar to scientists: is an empiricist better than a
theoretician, or vice versa? I’d say both theory and practice are
worthwhile in their own right – and the combination is even better.

So I think it’s wrong to dismiss studying out of hand. A
certificate’s syllabus may (hopefully) be the most methodical way to
cover the background knowledge that underpins effective software
development.

Regards,
Andy S.

Austin Z. wrote:

projects.

The same could be said for every training program out there. For
instance, let’s look at David Black’s announcement today for
“Introduction to Ruby on Rails” and “Advancing with Rails”. Each course
is 5 days long and costs $1,770 (or $1,550 early bird). So, for 80 hours
(maybe only 70 hours if there is a lunch hour each day) of classroom
instruction, it costs a minimum of $3,100 or $3,540 for
procrastinators. You walk in on Monday, and 12 days later on the
following Friday you walk out with head crammed full of Rails info.

Do you think that is any better than 90 classroom hours spaced out over
8 months with another two or three hundred hours spent on homeworks /
projects to slowly digest the material? I don’t hear you or anyone else
talking about “crap training” (which I’m sure David’s is not) or how
those student’s time or money would be better spent on shipping open
source projects and building their reputation.

Properly done, certification encompasses training and ensures all
students have a base proficiency of fundamental Ruby and/or Rails
concepts. That is what UW does and why it is not just a paper cert. I am
enrolled in the UW program because I want to learn the language better
and not be sitting in front of a debugger tracing other people’s buggy
code (which I’ve done and submitted a bug fix on RubyForge for Ruby
DBI).

Both classroom instruction and contributing to open source projects are
valuable ways to learn the language. I just don’t think it is up to you
to decide what is the best use of my time or money :slight_smile: .

Cheers,
Jim

On Dec 10, 2007 12:28 PM, Jim C. [email protected] wrote:

use of your time or money, compared to shipping open source

Do you think that is any better than 90 classroom hours spaced out over
8 months with another two or three hundred hours spent on homeworks /
projects to slowly digest the material

I don’t know what Austin would say, but I think so. I have every bit
of respect for what Mr. David Black does for the Ruby and also the
Rails community. So, I would take his classes. Not for credit, but
for knowledge.

I don’t hear you or anyone else
talking about “crap training” (which I’m sure David’s is not) or how
those student’s time or money would be better spent on shipping open
source projects and building their reputation.

I think some people are thinking that until you actually do
something, you are full of that stuff that comes out your bottom. By
the use of the word “you” I mean people in general, not you
personally.

to decide what is the best use of my time or money :slight_smile: .
Well, nobody is deciding that. But, if you were the person hiring
someone to help you on something very important, would a cert matter
at all?

Cheers,
Jim

Cheers,
Todd

Austin Z. wrote:

procrastinators. You walk in on Monday, and 12 days later on the

already explored (and written serious programs in) a dozen languages.
These courses are as much about how to think about programming as they
are about programming. They don’t claim to make you a better
programmer; they claim to make you think about how to approach a
problem differently. (At least, that’s my take.)

I would have an issue if they started issuing “certificates.”

My issue is not with training; my issue is with training that “leads”
to a certificate.

I don’t have a problem with the certificate designation because I
understand that it means that a person should have certain fundamental
knowledge just like a Computer Science degree should indicate the person
has basic programming skills. Having a degree or certificate in no way
guarantees that the person is a good programmer and there are numerous
examples where the best programmers had neither.

As for training, it shows absolutely nothing. Someone could go to
David’s classes and fall asleep with no consequences except that they
wasted their money or their employers. At least with the UW certificate
program, you have to hand in homework assignments that Ryan D. grades
and gives feedback on to keep people on track. Hence, there is certain
level of participation and achievement that training does not ensure. If
you don’t show up to class, don’t turn in assignments, and don’t make an
effort, then you don’t get your certificate.

Don’t get me wrong about training though, if I had an extra $5+k to pay
for David’s classes, airfare and hotel, I’d be there :slight_smile: . For me, $600
every third month is a much more affordable training payment plan.

wouldn’t look on a cert – especially a cert for Ruby – positively.

I agree that people should be hired on ability and not just because they
have a cert, degree or any other piece of paper in hand.

A cert however can very well be placed at least on equal grounds as
training for the points I note above but it depends on the cert program.
Paper certs show nothing except someone crammed for an exam and passed.
The UW cert provides reasonable assurance that the student was awake and
could finish the assignments. In fact, the UW cert is earned by
completing graded Ruby programming assignments instead of a one-time
exam. Hence, you need ability to get a UW cert, not just knowledge.

Regards,
Jim

On 12/10/07, Todd B. [email protected] wrote:

Do you think that is any better than 90 classroom hours spaced out over
8 months with another two or three hundred hours spent on homeworks /
projects to slowly digest the material
I don’t know what Austin would say, but I think so. I have every bit
of respect for what Mr. David Black does for the Ruby and also the
Rails community. So, I would take his classes. Not for credit, but
for knowledge.

That’s a tough question, actually, because I’m trying to convince my
bosses to send me to the Erlang pragmatic workshop. I don’t care if I
learn Erlang out of it, but I’m going to come back with different ways
of thinking about how I currently program.

I think that what’s different, Jim, is that there’s also a distinct
difference of a non-programmer learning to program (for which a longer
course is probably better because there’s more involved) and a
programmer learning another language. By time I came to Ruby, I’d
already explored (and written serious programs in) a dozen languages.
Ruby itself wasn’t that hard for me to wrap my head around.

In some ways, I think that what David does is useful, but not
necessarily for the reasons that people think. (I have taken a number
of professional courses, including an interesting Java one with
someone of Mr Black’s stature that had been involved in writing an
early C compiler. Interestingly, with that Java course, I’d managed to
teach myself everything I would have learned in the course before the
course was actually presented at the company.)

These courses are as much about how to think about programming as they
are about programming. They don’t claim to make you a better
programmer; they claim to make you think about how to approach a
problem differently. (At least, that’s my take.)

I would have an issue if they started issuing “certificates.”

My issue is not with training; my issue is with training that “leads”
to a certificate.

Both classroom instruction and contributing to open source projects are
valuable ways to learn the language. I just don’t think it is up to you
to decide what is the best use of my time or money :slight_smile: .
Well, nobody is deciding that. But, if you were the person hiring
someone to help you on something very important, would a cert matter
at all?

I said what I said because I’d never hire based on a cert, and
wouldn’t look on a cert – especially a cert for Ruby – positively.
I’d look primarily for shipping code and the ability to prove to me
that your knowledge is solid.

A cert doesn’t show any of that; training and experience do. Like I
said above: my issue is with the whole idea of certs. At best, they’re
useless as indicators of anything; at worst, they’re scams. (And yes,
much the said can be said of university degrees. I think there’s a
difference, but less than most people think.)

-austin

On 12/10/07, Jim C. [email protected] wrote:

My issue is not with training; my issue is with training that “leads”
to a certificate.

I don’t have a problem with the certificate designation because I
understand that it means that a person should have certain fundamental
knowledge just like a Computer Science degree should indicate the person
has basic programming skills. Having a degree or certificate in no way
guarantees that the person is a good programmer and there are numerous
examples where the best programmers had neither.

Ultimately, the problem is one of wishes and horses. It may differ in
the rest of the world, but certificates in the U.S. and Canada are
essentially worthless, and it’s greedy vendors’ fault in large part.
Sorry.

I’ve worked with too many “certified programmers” from “technical
colleges” (e.g., DeVry) that were hired because they had that
certification.

As for training, it shows absolutely nothing. Someone could go to
David’s classes and fall asleep with no consequences except that they
wasted their money or their employers. At least with the UW certificate
program, you have to hand in homework assignments that Ryan D. grades
and gives feedback on to keep people on track. Hence, there is certain
level of participation and achievement that training does not ensure. If
you don’t show up to class, don’t turn in assignments, and don’t make an
effort, then you don’t get your certificate.

Yes and no. You’ve said the first thing that makes me think that the
UW program you’re talking about isn’t a waste of time, money, and
effort: that it’s taught by Ryan D… The reason? The man has a
reputation that’s well-earned and well-deserved. If anyone else
teaches the program, that reputation disappears along with Ryan—unless
there’s someone with equivalent reputation doing it.

Still, it reinforces my point: your certificate is going to have value
because of who is mentoring you during the process. NOT because it’s a
piece of paper. I’d still feel more comfortable hiring someone with a
visible reputation of open source contributions. It’s not the piece of
paper (the certification) that has value; it’s the process. If that
process changes, the value evaporates.

A cert doesn’t show any of that; training and experience do. Like I
said above: my issue is with the whole idea of certs. At best, they’re
useless as indicators of anything; at worst, they’re scams. (And yes,
much the said can be said of university degrees. I think there’s a
difference, but less than most people think.)
A cert however can very well be placed at least on equal grounds as
training for the points I note above but it depends on the cert program.

Very much depends on the program at the time that you completed the
program
. (I personally wouldn’t trust a program that had me teaching
it; I just don’t have the patience required to be a good teacher. I’m
a good mentor, but not a good teacher. There’s a difference.)

Paper certs show nothing except someone crammed for an exam and passed.

Yet this is exactly what the OP was asking for: is there a cert
available for Ruby. Most people aren’t interested in taking 6–9 months
to get a piece of paper (sadly). Even with your cert, it doesn’t
mean anything_real until it’s clear that you were learning from
one of the preeminent voices about Ruby.

Certs, by and large, are scams. That’s not to say that there aren’t
good processes and programs, but those speak to the quality of the
programs, not the pieces of paper you get from them.

-austin

On Tue, Dec 11, 2007 at 02:09:37PM +0900, Austin Z. wrote:

Ultimately, the problem is one of wishes and horses. It may differ in
the rest of the world, but certificates in the U.S. and Canada are
essentially worthless, and it’s greedy vendors’ fault in large part.
Sorry.

I tend to agree, to some extent at least. I’m surprised, though, that
you didn’t address the matter of how a CS degree is characterized here.
Computer Science degrees are not supposed to indicate a basic ability to
program – computer science as a field is something else entirely. It
is
as though everyone expects a CS degree to be the definitive programming
certification. Of course, because that’s how it is treated in the job
market, schools have started chasing that in how they structure their CS
degree programs, with the end result that they end up being about as
worthless as vendor-driven certifications. Oh, sure, they make you
look good, but they don’t make you actually good, at least judging
by
the results I’ve seen.

It seems most CS degree programs are just (really long, really
expensive)
Java certification courses, these days.

Still, it reinforces my point: your certificate is going to have value
because of who is mentoring you during the process. NOT because it’s a
piece of paper. I’d still feel more comfortable hiring someone with a
visible reputation of open source contributions. It’s not the piece of
paper (the certification) that has value; it’s the process. If that
process changes, the value evaporates.

Spot-on, I think, with the exception that it’s not reputation that makes
the mentor – though certain types of reputation are strong indicators.

good processes and programs, but those speak to the quality of the
programs, not the pieces of paper you get from them.

It’s important to separate the certification from the instruction. A
certification is only as useful to the person pursuing it as it is
useful
for getting a job – and it is only useful to employers who know better
than to care about a certification (in that they have a competitive
advantage over those employers who take a certification as some kind of
magical indicator of ability). Certifications are also, oddly enough,
useful to instructors in that it provides them with a built-in marketing
tool: if they advertise their programs as certification training
programs, they’re more likely to get students clamoring at their doors,
assuming the certs in question are in any demand.

Look past the presence (or absence) of any association with
certifications, and choose your instructional programs with care, if you
actually want to learn. If you already know the material, you don’t
need
a program – just brush up on the “official” answers, and go take the
cert, if that’s important to career progression.

Sadly, degrees are much the same – but there’s probably less than one
hundredth of one percent of employers out there that realize this. I
learned a lot in college – but mostly in two specific ways:

  1. pursuing knowledge on my own time

  2. sticking with a good instructor for future classes, even if they’re
    outside my chosen degree program

The end result is that I didn’t learn all that much from the classes I
needed for the degrees I pursued, even when I was getting As on
everything. Learning is something you do, not something you receive.

On Tue, Dec 11, 2007 at 03:59:32PM +0900, Chad P. wrote:
[…]

the results I’ve seen.

It seems most CS degree programs are just (really long, really expensive)
Java certification courses, these days.
[…]
needed for the degrees I pursued, even when I was getting As on
everything. Learning is something you do, not something you receive.

A CS degree does not say a whole lot, other than an ability to at least
tolerate an undergraduate education. A CS degree from a school with a
known
reputation says a lot more.

An ideal CS program does not teach programming beyond the first year. It
requires programming, but it teaches problem solving within the context
of
software (and maybe hardware) development. One should come out of a CS
program familiar with a body of knowledge involving numerous problem
solving approaches, including languages, algorithms, data structures,
architectures, approximations, strategies, design patterns/idioms, etc.,
and their tradeoffs. One should also have the ability to analyze the
relative suitability of various solutions (from an algorithmic analysis
perspective as well as time/memory/power/accuracy tradeoffs).
Recognizing
problems as those one already knows how to solve (or can be proven
intractable) is pretty important, too.

Programming is a means to an end here. It is the practice of the various
skills listed above. It is also part of the learning experience. (Sure,
you
can learn the theory of preemptive multitasking and concurrent
processes,
but you understand it a lot better if you’ve implemented a semaphore in
assembly.) I learned to program well before college, and used (and
improved) that programming skill throughout college, but I didn’t get
really good until I had to TA a software engineering course in grad
school.
In college I managed to implement a preemptive multitasking OS on top of
DOS, a web-based DB-backed app (in 1994, before we had these nice
frameworks, in C, which sucked), an ATM (not the bank kind) networking
simulator, a version of Eliza (in ML), a raytracer (in C++), a parser
(with
lex/yacc, though I can’t remember the details now), and others I can’t
bring to mind at the moment, as part of my coursework. Those projects
weren’t about programming, they were about problem solving.

I’m not going to claim my undergrad education was perfect (for example,
I
shamefully avoided the compilers course), but it did teach me how to
solve
problems with software. That’s what I do professionally, whether it’s in
Ruby or some other language (as it has been and as it will be). I’ll
grant
you that a CS degree is no guarantee of a CS education, though.
(Also,
for those of you who did not get a CS degree, the lack of a degree is no
guarantee of a lack of a CS education, either.)

CCD CopyWrite Chad P. [ http://ccd.apotheon.org ]
–Greg