ifacethoughts

Difference Between Knowing Programming and Knowing Syntax

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.

Discussion [Participate or Link]

  1. Josh said:

    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.

  2. ryan said:

    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.

  3. artist said:

    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.

  4. passat said:

    Good article!

    So, what is your practical advice? how to get educated myself? any reading roadmaps? or list of books you can recommend?

    Thanks!

  5. Abhijit Nadgouda said:

    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 🙂

  6. doylecentral said:

    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.

  7. Michael Sync said:

    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.. 🙂

  8. Nobody’s Life » ?? ????? said:

    […] ?? ???????? ????? ?????? ????? ?? ??????? ? ???????. Difference Between Knowing Programming and Knowing Syntax – ?? ? ?????? ????? ?????? ??? ? ???? ??????. ????? ?? […]

  9. Dan said:

    This is where titles such as Software Engineer and Programmer/Developer come in handy.

  10. Haze said:

    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.

  11. Nicolas said:

    Very good article !!!

  12. Montoya said:

    To learn syntax, you study coding.

    To learn programming, you study MATH and SCIENCE and LOGIC and CRITICAL THINKING.

  13. Like Ra said:

    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.

  14. Marc B said:

    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.

  15. Me said:

    Hmm. It all confuses me.

    I’m so retarded at times.

  16. Richard McLaughlin said:

    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.

Say your thought!

If you want to use HTML you can use these tags: <a>, <em>, <strong>, <abbr>, <code>, <blockquote>. Closing the tags will be appreciated as this site uses valid XHTML.

freshthoughts

contactme

Abhijit Nadgouda
iface Consulting
India
+91 9819820312
My bookmarks

badgesand...

This is the weblog of Abhijit Nadgouda where he writes down his thoughts on software development and related topics. You are invited to subscribe to the feed to stay updated or check out more subscription options. Or you can choose to browse by one of the topics.