Life In 19x19
http://www.lifein19x19.com/

Programming vs Go
http://www.lifein19x19.com/viewtopic.php?f=10&t=11703
Page 1 of 3

Author:  LokBuddha [ Sun Apr 12, 2015 9:18 pm ]
Post subject:  Programming vs Go

Which one is harder, Programming or Go, in term of learning progress and time to become competent say 1d amateur in Go as in Programming? from the perspective of programmer and non programmer.

Author:  Kirby [ Sun Apr 12, 2015 9:37 pm ]
Post subject:  Re: Programming vs Go

There is no "1d" in programming. Can you make a more specific bar for competency in programming? That would make it easier to answer the question.

Author:  emeraldemon [ Sun Apr 12, 2015 9:42 pm ]
Post subject:  Re: Programming vs Go

I think the most important difference is that playing go is ultimately one thing, where programming is many things. Once you progress beyond the basics there are a wide variety of tasks and concepts in programming, and becoming an expert in embedded systems, for example, won't necessarily give one that much of an advantage in creating a GUI (or formal verification, or scientific computing, or databases or networks or security or algorithms or). There are some deep concepts that can be helpful in a wide and surprising set of problems, but it's pretty different from go, where there is almost no variation in what it means to play (maybe you can specialize in blitz vs slow games or something).

Author:  Kirby [ Sun Apr 12, 2015 9:49 pm ]
Post subject:  Re: Programming vs Go

emeraldemon wrote:
I think the most important difference is that playing go is ultimately one thing, where programming is many things. Once you progress beyond the basics there are a wide variety of tasks and concepts in programming, and becoming an expert in embedded systems, for example, won't necessarily give one that much of an advantage in creating a GUI (or formal verification, or scientific computing, or databases or networks or security or algorithms or). There are some deep concepts that can be helpful in a wide and surprising set of problems, but it's pretty different from go, where there is almost no variation in what it means to play (maybe you can specialize in blitz vs slow games or something).



Maybe I'm playing devil's advocate, but could you make an analogy between having specific Go knowledge (opening patterns and/or joseki) to being an expert in different programming areas? For example, if you study a particular variation of the mini-chinese opening, you could consider yourself "an expert" in that particular variation. It might not win you games, but it would be something to add to your tool belt as a go player.

It might then be said that it is not tidbits of "go knowledge" that make you a good go player, but rather reading ability, etc. Perhaps the same argument could be made for programming - good programmers are good at logic and solving problems, regardless of their expertise in that area... Maybe?

Author:  schawipp [ Sun Apr 12, 2015 10:47 pm ]
Post subject:  Re: Programming vs Go

IMHO the main difference is that in Go mistakes make you lose a game while in programming they make you start a debugger.

Author:  John Fairbairn [ Mon Apr 13, 2015 1:04 am ]
Post subject:  Re: Programming vs Go

There may be a parallel in martial arts. It has been claimed that when weaponry reached an unsurpassably high standard in the Far East (e.g. the Japanese sword), martial artists turned inward and tried to improve themselves - the Way of the Warrior. This led not just to being able to do tricks with qi and so on, but to longevity of masters. In the west, once a weapon reached a supposed peak, people still tried to improve it, or invented something new and much more devastating.

Until very recently go was seen as the Way of Go, in which personal improvement played a very big part. Those who mastered themselves and so were able to have not just glittering careers but long ones (among modern players: Go Seigen, Sakata, Cho Chikun, Cho Hun-hyeon, Chen Zude...).

The very latest players, in contrast, appear to be nine-day wonders. At the very least, it's clear that they have entered the gladiatorial arena too early to have had time for personal improvement. Go as a profession is becoming "westernised" - too much emphasis on PR, TV and the internet - and players have become disposable commodities.

Programming for the most part is like the western arms race. It's no coincidence people talk of the "next killer app" or the next big language. No doubt someone will put forward a counterexample, but I've seen very little evidence that programming improves (or perhaps "tempers" is better) the inner individual in the way that go can.

Not saying I believe all that, but there's maybe food for thought there.

Author:  Uberdude [ Mon Apr 13, 2015 1:54 am ]
Post subject:  Re: Programming vs Go

schawipp wrote:
IMHO the main difference is that in Go mistakes make you lose a game while in programming they make you start a debugger.


Programming (or rather software development and testing process) mistakes can make people lose lives:
https://en.wikipedia.org/wiki/Therac-25

Author:  schawipp [ Mon Apr 13, 2015 2:41 am ]
Post subject:  Re: Programming vs Go

Uberdude wrote:
Programming (or rather software development and testing process) mistakes can make people lose lives:

Yes you're correct. With my short comment I wanted to say that in strategy games such as Go the punishment of mistakes (either due to correct play of the opponent or due to time control) is a process which happens automatically and mainly out of your own control (unless your opponent makes a bigger mistake afterwards, but that's merely good luck then). In programming, you have always the possibility to test your code and refine it within several iterations. It is in your own control and responsibility (and resource limitation) to decide when a code is in a state that it can be released. As you already mentioned, a mistake in the code development cycle can ruin your colleagues, the company you're working for and many of the users and even threaten their life under special circumstances, while in Go it can only cost you the title and price money (and last but not least your Dan/Kyu rank... :shock:). Therefore, programming can be much more challenging than playing strategy games, which seems not surprising at all.

A Go-related activity more similar to programming seems analyzing a complicated Tsumego, where you sleep over your first solution and try to verify and/or find a better one the next day.

Author:  LokBuddha [ Mon Apr 13, 2015 8:51 am ]
Post subject:  Re: Programming vs Go

What about the time to master programming vs go? Like becoming pro level or high Dan amateur

Author:  joellercoaster [ Mon Apr 13, 2015 9:14 am ]
Post subject:  Re: Programming vs Go

That's tough.

"Master" is tricky.

I would say that I am a Pro level programmer (I do it for a living, I started learning when I was about 8 years old (32 years ago) and I have achieved a high level of professional success) though not 9p. I'm not famous - maybe 7p based on many accumulated wins, teaching young pros and long graft rather than winning glamour tournaments and going toe to toe with the great champions of the age.

I am at best a mediocre Go player, so my knowledge of how hard that level of Go is to achieve is almost zero. In particular, the level of competition to achieve Pro status (based on the available funding economically, vs the number of people wanting to achieve it) is hard for me to understand based on comparison to programming. You can make a living as a pretty crappy developer - certainly much less than what I'd think of as amateur 1d - but achieving the respect of one's peers and amateur participants... that is an interesting question.

But I would say that what the two activities have in common is that they constantly reveal layers of understanding. It's possible to play Go at 20k and enjoy it. A series of epiphanies, whole structures and layers of knowledge, reveal themselves gradually as you become more skilled. Are you enjoying it more? Maybe, maybe not, but you are definitely getting deeper. These things you had no idea existed are appearing. You gain strength.

This process continues, apparently forever, though the epiphanies at my level of programming maybe happen only every several years now and they are maybe more subtle. Is this like gaining a stone? Maybe that's a long bow to draw.

Interesting question.

Author:  Solomon [ Mon Apr 13, 2015 10:07 am ]
Post subject:  Re: Programming vs Go

I think the only way this can be made somewhat comparable is if we look at, say, TopCoder ratings and Go ratings and ask, for example, whether achieving 2000 TopCoder rating is harder than achieving 1d in the AGA or something along this line. Of course, TopCoder skillz != programming (but maybe TopCoder skillz ⊂ programming?), but 'programming' is too broad to be compared with a board game.

Author:  Polama [ Mon Apr 13, 2015 10:31 am ]
Post subject:  Re: Programming vs Go

Kirby wrote:

Maybe I'm playing devil's advocate, but could you make an analogy between having specific Go knowledge (opening patterns and/or joseki) to being an expert in different programming areas? For example, if you study a particular variation of the mini-chinese opening, you could consider yourself "an expert" in that particular variation. It might not win you games, but it would be something to add to your tool belt as a go player.

It might then be said that it is not tidbits of "go knowledge" that make you a good go player, but rather reading ability, etc. Perhaps the same argument could be made for programming - good programmers are good at logic and solving problems, regardless of their expertise in that area... Maybe?


I would equate joseki to familiarity with a general technique or library, let's say websockets or functors or the MVC design pattern. If a problem calls for a parser, I know I could reach for YACC. Like joseki, it might be the wrong solution for the board. And like joseki, a good programmer can reason out moves in unfamiliar territory. But a professional programmer can solve a lot of problems just from memory.

Something like sabaki or fighting ability or positional judgement I'd equate to a subfield of programming. Sometimes I have to get deep into math heavy bit-fiddling, using masks and shifts and such to do high efficiency calculations. Other times it's very high level how do I lay out these classes to keep everything as simple as possible? Writing code is nothing like debugging it. As in Go, each programmer has strengths and weaknesses, but a 'professional' is adept at all of them, perhaps really shining in one area. As in Go, you can make up for deficits in one skill set with strengths in another.

The opening is like designing a program: you choose a few joseki/technologies and think very abstractly and broadly about the whole board, trying to forsee problems and balance plans against each other.

Most of programming is like the early middle game, except more open: You've got tons of choices as you lay down the code, two approaches can both take you to the end, but along very different paths.

Very logical/mathematical code and debugging are like the late middle game and end game. You need to understand what's been written already very well, and you're looking for 'correct' solutions.

Which one is harder? I think it just comes down to which one you're more excited about a long session of. I found the 30kyu-10kyu curve much easier in Go, but once I got past that, I've found it much easier to continue being dedicated enough to programming to keep improving towards mastery.

Author:  Bantari [ Mon Apr 13, 2015 12:31 pm ]
Post subject:  Re: Programming vs Go

To me, the are big difficulties in comparing programming skills to Go skills.
There are several factors which make it quite different.

  • Time:
    As a professional programmer, I have spent many years doing what I do every day, virtually 10 hours each day, sometimes more. I cannot even imagine putting that much time into Go. I am not sure even pro players do that consistently, year after year after year... I suspect that if I put the same time and dedication into Go, I would have been a pro player by now, easily. Unless I am just not smart enough, which is very possible.

  • Knowledge:
    In terms of knowledge, Go moves from broad concepts to increasingly narrow ones, until at some point the nitty-gritty is too fine for my mind to grasp. I guess everybody comes to this point eventually, maybe in different places. In programming, however, the process as I see it is completely different. The basic concepts remain largely the same, (or at least the same depth) - but you need to keep re-learning the technology. In that sense, the difficulty is not as much refining the concepts as adjusting them to work in different environments.

  • Dedication:
    Programming pays my bills and puts food on my table, it supports my family (especially since my wife is a programmer as well.) I cannot say the same for Go. Thus, I will always treat these two activities differently - Go will never even approach the seriousness with which I treat programming. Go is only a hobby, and will never be anything more for me. Programming is my life. And what's more, to those of us who think Go is their life, I say this: you are either very young, or very naive, or doing great injustice to yourself and your family. Unless you are a pro, of course.

    Anyways, in this context, the only sort-of meaningful comparison could be done by an ama Go player and an amateur programmer (or pro Player who is also pro programmer.) I think that Kageyama said something like: amateurs play the game, pros lagour in it. It is a huge difference! Speaking from personal experience, I have not met many amateur programmer who were competent. Including myself - since I used to be ama programmer and ama Go player at some point long time ago...

  • Mentality:
    From my very limited understanding of Go, I can see some differences in the way I apply my thinking to Go vs. to programming. It is hard to explain in a few words... Go is a lot about psychology, very artistic, but also logical. Ideas do not always need to be correct to work well, sometimes it is enough for them to be surprising... or tailored to specific player. Ideas and moves are very fluid in their evaluation - evaluation might change with the opponent, game type, time of day, etc. Programming is much 'colder' and logical than that - there are still ideas and artistry, but their evaluation is much more binary: they work or they don't.

  • Comparison:
    In programming, I say that western "civilization" don't need to hide behind nobody! Many programmers I know (of) are among the absolute top of the world - and these are the people I compare myself to (not very favorably, mind you, but still - that's my yardstick.) When somebody says "I am a good programmer" - I assume it is in this context and with respect to the best in the world, even if they come short. Now what about Go? What if somebody in US says "I am a good Go player" - who do they compare themselves to? Local club members, the best of which might be 3k KGS? People talk about "mid-dan level" (I assume KGS) - what does that mean? Is that good? Or would they be laughed out of any asian Go club with that attitude?

    In short, if we have a scale of 1-100, with 100 being top of the world, we might be comparing 1-50 on Go scale with 1-100 on programming scale, and asking "how does 25 on Go scale compare to 75 on programming scale?" - not a good or meaningful comparison at all!

All in all, I believe Go and programming are completely different animals. Evaluation is subjective. Its like people asking "what is tastier, appes or oranges?"

Having said the above, there are certain metrics which can be reasonably compared, not sure if it is meaningful, though.
For example:

  • Support:
    How easy it is to make a living with Go vs, with programming. In this light, programming is infinitely easier. I think this goes both for the West and the East and everything inbetween.

  • Enjoyment:
    How many hours of learning does it take for a person to start enjoying it? And in this light, Go is infinitely easier - from my experience. I enjoyed Go from the first stone I ever placed on a board, while programming I had to learn for some time before it became truly fun.

  • Personal:
    What do you, personally, like more? But what does it mean to anybody else if you say you prefere one over the other? Not much, I would say. For the record, I enjoy both, but programming more often. Although there are times when I am tired and I like Go better. However - there are times I like WoW more than both of them, heh...

  • And so on...

So I think that before asking such questions, a person should narrow the parameters a lot, and then wonder if the answer will really reaveal anything of value.

PS>
For what it's worth - I think that to become the best in the world, in any field, is equally difficult. But this is all I can say with any conviction, I'm afraid. And even that might be subjective. ;)

Author:  Kirby [ Mon Apr 13, 2015 2:58 pm ]
Post subject:  Re: Programming vs Go

Bantari wrote:
And what's more, to those of us who think Go is their life, I say this: you are either very young, or very naive, or doing great injustice to yourself and your family. Unless you are a pro, of course.


Why? Doesn't this simply mean that such people have different priorities than you?

Author:  Bantari [ Mon Apr 13, 2015 3:31 pm ]
Post subject:  Re: Programming vs Go

Kirby wrote:
Bantari wrote:
And what's more, to those of us who think Go is their life, I say this: you are either very young, or very naive, or doing great injustice to yourself and your family. Unless you are a pro, of course.


Why? Doesn't this simply mean that such people have different priorities than you?

Yes, this is exactly what it means. And in my book, if you put higher priority on your hobby than on your own family and your own future, your priorities are wrong. And you will hear me say (or at least make me think) what I said above: you are either young, or naive, or whatever... selfish maybe?

But this is only my personal opinion, and you should feel free to live your life any way you please. Just be prepared for people judging you by the choices you make and actions you take.

Author:  Kirby [ Mon Apr 13, 2015 3:41 pm ]
Post subject:  Re: Programming vs Go

Bantari wrote:
Yes, this is exactly what it means. And in my book, if you put higher priority on your hobby than on your own family and your own future, your priorities are wrong. And you will hear me say (or at least make me think) what I said above: you are either young, or naive, or whatever... selfish maybe?


I think we'd better be clear here. You said:
Bantari wrote:
Programming is my life.


This, combined with the above, seems to suggest that to you, putting priority in programming equates to putting priority on your family and on your future. I don't see it this way. I spend significant quality time with my family, and I also think about my future. But not because of programming. Just because I prioritize go above programming does not mean I prioritize go over my family. In fact, if go reduces my stress, and allows for me to be happy, I'd say that it is more beneficial for my family life than my programming job, which can be stressful.

To me, there is one thing that programming buys me, which go does not: money. But if I can still support my family, spend quality time with them, and live a happy life... I fail to see how this is selfish.

Author:  Boidhre [ Mon Apr 13, 2015 3:59 pm ]
Post subject:  Re: Programming vs Go

I inferred from the "10 hour days" comment that he's talking about someone sinking (long term) full time work hours into go. We all do it at weekend tournaments but if you were doing this during the week it'd be hard for it not to be affecting your family life if you're settled down with kids. Doubly so if you were fitting it around a work schedule. If you were in your early twenties and on break from college without a need to work for the summer then, eh, more power to you?

I've seen people do this, not with go, and be gone every evening and most of every weekend pursuing hobbies with the wife and kids left at home. I don't approve of such personally.

Author:  Kirby [ Mon Apr 13, 2015 4:50 pm ]
Post subject:  Re: Programming vs Go

Well, I think there's something to be said for where your heart is, where your thoughts are, and what you are really passionate about in life. These things all contribute to what your life "is".

To me, the fact that you might have to be physically at your office for 10 hours in a day doesn't mean that that's what your life "is". In the same way, just because I have to pay a lot of money toward taxes doesn't mean that my life is about taxes. These are just things I do, since it's the way that society works. I don't think they define who I am, unless it's where my passion is.

Author:  Loons [ Mon Apr 13, 2015 6:37 pm ]
Post subject:  Re: Programming vs Go

Matlab Programming is a hammer, go is an extremely fancy spec of nail.

Author:  daal [ Tue Apr 14, 2015 10:30 am ]
Post subject:  Re: Programming vs Go

LokBuddha wrote:
Which one is harder, Programming or Go, in term of learning progress and time to become competent say 1d amateur in Go as in Programming? from the perspective of programmer and non programmer.


Why do you want to know? You might get some better answers...

Page 1 of 3 All times are UTC - 8 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/