In some respects, attending college as a computer science major is sort of like going to medical school in that you will be expected to complete assignments and projects as a member of a team; and quite often, that team will be comprised of the same members over and over.
This is why it’s so important that computer science majors choose programming team members carefully, because you could wind up working with them over and over, and because their performance can have an impact on how well you do.
Consider this example: There was a student that found himself picked to be on a team his freshman year of college; he had no idea who the other team members were or whether or not they were smart or good hard working students. He discovered during the first project that they were not and had in fact sought him out because they’d heard he was a smart hard working student. This student tried his best to distance himself from these other students, but because all the other students were reasonably satisfied with the teams there were a part of, this student found himself being teamed up again and again with these same low achievers. It came to a head during his senior year when he found himself having to write entire sections of an operating system himself due to his teammates trust in his ability to do so and their desire to spend the last semester of their college careers partying.
This is not how you want your time at college to go. The whole point of programming teams in college is to prepare students for the outside world where virtually all programming is now done by teams. Thus, those that learn to work well within the team construct, will likely prosper, while those that do not, are likely to struggle.
New students need to walk into college with open eyes, they need to understand that not everyone that is going to college is there for the same reasons you are. This means looking around you at the other students and judging them before the time comes to form teams. This is because it’s usually the students themselves who join up together to form those teams, rather than being assigned to one by an instructor. Things have evolved this way because students complained so much when put into a group, that professors simply gave up and let the students figure it out on their own. This has led to a sort of dog-eat-dog situation where the most savvy students very quickly find what they are looking for.
So, to sum up, if you are a computer science major, get in quick and become savvy yourself, or you’ll likely wind up with a team you don’t want.