DEV Community

Discussion on: CS Graduates (and not): A Question

Collapse
 
apotheon profile image
Chad Perrin

I attended college, but am not a college grad. I got distracted by Real Life (family stuff, mostly), and left college.

In college, I learned that most of the classes in college are taught very poorly. The primary benefit I got from college classes was ideas about what to learn. I learned much more quickly on my own, once I knew what I wanted to study or do (because doing helps learning as much as studying). In the age of online syllabi, though, you don't need a college class to get ideas for what to learn. Just browse university degree programs and syllabus listings.

As a comparison of things learned inside and outside of college, I learned a lot about what things need to be learned as a second-nature skill and what things just need to be understood. For instance, learning the ideas in a trigonometry class is important, and learning how to use those ideas is somewhat important too, but spending week after week in class doing stupid busywork is pretty much useless. Even if your job revolves around trigonometric operations some day, understanding how the stuff works (and why) is important but actually doing it by hand is not something you'll be required to do unless you find yourself in a post-apocalyptic survival-and-innovation scenario. Use a computer.

Some of the "why" of things working is best learned from a person who knows it and teaches it. I got that from precisely 1.5 college instructors; one did it as easily as breathing (the late Blaga Pauley, opera singer and mathematician), and another did it sometimes. Well-written books can help convey that sort of thing, too, but it takes a lot of reading to find the good books. Most college instructors could be replaced by shell scripts and flat-file "databases" for all the good they do in teaching the "why". Don't underestimate the importance of "why", by the way; that's basically the foundation of real innovation. "How" is just an implementation detail.

The biggest benefit of a college degree, of course, is that it opens doors. Even more than the degree, though, is being in college long enough to get doors opened in your last year: internships, startup partnerships with other students, letters of recommendation, and so on. Everything else can be gotten elsewhere, especially in the last ten years or so, though some of it requires a lot more work and comes with a bit less in the way of a support system of fellow-travellers and mentors.

In "the real world" (outside of academia, in other words), there are things you'll learn that you likely wouldn't in college. Some "best practices" kind of learning is best (or only) learned on the job, for instance; some other learning along those lines is best (or only) learned in open source development.

Consider good development process and workflow, for instance, which is typically not taught at college or, if it is, usually gets taught in a depressingly poor mutant form (or perhaps thirty years out of date). If you want the best waterfall development process education that money can buy, get NASA to hire you. If you want the best agile development process education that money can buy, bounce around through startups for a couple years until you find one that is really good at it. If you want the best organic, distributed project management education that money can't buy, get into open source development and find out how several different projects handle things, learning from the successes, failures, and so on, of different teams (hint: GNU and Red Hat projects usually aren't well-managed, from what I've seen; maybe someone else has better experiences there).

Of course, you can always get these parts of your education after college, or even during college, by getting a job in software development while going to school, assuming you can find a dev job at all before you have a degree. It's easier if you're working on a degree than just while not having any college your life at all, though (see "opening doors" commentary above).

I think our "higher education" system is pretty broken at present, by the way. Some less-broken replacement would be a very good thing to have, but if what you're interested in is skills, instead of those open doors and "paying your dues" (basically academia-as-hazing), the crushing debt that comes with a college degree combined with the "this isn't strictly necessary for learning" character of these learning institutions adds up to the modern university experience being well-nigh useless in the grand scheme of things. They are not the institutions of learning people believe them to be, in fact. They are institutions of How We Do Things Here. It takes far more discipline to learn on your own than under the crack of a whip at school, but the costs are lower and the rewards greater, ignoring the social gatekeeping practices that keep our decaying educational system relevant.

There are people within academia doing a very good job of elevating their parts of the university learning experience, but they're outnumbered and overpowered by those whose net effect is negative. I hope the benefit of ubiquitously available educational information on the internet meets the promise we see in it, because the alternative would deeply disappointing as our educational institutions continue to make themselves less and less educational.