A similar argument could be made for, "Why go to university instead of just using the textbooks the university uses?"
The piece of paper you receive at the end and the fantastic networking opportunities that you have on campus.
A similar argument could be made for, "Why go to university instead of just using the textbooks the university uses?"
Here's test, then.
(1) What is the big-oh of Dijkstra's algorithm?
(2) When would you use Prim's algorithm over Kruskal's algorithm?
(3) Write a brief synposis of Goedel's Result using Cantor diagonalization. Use no more than a single page of your exam book.
(4) Demonstrate why integer multiplication can never be more efficient than O(log n) on a von Neumann architecture.
(5) Why 5 philosophers, not 4?
You have 30 minutes. Begin now.
(I have used the answer to 4 of 5 of those question in real life programming situations).
Why do you think a math degree would be any better without testing out to your skill level?
From what I hear about majoring in math, the trig and calculus are still building the foundation/basics (much like intro to programming in CS). The math major gets into the more esoteric theorems or something(?), sort of how after you learn the basics of programming, you move into datastructures and architecture. Having a strong grasp of mathematics and developing an analytical mind will strongly benefit you when you go to design and write code
Edit: Also, be very wary of arrogance and ego! It can falsely tell you that you're better than you really are which will disservice you.
So far, I've felt like the course is a complete waste of time. I have to sit in class and listen to the Professor teach the other kids about two-dimensional arrays, etc,
I started to come to the conclusion that perhaps a Computer Science degree is about as useful to a programmer as an English degree is to a writer: It helps, but it isn't even remotely essential.
Instead of majoring in the subject you love, and therefore know a lot about, maybe you should major in a subject that you're excited about and not very well-informed of. For me, that subject is Math.
why shouldn't a programmer major in something else entirely? Other majors of interest: Art History, Philosophy, Economics, Physics (most of all), Media Production.
In my spare time, I enjoy reading beginner books on a variety of technical subjects. Why? Because in every primer I read, I always learn something new that I did not know before. If you want master something, you should always be in a beginner's mindset.
An education is what you make of it. If don't think it's essential or useful, then it won't be....
Eric Nevala
Indie Developer | Spellbound | Dev blog | Twitter | Unreal Engine 4
I mainly emphasised the arrogance bit because I myself fell into that trap. I took a 300 level class on datastructures and algorithms and thought I knew all of the material because I already took a similar class at the 200 level. When the material changed and suddenly got hard, I was in for a rude awakening. I had to buckle down and get serious and managed to pass ... but don't do what I did. It's always good to periodically to check yourself for craziness.
Well, as I said, the math would be a challenging subject that I probably wouldn't have time to teach myself. On the other hand, I'm already on track to learn most of the things my school's CS courses offer. It has nothing to do with skill. It's about knowing the material. The skill comes from the doing. The knowledge comes from the learning. I'm saying that I'm taking care of the learning, so CS might not be worth my time as much as something else that I'm not taking care of the learning for, because I have limited time.
You seem to have assumed that I claimed to know everything already. I figured by now that it was clear that all I'm saying is I can learn the answers to all of those questions, whether I'm a Computer Science major or not, and probably just as well as if a professor taught me.
Stephen M. Webb
Professional Free Software Developer