Hacker News new | ask | show | jobs
by j45 3650 days ago
People without CS are miss out, and also, some CS programs come up short: Learning soft skills are as important as any technical chops. Learning how to learn and realize you're never really done learning how to solve problems.

This is one of the reason some self-taught people often have more people skills than those who self-select to hide behind a keyboard most of their university years instead of getting out there, becoming more well rounded, and through it solving problems.

The ability to work in a group as you've mentioned is a critical and transferrable life skill that many people simply don't grasp. If you can't solve university group problems, guess what kind of co-workers you'll be stuck with in my 20's.

Having some structure in the start is important and valuable especially for those who don't have the discipline to do things that need to be done and instead jump from one shiny toy or problem to the next.

At the end of the day it's not just what your education (or lack of education) makes of you, but what you make of your ability to learn every day. Discipline is the master skill that most people at any age in or out of school in our 20's are missing.

1 comments

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.

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.