Ok, I've been teaching a buddy how to program for a while now. He's a very fast learner, and he's quite good at programming so far. However, he has one issue I keep trying to correct.He jumps in and starts doing highlevel programming without learning some of the basics (He's created a full blown web application but still doesn't know pagination or session management).This isn't the problem though. He keeps jumping around to new technology (Node.js, MongoDB, EC2, etc). I tried telling him that he should learn some of the basics about his RDMS of choice (MySQL) as he uses it everyday before investing a bunch of time into learning the basics of MongoDB (And probably moving to something new).Am I the one in the wrong here, or should he try to focus on one thing at a time and get really good at it?
Should a new programmer focus on a single technology until he's proficient at it?
learning;junior programmer;multilingual
Personally, I think it can be a great idea to sample different technologies and languages when learning to program. Focusing on one technology has the obvious benefit of making you very good at it, but the obvious downside of only knowing a single technology.But I think the more important subtler downside is that languages and frameworks generally come with an ideology. There are many programmers (maybe most programmers) who only apply one ideology in everything they program. This is often because they learned one framework in one language really well and now they can't see anything without those goggles on.Especially for someone just learning to program, I don't really think it's an issue to want to try what's out there, and wait to get focused on something until later. After all, it will be difficult to write anything substantial without knowing a technology decently well.