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. */
