I'm one year away from finishing my bachelor's degree in Computer Science, and I'm not about to give up or anything.
However, I've also spent time working in the field, developing software that people actually use, and I've absolutely loved it.
I do understand the importance of learning theory, and I have been doing so for the past 3+ years. Data structures, algorithms, Big O notation, and Boolean logic to name a few topics.
Although more painful(ly boring), I also see the importance of learning:
- building functionality from logic gates (arithmetic, comparison)
- building memory from logic gates (flip-flops)
- programming in x86 assembly
- how assembly language instructions map to binary, machine language instructions
And that lays a foundation for understanding the basics of what a computer can do, and then everything else you design is building on top of that.
All of that adds up to maybe 1 to 1.5 years of study. But now I'm stuck learning about propositional logic, how to calculate voltages and currents at arbitrary points in circuit diagrams, and which pin is the 3rd address line on an 8086 processor!
I'd so much rather be doing actual work, that actual people will use. What am I missing? Am I looking at this in the wrong way?
If you've finished a degree in Computer Science, what would have liked to know at the time that may have made it easier or more enjoyable to power through the coursework?
What "pearls of wisdom" can you share that bring the importance of a Computer Science degree into focus?
EDIT:
Thanks to all who answered!
Yes, I'm sure my major is Computer Science - it's just that there's some overlap between degrees (more overlap than I would like or think is necessary). For instance, Electrical Engineering students have to take a C++/Java/C# (I forget which language) programming course or two, and the one on assembly language. Sorry if I didn't make that clear enough.
No, I guess there's no one right answer. I like a lot of the suggestions you all gave, both the actions I can take (work on an open source project, read about software development) and the different ways I could look at the coursework I'm wading through right now. On top of all of that, it is nice to know I'm not the only one who's faced this sort of thing.