I understand what it means to be a self-taught programmer, which I was from ages 13 to 17, before I got into college and, in some sense, still am today, as many of the things I learn and have learned for the past few years were "self-taught" (or, as I prefer to say, taught me by the authors of books, papers, and blog posts I read).
Some people like to call themselves self-taught hackers, software engineers, etc. And that is ok too.
But what does it mean to be a self-taught computer scientist? Is there some criteria, e.g. do you have to publish a peer reviewed paper or something like that?
I would say a self-taught computer scientist is well-versed in theoretical, or 'purer' forms of computation. That is, I would expect knowledge of λ-calculus, what it means for a language to be regular or context-free, and so on. A software developer and a computer scientist are really very different things (but not mutually exclusive).
When I say, "self-taught computer scientist" I had in mind someone, much like myself that did not go through college to earn a comp-sci degree but instead learned on the job and solves problems scientifically rather than by brute force.
I agree with you that it is a bit a self-applied label that could be offensive to those who finished college and earned a degree. Much like someone calling themselves a doctor without getting a PhD.
You provided a good definition: solves problems scientifically rather than by brute force. I believe the essence of science comes from being able to think (and report your thinking) in a structured way. Meaning it is about content, but it is also about form.
And just so we can get this out of the way, I'm not in any way offended by people applying labels to themselves in good faith, I'm only slighted offended by people who are offended by that.
It's a good question. I am self-taught, and would never call myself a "self-taught computer scientist" ... "self-taught hacker" is just about right. For me the distinction would be that it's never going to get too theoretical, it's all applied (though I make every effort to make my applications efficient, correct and legible)
(iirc) all but one of the interviewees in Coders at Work said the GOF design patterns book is rubbish. The guy who liked it said it was helpful to establish common language.
I understand what it means to be a self-taught programmer, which I was from ages 13 to 17, before I got into college and, in some sense, still am today, as many of the things I learn and have learned for the past few years were "self-taught" (or, as I prefer to say, taught me by the authors of books, papers, and blog posts I read).
Some people like to call themselves self-taught hackers, software engineers, etc. And that is ok too.
But what does it mean to be a self-taught computer scientist? Is there some criteria, e.g. do you have to publish a peer reviewed paper or something like that?