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.
3 comments
Stevi Deter
September 2, 2008 at 10:45 pm (UTC -5) Link to this comment
Hopefully, most people who are dedicated enough to the craft of programming aren’t foolish enough to think a year is enough time to really know a language. I’ve been programming in Java since 1997, and I’m still learning new things every day.
That said, learning a new language is a fantastic way to learn about your primary language. Learning new languages makes you look at those you currently know in new and interesting ways.
Ryan Bates
September 3, 2008 at 12:00 am (UTC -5) Link to this comment
I think what the Pragmatic Programmers are trying to say is that we should get out of our comfort zone and stretch our minds a bit with a new language at least once a year. Learning a new languages will help us view our old language a little different, and often better, way.
The new language isn’t supposed to be a complete switch and become your primary language. It’s more of a hobby or something you do on the side.
Matt Williams
September 3, 2008 at 3:41 pm (UTC -5) Link to this comment
@Stevi — I’ll admit, I’ve found ruby-isms creeping into other languages; I’ve used some in shell scripts, of all places.
@Ryan — I can’t imagine myself stagnating; I’m always having to learn something new, lest boredom set in. And for me, boredom is very bad.
I agree with both of you that learning new languages does help us look at how we develop in other languages. I think more than anything else because we (hopefully) learn how to think in different fashions. I’m very much of the mindset that it’s a good idea to choose the best tool for the job. Admittedly, that comes, in part, from Unix where there’s 5 ways to do something and, in truth, sometimes the best way is to use the method you know rather than finding the *fastest* — if you can use the method you know in 5 minutes and it takes an hour to run, that’s generally better than spending 2 hours researching something which takes 5 minutes to run….