Sure, there's outliers. But Not all college grads are capable of operating at that level. Which is why companies have a lot of regimented hiring practices and tests to filter out all those not making the cut.
I've been on the college recruiting circuit to help my company hire, and I'm often severely disappointed by a good portion of those I meet. There's occasionally the standout who really impresses me, but then I think they're never going to want to stick around at my place. With this thought, I'm sort of in agreement with the commenter who said that we need college to train people at a higher level since there's almost not time on the job to ease into it.
>There's occasionally the standout who really impresses me, but then I think they're never going to want to stick around at my place.
Maybe companies need to stop thinking in terms of employees sticking around for a really long time, and get used to the idea of employees going from place to place when they get too bored or want to do something different. It seems insane to me, the idea of expecting an extremely intelligent, high-performing person to want to come to the same workplace day after day, for years or decades, doing mostly the same work.
There's occasionally the standout who really impresses me, but then I think they're never going to want to stick around at my place
This is the paradox of hiring today, and why tech hiring is broken. In fact, there's a story right now titled "Hiring Is Broken" on the HN front page, not far below the OP. So it's getting harder to recruit people who do make the cut technically and communications-wise, while at the same time it's getting harder to retain them because let's face it—so many startups don't have a compelling value proposition or profit model.
From your perspective, what is the issue with a lot of the current college graduates? I'm a college student studying computer science, and I feel like I'd be ready to start work really soon. I'm also the sort of CS student who reads Hackernews, participates in CTFs, maintains a perfect GPA, has side projects, etc.
To be a good developer, you have to understand how computers work. You have to understand data structures. When you interview and you're asked to write a breadth-first search, or what the big-O complexity of accessing a hash map is, it's not because the company is going to have you writing your own custom hash maps right out of school. It's because you have to be aware of the general characteristics of the tools you're using to be able to select the right tool for the job.
Most of the students I interview fail miserably at this. They can hack together a working application by copy/pasting from examples and SO posts and making small modifications, but they have no fundamental understanding at all of what the computer is actually doing with the code they write.
I feel I'll be fine, this is the stuff I love. I'm incredibly interested in understanding how things work, to the point that I've considered changing my degree to maths/physics/compsci. With zero revision I could explain the hash map, it's big-O, how to implement, use cases, etc. I figure that once you understand something it simply makes sense. I haven't looked into it but I'm sure there is some interesting statistics on the probability of collisions, optimisation, etc.
It sounds like you're on the right path, combined with a decent personal passion project and some summer internships.
Some things I see that give me pause:
1) No project work. Lack of interest in building things on their own, researching frameworks, building out small apps, etc. I'd like to see even a small attempt at learning tooling and frameworks used on real world projects (it doesn't have to even be close to the toolings we're using, just anything).
2) Lack of reading the technology-centric, software engineering centric internet sites. Even attending a Meetup or two to start seeing what's going on outside academia (again, I live in a tech hub, so lots of opportunities).
3) Just general feeling of "hey, I got this CS degree, I'm ready to work", but not really showing much enthusiasm that they actually want to be software engineers as a career (it's a tough career that requires a lot of self-driven learning and curiosity to do it well). Believe it or not, I've seen students come through summer internships, and decide they actually don't like the real world day-to-day software development for a career.
I wouldn't recommend any in particular, but let your interests guide you. If your into front-end development, there's probably some bloggers who write about your favorite frameworks; or your favorite language; or if you're interesting in enterprise dev, you might follow InfoQ or Fowler's blog; Or with AWS you might read Cloud Guru's weekly updates on AWS, or Werner Vogels Blog, etc; you might be interested in startups, so your read one of the many VC blogs, etc...
I don't really have any preferences with what you're reading. Just the fact that there's some part of technology that fascinates you enough to read further, on your own in a self-directed way. It shows curiosity and initiative. I always like this part of my conversations because I often get to learn something new myself.
That's your biggest asset. The perfect GPA will help you get pass the useless HR gatekeepers, a demonstrated ability to build something will mean a lot more to the technical interviewers. Bonus points if those projects happen to use common industry things like an sql database and contains unit tests.
Most graduates, if you sat them down with some fairly simple requirements and said "build this with whatever tech stack you're familiar with" would have no idea where to start.
I've been on the college recruiting circuit to help my company hire, and I'm often severely disappointed by a good portion of those I meet. There's occasionally the standout who really impresses me, but then I think they're never going to want to stick around at my place. With this thought, I'm sort of in agreement with the commenter who said that we need college to train people at a higher level since there's almost not time on the job to ease into it.