It’s all just talking.
Nadeem’s been talking about How technical writing sucks and worrying about his own abilities in this area. He even goes so far as to suggest several other people who are better at it, me included (aw Thanks Nad); although he does accuse us all of being old :-(
Then, this week, he blogs “learning a new programming language is just about learning a new syntax”
Both posts are well-worth reading, but it made me wonder why they’re two posts? The main reason IMHO that learning a new programming language isn’t just about learning the syntax is because it’s technical writing.
We’ve talked about this a lot at our Geek Book Club and I take a pretty extreme stance (nothing new for me there then). I don’t care if your code compiles; I can get code to compile because I have an unambiguous arbiter of truth – the compiler. I care that your code expresses what it is trying to do clearly, concisely and above all accurately because I have no hope of making it work (even if it compiles) if I can’t read your understanding of the problem. It’s all technical writing. It’s all just talking; telling someone else what you know about the problem.
Sure, programming languages started as a way of describing a set of instructions for the computer to follow; to understand them you had to mentally model what the computer would do with each push, pop and jump. Then we started writing compilers that would translate descriptions written in our own words (variable and function names) into whatever the machine needs in its registers.
With that came different langauges for describing different way of thinking. What happens if you’ve only been taught to think one way? What if you’ve been taught that a program is a set of inctructions for a computer to follow, rather than a language for writing about a model? Then you’d be stuffed, right?
You’d have been taught practically nothing about how to assign responsibilities to different objects in an OO language or how to think about depth-first or breadth-first searches. You’d probably not have taught about Propositional Logic (and I really don’t think that way) or Modal Logic.
But let’s look at “learning a new programming language is just about learning a new syntax” from another perspective; the language designer. This statement says that the language designer is doing nothing but making arbitrary changes to the use of semi-colons or braces; changing the choice of a few words, for, if, then. This is so incredibly disingenuous – to suggest that some of the most incredibly intelligent people in the industry are just playing with syntax.
Now, folks graduating from computing courses are not at fault for thinking that the point of a program is to tell the computer what to do – the lecturers are. Joel Agrees.
Perhaps we should be asking applicants to write a short essay rather than some code.
No comments yet.
Leave a comment
Additional comments powered by BackType
Search
What I'm Doing...
- @moustaki, would you recommend an equivalent to music ontology for visual recordings? 20 hrs ago
- @chriskeene Does the uni have it's own local weather system? (http://twitter.com/chriskeene/status/10314171215 and go left) in reply to chriskeene 1 day ago
- @_philjohn should I expect a late arrival then? in reply to _philjohn 1 day ago
- More updates...
Recent Comments
- Patents are Property – Like it or Not « Chasing the Power Curve on When Patents Go Wrong…
- Arizona Joe on Fixing a plasma TV
- alex_turner11 on Ground roundup of new eReaders at CES on CNN
- negative_charge on Hacking Into Your Account is as Easy as 123456
- infopeep on Hacking Into Your Account is as Easy as 123456
- BenenhaleyBrian on The 18 Mistakes That Kill Startups
- Brian Benenhaley on The 18 Mistakes That Kill Startups
- infopeep on The 18 Mistakes That Kill Startups
- Rob Styles on Ruby Mock Web Server
- Jim on Fixing a plasma TV
Categories
- .Net Technical (8)
- Blog on Blog (6)
- commands I have issued (9)
- Enterprise Architecture (19)
- event (4)
- Fiction Book Review (2)
- Food (2)
- Intellectual Property (9)
- Interaction Design (27)
- Internet Social Impact (43)
- Internet Technical (16)
- IP Law (10)
- Library Tech (19)
- Music (2)
- New Toy (4)
- Non-Fiction Book Review (7)
- Ontologies (6)
- Open Data (7)
- Other Technical (20)
- Personal (36)
- Random Thought (16)
- Resourcing (4)
- Review (1)
- Security And Privacy (11)
- Semantic Web (30)
- Software Business (10)
- Software Engineering (37)
- Talis Technical (9)
- Uncategorized (44)
- Working at Talis (26)
- [grid::blogpaper] (8)
- [grid::fatherhood] (4)
Archives
- February 2010 (1)
- January 2010 (4)
- November 2009 (10)
- October 2009 (4)
- September 2009 (2)
- August 2009 (9)
- July 2009 (12)
- June 2009 (5)
- May 2009 (6)
- April 2009 (7)
- March 2009 (3)
- February 2009 (6)
- January 2009 (10)
- December 2008 (4)
- November 2008 (4)
- October 2008 (9)
- September 2008 (23)
- August 2008 (8)
- July 2008 (1)
- June 2008 (1)
- May 2008 (6)
- April 2008 (14)
- March 2008 (3)
- January 2008 (5)
- December 2007 (6)
- November 2007 (13)
- October 2007 (9)
- July 2007 (2)
- June 2007 (1)
- May 2007 (10)
- April 2007 (5)
- March 2007 (11)
- February 2007 (10)
- January 2007 (13)
- December 2006 (8)
- November 2006 (8)
- September 2006 (2)
- August 2006 (1)
- June 2006 (2)
- February 2006 (2)
- January 2006 (3)
- December 2005 (3)
- November 2005 (2)
- September 2005 (2)
- August 2005 (5)
- July 2005 (8)
- June 2005 (3)
- May 2005 (2)
- February 2005 (1)
- January 2005 (4)
- December 2004 (3)
- November 2004 (6)
- October 2004 (2)
- September 2004 (2)
- August 2004 (5)
- July 2004 (1)
- June 2004 (4)
- May 2004 (4)
- April 2004 (3)
- March 2004 (13)
- February 2004 (6)
- December 2003 (3)
- November 2003 (1)
- August 2003 (2)
- July 2003 (1)
- June 2003 (2)
- May 2003 (1)
- March 2003 (1)
- January 2003 (1)
- October 2002 (1)
- May 2002 (1)
- March 2002 (1)
- August 2001 (1)
- May 2001 (1)
- April 2001 (1)
- January 2001 (1)
- December 2000 (1)
- November 2000 (1)
- December 1999 (1)
- November 1999 (1)
- July 1999 (1)