On Thu, May 12, 2011 at 11:12 AM, Ryan Byrd <[email protected]> wrote:
>
> Isn't that the same crapola as people comparing self-taught programmers to
> university CS graduates? Who would you rather hire? Does college training
> make a difference? Discuss.

Of course, it's the spectrum of colors that makes things worth seeing,
but if I had to say one or the other, I have to accept that college
training *does* make a difference, but not always in the intended
ways, and there are trade offs.

For example: high-level schools (locally, think UofU, BYU) teach a lot
of theory and hard math. It's good stuff, but in some corporations
these students come out more interested in the academics of solving
the problem than getting code to commit on deadline and shipping the
next release. I will note that even the top local schools are
considered by many as one or two tiers below nationally recognized
schools with strong CS programs.

The next-tier of schools (Think UVU, Weber State, etc) teach good,
solid work-experience-related programs generally with professors who
are/were in business and have an eye toward producing students who can
write code that companies can sell.  These are solid students but
their downfall sometimes shows up in the really hard problems that
crop up when systems worked awesome in testing, but at scale fail
under load for no apparent reason. Their CS theory isn't as deep, but
their *practical* business acumen is generally better than the
top-tier schools because that's the environment these schools operate
in "how this will apply to the (so-called) real-world".

The next-tier of schools (Think Neumont, Stevens Henegar, and the
like) produce fairly solid programmers who can write reasonable code
out of the gate and have a general understanding of the most-common
kinds of programming. Usually they are self-taught in a lot of
respects and have a lot of passion. I find they will normally have one
"enterprise" language (Java/C#) and exposure to others, with a
plethora of self-taught experience in a wide range of supporting
frameworks/scripting languages, etc.  These grads are normally MORE
passionate overall about programming/computer systems, may spend
little time doing OTHER activities in their spare time (can't wait to
go home and drop the newest point-release on their *nix box) -- there
are plusses and minuses to this.  Yet, will honestly have to work hard
at proving themselves in solving massively hard problems (or survive
everyone else on their team) before being promoted to Senior or Lead
because their training is less focused around the hard foundational
bit-level stuff that makes systems run, and more around tweaking the
code until it compiles and/or doesn't break the QA test.

Finally, the self-taught engineer can develop ANY of the above traits,
but will need to capture as much information and value from every
experience they encounter that they can exceed the inherent "gravity"
that comes with being self-taught... aka, only experiencing the things
you are exposed to--not being "introduced" to new ways of thinking
through external means. While some of the best engineers I have ever
known were self-taught, many of the ones with degrees ALSO would have
likely been successful because of the same desire and passion to learn
more all the time from all sources.  Most of them will tell me, "well,
I got lucky to work with some really smart people and I paid real
close attention to everything they did." and "I questioned everything.
I am sure people were annoyed, but I didn't just accept 'this is how
its done', I continually asked 'Why'."

Long answer, but my summary here is that the DEGREE hardly matters in
the long-run, but can be somewhat of a predictor of what kind of
engineer someone will be.  I think good hiring decisions are always
based more on "what very hard problems have you solved and how" rather
than "how much student loan debt do you have". :)

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to