For me, it has been great to be able to take classes that I am actually interested in instead of just the ones that involve the least work like many of my friends have (CS is the only department with that many specialized classes).
I wasn't forced to choose a specialization, if I was, I probably would not have chosen CS at the time. I chose different classes freshman year and started to gravitate towards CS as a sophomore. There was no commitment so I could have stopped CS and focused on something else if it turned out that I didn't like it.
Most of what I know is also self taught. Once you get into the more advanced CS classes at my school, it is very independent (I am the only one in each of my classes this year). I can ask the teacher for help on an assignment or have him explain something if I need him too but most of the time I work independently.
I jokingly referred to our classes as learning "skills" since we lived so close to the poverty line. We had well taught and well funded tracks in dry cleaning, construction, cosmetology etc. I joke but they provided job placement and it probably gave many people a decent living.
I also remember how great it was have an army recruitment office inside the school.
(Adding some geeks of the opposite sex (or same sex if preferred) may increase the fun, though.)