I keep advocating that one must understand the programming concepts while learning a programming language, and not just be keen about the syntax. And it is not very convincing, especially because there are not visible benefits. Most of the times only the short term benefits are visible, the long term ones are either too far away or we do not have the vision at all. So, here is one of the analogies I try to provide for making it more comprehensible.
Difference between knowing programming and knowing syntax is the same as between being educated and being literate. You can very well read and write the text with the language you learnt by being just literate. But you need to be educated to inform yourselves with it and apply it to make a difference in your life. Learning only the syntax is like trying to be just literate.
I find a lot of novices in a position where they find it hard to understand design, but once a pseudo algorithm is given, they can translate it into a programming language. When you are just literate, you can only write what others dictate. Of course you cannot code without knowing the syntax, but what guides your code is not the language syntax but the programming concepts and the language philosophy.
Even if it is more difficult, and you cannot see the immediate benefits, it is better to educate yourself than just being literate.