The Pragmatic Programmers have proposed that developers learn a language a year. I agree that it’s very important to keep abreast of changes in IT and that by learning new languages we can keep our minds sharp and bring new ways of doing things into old languages. However, I have to wonder if this learning a language gets in the way of knowing a language.
I’ve always been a generalist, when I was younger I wanted to be a renaissance man. But sometimes I think that getting caught up in being a generalist is as large a trap as specializing in one thing and not not being willing to learn anything else.
When I was 19, I taught C at a local community college’s Continuing Ed programme. I’d been asked to do so six weeks prior to teaching the course. I followed K&R, and I know I was able to get the gist across to my students. I’d learned C, but I didn’t know C. It took at least 6-12 months of programming C day-in, day out to know the language.
And then there’s unix. I recently celebrated my 20th aniversary of using it. I can claim to having learned it, even perhaps understanding it. But knowing? I’m still discovering new aspects of it.
I agree that it’s important to learn new things, but sometimes you need to just know a thing.