Hacker News new | ask | show | jobs
by zafriedman 5027 days ago
As both a programmer and a poker player I have strong opinions on the subject. In turn:

"Math is useful I see a lot of people around telling “I don’t need math”. In poker (and in programming) you need a lot of math, even for simple operations."

I think the importance of math is overstated in poker. When you look at a hand you must determine your chance of your hand improving, which is a straightforward mathematical exercise. You must also determine your opponents chances of improving his hand, which is also a straightforward mathematical exercise, but is complicated by the fact that you can't see the cards your opponent has. So once you have pegged your opponent for a certain hand based on his or her behavior earlier in the hand as well as any previous knowledge you have of the player, if applicable, then again straightforward math. Finally, professional/skilled poker players always calculate the odds the pot gives them versus the odds that either their hand will improve or the odds that in the specific situation they can expect to win the pot, and they further must consider what odds they are offerring to their opponent by their actions. Weighing those factors pretty much completes the degree to which mathematics plays a role in no-limit Texas Hold'em.

"Be fast and precise In online poker you can’t think hours for your next move. If you are a programmer you should be fast-thinking and precise. Fast and no errors."

While this resonates much more for me in vis a vis poker, I think this is borderline idiotic in the sense of programming. In poker you must act fast because it is forced upon you in the context, you have no choice. Think of it like using Javascript before Douglas Crockford came along and enlightened you to the good parts of the language, the only reason to use it was because you had no choice! But in programming, to say that you have to be "fast and [make] no errors" is stupid insofar that it's an obvious goal of which stating serves no purpose. It's like when I tried to explain to a non-programmer friend of mine the concept introduced by Jason Fried of "getting good at making money". He thought it was the stupidest thing he'd ever heard, like as if someone saying "I'm going to work hard to improve my skill at making money" is going to in any way have a causal relationship with the actualization. I probably didn't do Jason justice in setting the right context for my friend, nevertheless I think this phrase exhibits the same logical fallacy.

"If you want to try poker there are a lot of free poker games on facebook, iPhone, etc… Don’t waste your money. The fun is the same."

You'll never get good if you're money is not on the line. Now, I'm not saying that one should get in over their head, or even wager large amounts of money, especially when learning to play poker. However, you will simply not see the real scenarios and wrestle with the real hands that make you a great poker player, unless you and your opponents are playing for money. My impression of free poker games is that they mimic televised poker. Televised poker is for entertainment, not education, so the hands that are shown are epic bluffs, balls-to-the-wall all-in wagers, and other 5%-ish hands that provide the greatest level of excitement to viewers. I'd do the same thing if I was a TV producer, but it's not real poker. My point in this tangent is to illustrate that 95% of winning and loosing in poker comes down to average-plus hands beating average-minus hands. And while no hands are trivial in poker, playing an average-x hand against an opponent who holds the counterpart is ridiculously challenging. You will not have the motivation to really wrestle to find the answer without your money on the line, and getting good at finding out how to induce small mistakes in your opponent is basically synonymous with becoming a good no-limit Texas Hold'em player.

And finally, a gaping omission in my mind:

Poker is great for programmers (and maybe more accurately entrepreneurs) because it is a game where the perfect amount of information is available such that a skilled player, in the long run, can expect to have a positive ROI when playing against players of lesser skill. No-limit Texas Hold'em in particular, is the epitome of this. At the height of its popularity when big no-limit tournaments were attracting deep-pocketed beginners, a skilled player could expect his tournament entry fee to be worth 5 to even 10x its value in terms of expected value each time. The concept of imperfect information is resonant in entrepreneurship I think for sure, and as for it's benefits with programmers, I believe the best way to think about it is that poker in beneficial because it ostensibly uses the same cognition as design patterns in software engineering. You have a problem to solve with a variety of factors, and you apply patterns to solve those problems based on your knowledge and the past experience of others who have blazed the trail before you.