On Wed, Jan 18, 2012 at 4:46 AM, James Reeves <jree...@weavejester.com> wrote:
> On 17 January 2012 20:46, Dennis Haupt <d.haup...@googlemail.com> wrote:
>> i've noticed this since i started to work as a programmer 10 years ago.
>> programmers in general are supposed to be good at finding simple
>> solutions, but my experience is: they are not. on the contrary, many
>> suffer from their individual tunnel visions without being aware of it.
>> to a hammer, everything looks like a nail.
>
> To borrow from Stuart Halloway: simplicity ain't easy.
>
> The example solutions you provide from non-programmers seem
> straightforward, but that's because they're instructions designed to
> be followed by a human being, who can infer and reason, rather than a
> programming language that is constructed around the idea of precise
> commands.
>
> For instance, "you just make pairs" hides a considerable amount of
> depth. How do you make pairs? You might select one number, then look
> for another number that is identical, but how do you ensure you don't
> pick the same number?
>
> Or what about "count how often a number is in the list". Again, it
> seems a simple thing to do, but only if you're giving instructions to
> a human. In programming there are many additional questions, like
> where to store the numbers whilst you're counting them. Do you go
> through the whole list for each number, or do you go through the list
> once and keep a tally? If you keep a tally, which data structure
> should be used to implement this?
>
> It's often a lot easier to find a complex solution to a problem than a
> simple one. Simple solutions are hard work to find.
>
> - James
>

+1 That is what I wanted to answer. Just try to write program for
collecting pairs and see what happens.
That solution could be simpler for a human - but then why do you speak
of programmers?
Yes the hammer is the computer in this case and some tasks perhaps
cold be solved in more straightforward way given some creativity is
applied. But then, again, we are talking about (digital electronic)
computers here?

My observations show that over time I am able to find simpler
solutions and experience clearly amplifies this. Initially this starts
with just knowing more shortcuts or most effective ways of using some
given technology or tool. But then there is more: now I often can see
redundant or unnecessary aspects of some systems that account for say
20-30% of whole codebase. This is the thing that my colleagues with
little experience usually do not see since it is always obscured by
numerous implementation details. Experience allows to concentrate less
on details of particular technology and more on a problem itself.

-- 
Petr Gladkikh

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to