I'll speak about my two main sharp instruments these days: C and Python. IMO, it doesn't take years to get "good" at these languages (C, because it's a smallish language; Python because it tends to obey the principle of least surprise fairly often). With sufficiently deliberate study, I think it'd be fair to call oneself "good" at either C or Python after a single year.
I suppose I probably ought to clarify what I mean by that. I mean that someone "good" at C or Python is someone who's made it over all of the typical newbie hurdles and is able to spot typical newbie mistakes more or less at a glance. This is not someone I'd expect to have total control or mastery over the language or to know the respective standard libraries inside and out.
Now, to become an expert in either of them, then, sure, you're going to need many years of experience (and, if you want to claim to be a Python expert, you need to be at least "good" at C, IMO, because there are times when you're just going to need to suck it up and write a C extension).
Comments
I'll speak about my two main sharp instruments these days: C and Python. IMO, it doesn't take years to get "good" at these languages (C, because it's a smallish language; Python because it tends to obey the principle of least surprise fairly often). With sufficiently deliberate study, I think it'd be fair to call oneself "good" at either C or Python after a single year.
I suppose I probably ought to clarify what I mean by that. I mean that someone "good" at C or Python is someone who's made it over all of the typical newbie hurdles and is able to spot typical newbie mistakes more or less at a glance. This is not someone I'd expect to have total control or mastery over the language or to know the respective standard libraries inside and out.
Now, to become an expert in either of them, then, sure, you're going to need many years of experience (and, if you want to claim to be a Python expert, you need to be at least "good" at C, IMO, because there are times when you're just going to need to suck it up and write a C extension).