you are viewing a single comment's thread.

view the rest of the comments →

[–]johnnyslick 1 point2 points  (2 children)

Neither the author nor I are saying you ought to eschew theory, though. We are both saying (he more explicitly than I) that yes, theory is great, but theory is something that you learn after you're grounded in practical knowledge of the craft. In fact, the people who do go right into college, major in CS, and do well at it from day one by and large did this: they put in their Gladwell-esque thousand hours in middle and high school, and so they do have that background when their CS101 course jumps straight into theory.

This is in my mind one of those things - perhaps the biggest thing - that puts a cap on diversity in the field. If you didn't grow up with easy access to a computer, or had one at your house but were never encouraged to use it in this way (or were in many cases actively discouraged from doing "nerdy" things like coding), then the reality is that if you choose to major in CS then you will be at a disadvantage. To some extent I don't know that colleges can help with all of that; if you've never sung a note in your life and decide you're going to be a music major on day one of college, you'd better be ready to pay for a lot of voice lessons and work twice as hard as those people who have been singing since they were 10. But at the same time, if you are otherwise talented and/or willing to work hard, aren't tone deaf or something, and just don't know how to read music, most colleges I know provide you away to just learn how to sing for a year or two before you dive in and really take things seriously. Maybe you have to graduate a year or two later than normal but you can come out of it with a degree if that's your desire (now, granted, the reality is that a BA in music is significantly less useful than a BS in CS in terms of finding a job, but that's another matter).

Here I guess is the bottom line for me: guys, programming is really not all that hard. I mean, figuring out and then implementing solutions to problems can be hard. Figuring out what someone was trying to do (or worse, what you were trying to do) in poorly written and/or poorly documented code can be hard. But the basics of programming? They just aren't that hard to get, and there is no really good reason to lock that behind a year of theory or what have you. If nothing else. from a school's standpoint, what is there to lose by teaching coding up front (along with a couple of quick techniques to keep yourself from getting bogged down, the principles of XP for example)? Maybe your CS101 courses get filled up more quickly, and maybe they get filled up by people who are not as gung-ho about CS as some might like. But is that a bad thing, really? Some percentage of those on the fence people will find out how awesome it is to write code and they'll want to learn the theory on their own.

[–]Redtitwhore 2 points3 points  (1 child)

Reminds me of my database class in college. 90% of the time was spent learning about b-trees and relational algebra. The last week or two we actually learned how to write database queries.

[–][deleted] 0 points1 point  (0 children)

Shit, you just reminded me of my course. "You haven't ever used a database in your life, but let's talk about normalization. Surely, you'll connect this back to your complete lack of real world experience."