All of the four things above do not come by direct learning. They come with experience and a lot of practice.
I agree with the fact that you can make a platform to provide the user with questions that will challenge him but still there will be a part where you will give him some hints. And that will just spoil the entire working.
I think what he meant is that it's impossible to "make" someone a great programmer, as in "transform him by applying external force". If so, then I agree - it's impossible to "teach" or "convince" someone to write for example readable code, one must learn on his own through practice.
Comments
This is one of the worst kind of questions one can come up with.
It's absolutely impossible to turn an average coder into a great coder. Because the things about code you mention in the question -
1. Beautiful 2. Modular 3. Modular 4. Maintainable
All of the four things above do not come by direct learning. They come with experience and a lot of practice.
I agree with the fact that you can make a platform to provide the user with questions that will challenge him but still there will be a part where you will give him some hints. And that will just spoil the entire working.
Don't see why one would call it a bad question.
A bad question is one to which everyone knows the answer to (or everyone knows that no one knows the answer to).
"It's absolutely impossible to turn an average coder into a great coder." - Sorry all great coders were average at some point. No one is born great.
I think what he meant is that it's impossible to "make" someone a great programmer, as in "transform him by applying external force". If so, then I agree - it's impossible to "teach" or "convince" someone to write for example readable code, one must learn on his own through practice.
I think you can turn an average coder into a good one. Just not a average / good one into a great one.
> They come with experience and a lot of practice.
Couldn't agree more. BTW, that's the reason why, contrary to popular belief, old programmers are often better than young programmers.