I am certain I could have done that assignment in 6th or 7th grade without difficulty.
That's the problem in a nutshell. If you choose a major where you already know 50%+ of the material, you won't get much out of it. I take it you took computer engineering (based on the FPGA class), but what if you had gone back to school and learned biophysics? You probably would have gotten more out of it.
I have lived this. I taught myself to programm in 5th or 6th grade. By 8th grade I was whipping up 3D games using OpenGL and what not. When I was picking majors and I absolutely did not want to go into computer science. I knew it was going to be a waste of my time.
My main 3 options were mechanical engineering, economics, and history. I based this solely on other areas I was interested in. I chose mechanical engineering and ended up taking about a dozen computer science courses for my major after testing out of the lower level classes. I learned a lot about AI, computer graphics, computer vision, and the like but skipped the BS 'learning how to programm' classes that would have been a waste. It worked out well. My mechanical engineering classes were all completely new material for me and I got a lot more out of it than if I had just taken CS.
To anyone who is a self taught programmer, I would suggest getting a minor in CS or double majoring. Simply getting a CS degree isn't enough new material to make it worthwhile. Math, physics, bio, chem, and economics all compliment a CS background very well. Obviously mechanical, chemical, computer, or electrical engineering match up very well with CS (but a double engineering major is TOUGH).
That's the problem in a nutshell. If you choose a major where you already know 50%+ of the material, you won't get much out of it. I take it you took computer engineering (based on the FPGA class), but what if you had gone back to school and learned biophysics? You probably would have gotten more out of it.
I have lived this. I taught myself to programm in 5th or 6th grade. By 8th grade I was whipping up 3D games using OpenGL and what not. When I was picking majors and I absolutely did not want to go into computer science. I knew it was going to be a waste of my time.
My main 3 options were mechanical engineering, economics, and history. I based this solely on other areas I was interested in. I chose mechanical engineering and ended up taking about a dozen computer science courses for my major after testing out of the lower level classes. I learned a lot about AI, computer graphics, computer vision, and the like but skipped the BS 'learning how to programm' classes that would have been a waste. It worked out well. My mechanical engineering classes were all completely new material for me and I got a lot more out of it than if I had just taken CS.
To anyone who is a self taught programmer, I would suggest getting a minor in CS or double majoring. Simply getting a CS degree isn't enough new material to make it worthwhile. Math, physics, bio, chem, and economics all compliment a CS background very well. Obviously mechanical, chemical, computer, or electrical engineering match up very well with CS (but a double engineering major is TOUGH).