"I've looked at LockeWatts's resume, and the problem as someone who has been a hiring manager, is there's absolutely no signal in his resume that he would actually be a someone who could "compete with the best of them". "
It might surprise you to hear I'm happy to hear that. Tell me what it's lacking, I want to improve it.
"but then when I asked them to code up a simple function on the whiteboard, they couldn't do something incredibly basic."
What's your metric of incredibly basic?
"Furthermore, although it will no doubt be painful for him to hear this, I very much doubt he is a rockstar. He might have the potential to be a rockstar, but takes a huge amount of practice to get there. It is rare, and no doubt requires privilege, for someone to have that status right out of college, or in the cases I detailed above, before they even started college."
Okay. That doesn't really hurt, because I'm not asking for someone to just blindly accept that I'm amazing because I wrote a blog post. I want the opportunity to prove that I'm capable, that doesn't happen if you don't pay attention to my school.
"Maybe it will take you an extra 2 or 3 or even 5 years. But you can give yourself rockstar-like skills and experience, if you are willing to make the appropriate choices and sacrifices."
Besides working on my personal projects, working, getting an education, what else is on that list? Just more of the above? I ask that honestly, I want to know what you think will help.
"Tell me what it's lacking, I want to improve it."
What's missing is experience, or at least evidence of experience. That's OK; it's not your fault. There are design decisions I made in my first major large-scale programming project (and by major I mean requiring more than 10 person-years of effort) that I regret to this day. This is after graduating from MIT with a bachelor's degree and straight-A grades, including several graduate-level classes, and after working as a systems programmer part time during the school year, and full-time during the summer months for three years. I made mistakes which required the experience which only time and exposure could bring me, and I didn't have the opportunity to do large-scale systems work before I my college or high school career. (That's OK, most of us didn't; it's only the few lucky people who have.)
But that experience is necessary to be a "rockstar" who doesn't need to go look for a job, and who is courted. Very few people fall into that category right out of college, and when you say that you can compete with them, that's either arrogance or ignorance which is speaking.
So any job that you get is going to be an entry-level one. That's fine. We all have to start at the bottom at some point; it's only the incredibly lucky who are able to do this before or during the college years.
This brings me to the other thing I really want to say. In order to rise to the top of the heap, you need both opportunity (aka luck) as well as hard work. For some, the luck comes as an accident of birth; for others, it comes later in life. For me, the fact that I happened to be in the right place at the right time so I could become the first North American Linux Kernel Developer was definitely luck. But the fact that I was willing to pour all of my free time for several years into Linux was a vast amount of hard work was necessary or that opportunity would have completely passed me by.
The fact that I was able to get into MIT, and my parents were able to extend loans to me so I could attend, was certainly a matter of privilege. But the straight-A's came from averaging 4-5 hours a sleep a night, and going everything I could to learn everything I could, and work on as much as I could, during that time. The effort did come with some sacrifices; both socially, and from a health perspective (I became horribly obese due to the lack of sleep, lack of exercise, and vast amounts of non-diet Coke which I drank while honing my craft during all available free hours). I can't say that I would necessarily recommend the choices that I made to everyone. If you aren't sufficiently passionate about honing a piece of code to perfection, you're not going to stay up until 2am making that happen; and you won't be happy doing what you did after ten or twenty years. I'm fairly content with the choices that I made, even though they did come with drawbacks. (It's only now, 20+ years later, that I'm finally losing the weight so that shortly, I will no longer be obese, but merely overweight.)
So before you say that you want to be a rockstar, make sure you understand what the costs might be. If that really is your passion, then work really hard, so that when the opportunity comes your way, you can recognize it and take advantage of it. The fact that your opportunity didn't come as an accident of birth is just bad luck; but you never know when your incredibly great stroke of good luck will come your way, and the question is whether your skills will be ready to take full advantage of it when it does.
(I will note by the way, that my passions didn't extend to just technology; I also spent time listening to management and self-development books on tape when I commuted to work --- and I took advantage of a benefit from working at MIT as a staff member at the time to take a class every semester or two at the MIT Sloan School, where I learned took classes on negotiation, law and technology, etc. This was also on my spare time, while I was earning much less than my peers who had gone to work at big companies in the private world, since I was working for MIT that underpaid its technology staff by a factor of two or more at the time. So I was sharing an apartment with two other people, and driving the cheapest car I could find at the time. So I was certainly privileged, and I was lucky --- but at the same time, I very much paid my dues. I never graduated from MIT expecting that I would be recognized as a rockstar straight out of college!)
Internships are much more common than they were even 10 years ago, so it is no longer true that only a few people get entry-level experience before they are done with college.
"But that experience is necessary to be a "rockstar" who doesn't need to go look for a job, and who is courted. Very few people fall into that category right out of college, and when you say that you can compete with them, that's either arrogance or ignorance which is speaking."
I didn't define rockstar that way, and I've realized I had a complete misconception how people would perceive the term.
I didn't mean that I can compete with Google's senior architects, or you, or anything of that grandiose nature. I'm positive I can't.
I meant in comparison to all other college Juniors, I think I can compete with the best of them.
You should read the Joel on Software article you referenced very carefully, specifically, the bit which says:
"Astute readers, I expect, will point out that I’m leaving out the largest group yet, the solid, competent people. They’re on the market more than the great people, but less than the incompetent, and all in all they will show up in small numbers in your 1000 resume pile, but for the most part, almost every hiring manager in Palo Alto right now with 1000 resumes on their desk has the same exact set of 970 resumes from the same minority of 970 incompetent people that are applying for every job in Palo Alto, and probably will be for life, and only 30 resumes even worth considering, of which maybe, rarely, one is a great programmer. OK, maybe not even one."
Did you see what Joel did there? He's basically admitted that rockstar programmers are present in the population that he's interested in hiring at a rate of less than 30 to 1. So don't focus on the rockstars; it was probably a mistake for you to mention it in your blog post, because the reality is, you (or anybody else) has no idea whether you have what it takes to be a "rockstar programmer". Just settle on being a solid, competent developer, and then build on it from there.
The reality is that to achieve true greatness in almost any profession, you need to be lucky (either in the genes you received in the case of atheletics) or getting the right opportunity, but you also have to work really, REALLY, hard. People don't necessarily talk enough about how the Beatles were perfectionists, and how hard they worked on their craft and on their recordings; instead it's a lot more fun to talk about being a rock star, and all of the bene's that come from being a rock star.
So I'll repeat what I said --- work hard. Make a name for yourself (and not as a whiner). Contribute to the community. Be passionate about you chose to work on, so that you think it's wonderful to spend 60+ hours of your free time working on it. If you're not passionate about your day job, then start looking ASAP to find a new working situation for which you can be passionate.
Then be patient, and watchful for your specific opportunity to come by. And grab it when it does.
It might surprise you to hear I'm happy to hear that. Tell me what it's lacking, I want to improve it.
"but then when I asked them to code up a simple function on the whiteboard, they couldn't do something incredibly basic."
What's your metric of incredibly basic?
"Furthermore, although it will no doubt be painful for him to hear this, I very much doubt he is a rockstar. He might have the potential to be a rockstar, but takes a huge amount of practice to get there. It is rare, and no doubt requires privilege, for someone to have that status right out of college, or in the cases I detailed above, before they even started college."
Okay. That doesn't really hurt, because I'm not asking for someone to just blindly accept that I'm amazing because I wrote a blog post. I want the opportunity to prove that I'm capable, that doesn't happen if you don't pay attention to my school.
"Maybe it will take you an extra 2 or 3 or even 5 years. But you can give yourself rockstar-like skills and experience, if you are willing to make the appropriate choices and sacrifices."
Besides working on my personal projects, working, getting an education, what else is on that list? Just more of the above? I ask that honestly, I want to know what you think will help.