"Computer Science students, however, don't go to college to become computer scientists. They go to learn 'programming'."
When I finished my CS degree in 1988 I remember considering what it was that I had been educated to do (I think this is really only apparent at the end a course) - it was pretty obvious: we had been educated to a level where the "natural" thing to do was continue on to do postgraduate research. The vocational element of our course was (thankfully) very low, there was a distinct (and times alarming) theoretical component but you also had to do a lot of development work. But developing stuff was a means to an end of demonstrating an understanding of the course material, rather than an end in itself.
So I went to university to learn about the academic field called computer science - not to learn to program (which frankly, isn't that difficult).
20+ years on I'm rather pleased with the course I did and the subsequent six years I did in academic research - I've used a lot of maths in various jobs (industrial simulation, investment banking, even more industrial modeling), it was a good course, with a good class and excellent teachers in a great ___location. I even met the chap who became the first investor in our startup through the course - he had graduated from it about 20 years earlier.
So yes, don't do a CS course to help you become a "standard" developer - it is almost completely irrelevant and will probably frustrate and confuse.
I decided to go into CS because I wanted to be a programmer, yet I wasn't one of those kids who programmed from an early age. I had no idea where to start and either didn't have the time or the drive to embark on a rigorous self-education spree. University seemed a good fit to me, even to learn to become a "standard" developer.
That said, three years later I'm nearing the completion of my CS degree, and I understand what computer science really is and love it. I have no plans for further time in academia. I'm also confident in my programming abilities, at least for an entry level job. Would you say a CS course was appropriate for me, or should I have spent the three years learning programming on my own (I had a decent tech support job after high school so the latter was definitely an option)? What if anything would you recommend to people who are interested in programming late in high school but don't have the advantage of having grown up programming?
Sorry, my post was a bit of an early morning coffee fueled rant.
I was really replying to the usual "I did CS and they didn't even mention RoR" posts that usually pop up when anyone mentions CS on a development oriented forum.
If you have done a course and appreciate what CS is and you are confident in your skills then it sounds to me like you have done the right thing. In my experience the absolute best people I have worked with have been been fantastic natural developers who also had a good CS education - but this only pays off in technically difficult areas - either because the ___domain is complex and/or the solution is complex.
I also wasn't a programmer before I started university, and I haven't regretted getting a Master's in CS one bit. There's some sort of general aptitude for programming you need, and no university education in the world can help you if you lack that. But if you have that, a CS education is a lot of help in making you a good programmer. Not because of whatever languages are in fashion when you get the education, but because of the more timeless subjects: Algorithms, paradigms, complexity theory, and compiler theory. These are the tools you need to be able to quickly pick up a language, any language, and be reasonably good at it.
When I finished my CS degree in 1988 I remember considering what it was that I had been educated to do (I think this is really only apparent at the end a course) - it was pretty obvious: we had been educated to a level where the "natural" thing to do was continue on to do postgraduate research. The vocational element of our course was (thankfully) very low, there was a distinct (and times alarming) theoretical component but you also had to do a lot of development work. But developing stuff was a means to an end of demonstrating an understanding of the course material, rather than an end in itself.
So I went to university to learn about the academic field called computer science - not to learn to program (which frankly, isn't that difficult).
20+ years on I'm rather pleased with the course I did and the subsequent six years I did in academic research - I've used a lot of maths in various jobs (industrial simulation, investment banking, even more industrial modeling), it was a good course, with a good class and excellent teachers in a great ___location. I even met the chap who became the first investor in our startup through the course - he had graduated from it about 20 years earlier.
So yes, don't do a CS course to help you become a "standard" developer - it is almost completely irrelevant and will probably frustrate and confuse.