Hacker News new | ask | show | jobs
by curun1r 3655 days ago
It's funny that you mention working in a group because that's one area where I've found where academia isn't really preparing CS grads. It seems that the most our new grads have been exposed to is an ad-hoc group that was supposed to work together and threw something together which they made work but with complete disregard for having to maintain the code 1+ years in the future.

They then enter an environment where the group isn't ad-hoc, meaning there's a hierarchy and people, especially new CS grads, get overruled. They're expected to comply with policies and processes that they had no input into. And they're expected to write code that doesn't just work, but is understandable and maintainable by every member of the team.

I find that most new grads are very able to come up to speed on the code and the structure of our project. This likely comes from having a very malleable mind and never having seen a well-organized codebase. But it takes a good two months of almost constant corrections before they're contributing to the team in the right way and many more years before the understand why that type of contribution is necessary. Teamwork is more than just not writing the entire project yourself and it feels like CS grads are never taught any of the skills necessary to collaborate in the real world.

1 comments

I didn't mean to imply CS consciously was setup to prepare me for group work at all intentionally - it only exposed and forced me to figure out how to get better at it in my case when I recognized it was a core skill. Having extra curricular group activities based around tech helped me a lot. I do think group work and social skills should probably be a course for CS majors as it attracts many introverts.

Many people don't having experience with having a relationship with a codebase for more than a few months, let alone a few years, let alone a few years old.. so it always seems the best way to start is fresh and from scratch because it seems easier to understand that way.

Re-factoring, or working with the reality of a codebase teaches that reading and understanding code is as important of a skill than writing.