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.

October 29th, 2007 at 5:31 pm
Very true. And the best way to learn to ‘program’ (as opposed to coding by rote) is just to keep trying. Experience is very valuable and should not be underestimated. In time you’ll be able to look at a problem and see it as a combination of smaller problems, all of which you have coded the solution to before.
October 29th, 2007 at 7:56 pm
I couldn’t agree more. Programming is full of design, and without knowing the language and when/where/why to use certain things, the design part of it is lost.
I’ve taken a lot of time to study and learn patterns and higher level models of language structure, and it sometimes annoys me when people think they can come in and read a couple of chapters of some book and then compare their work with mine. Maybe that’s just me, but if you’re not willing to work hard, nothing will come out of it in the end; you’d just be wasting your time.
Good post.
October 30th, 2007 at 9:05 pm
I like this:
But you need to be educated to inform yourselves with it and apply it to make a difference in your life.
The purpose of programming v/s syntax is making the difference.
October 31st, 2007 at 9:42 pm
Good article!
So, what is your practical advice? how to get educated myself? any reading roadmaps? or list of books you can recommend?
Thanks!
October 31st, 2007 at 11:15 pm
Thanks for your comments.
passat, one of the things I will suggest is to read about general programming concepts, datastructures, algorithms, design, architectural concerns. Typically they are language agnostic. Also thinking about other platforms
Another aspect that is important is to realize that any software program always strives to achieve a balance between certain factors, like performance, scalability maintainability, readability, extensibility and so on. I started looking at languages anew once this struck me.
As far as books go, The Art of Computer Programming by Donald Knuth, The Pragmatic Programmer by Andrew Hunt and David Thomas, Code Complete by Steve McConnell, The Mythical Man Month by Frederic Brooks, Refactoring by Martin Fowler. Once I started on these, I kept finding more and more to read
November 1st, 2007 at 4:19 am
Go to amazon make a list of all the ones stated above. Then use the amazon suggest to find others it’s a bit of fun. Also, if you don’t have the Pragmatic Programmer take a peek at it, chalk-full-o-wisdom.
November 1st, 2007 at 9:12 am
Yeah. it is very true.. Concept is the king… After working more than 5 years in software development, I have done a lot of projects in so many different languages… sometimes, I can’t remember all syntax for all languages but I know the concept how it works.. so, it is pretty fine..
November 1st, 2007 at 3:53 pm
[...] ?? ???????? ????? ?????? ????? ?? ??????? ? ???????. Difference Between Knowing Programming and Knowing Syntax – ?? ? ?????? ????? ?????? ??? ? ???? ??????. ????? ?? [...]
November 1st, 2007 at 9:42 pm
This is where titles such as Software Engineer and Programmer/Developer come in handy.
November 4th, 2007 at 8:43 am
As a student learning Computer Science I couldn’t agree more with this.
I am lucky in that the concepts come to me quickly, however, one of my friends who is taking the same course just doesn’t “get” these things and just tries to rote learn everything.
As a result, I spend far less time/effort to produce a better result.
November 5th, 2007 at 4:52 pm
Very good article !!!
November 9th, 2007 at 12:05 am
To learn syntax, you study coding.
To learn programming, you study MATH and SCIENCE and LOGIC and CRITICAL THINKING.
November 24th, 2007 at 5:53 am
Sorry, I disagree.
Difference between knowing programming and knowing syntax is NOT the same as between being educated and being literate. But close to between a literate and a novelist. Or between those who can read, understand and compose simple blog comments (like me) those who can write what is called “literature”.
Also, what is “knowing programming”? Knowing methods? Like different sorting algorithms? That’s just using blocks invented and written by others and some experience to combine them together.
Knowing the concept? That’s for managers and not related to the programming.
“Programming is a poetry”. This is what I agree with. But this is something different to what’s discussed here.
February 10th, 2008 at 11:14 am
i think it goes beyond poetry.
between the hours spent learning the language, then hours writing the program then possibly spending days tailoring the functionality and finding bugs…
…complex math, hundreds of variables to remember, deadlines looming…
…and im afraid to speak the name of the demon that makes you scrap an entire program and start over because of too many bugs, crashes or lack of efficiency…
sorry art fans, but most art can not possibly involve the amount of blood, sweat, frustration and punches to the wall as a complex program.
March 22nd, 2008 at 12:50 am
Hmm. It all confuses me.
I’m so retarded at times.
May 3rd, 2008 at 3:58 pm
Spot on, I went to university to study programming and I know syntax. I have managed programmers and was able to talk through their issues, and occasionally helped fix them. Usually I was busy as a sounding board – someone the programmers did not consider a total idiot who they could talk through their issues.