Ad
  • Custom User Avatar

    :-D

    Of course... as an programmer who's experienced other languages (C a long time ago, Java, Ruby, a little Objective-C, learning Swift), but is learning/new to Golang then my though process for each kata is.

    1. What is the obvious, potentially dumb solution to this problem.
      1a) In this case, just a for loop and do something like result = result + value
    2. But experience to date tells me that there is either a 'better' way to do it, or perhaps a more idiomatic way to do this.
    3. I don't know what it is though, so I use the tools available to me (ie. a Google search).
    4. Google search results in a StackOverflow page, and some other results.
    5. I read the StackOverflow. It teaches me about the "bytes" package that Golang has - I learned something new, as I now read https://golang.org/pkg/bytes/
    6. Also read http://golang-examples.tumblr.com/post/86169510884/fastest-string-contatenation
    7. Next step, make a decision. Make a judgement call.
      7a) Is the readability of just doing result = result + value significantly better than buffer.WriteString(value).
      7b) Decide "No", so I decide that code readability is not affected by choosing the admitedly prematurely performance optimized buffer approach.

    What I rather like about these Kata is that I find it a great tool to learn about a language. I don't treat the kata as a test of what I know now. Instead, I use it as a mechanism to direct where I research and learn.
    Same thing happens after I submit my 'answer', in that I get to learn alternatives ways to do stuff. Better ways, more idiomatic ways in the particular language etc. (I notice this more in the Swift versions).

    I think other people do treat the Kata more of a 'test' about what you 'know' without resorting to your books/internet. That too is a valid way to use this site as well. :-)