There is another reason why you might chose spirals over rows which is that while spirals are more opportunist and agile, rows require you to work harder at the start and then reap your rewards later - perhaps a little more waterfall.
Regardless of approach, your opening bite requires pushing your teeth down in between unharvested rows rows and clearing out a patch of cob. On the second bite however you can now chose between the base of your newly cleared patch which is literally the "low hanging fruit" (spiral approach) or move directly along and open up a new row (row approach).
The base of your open patch offers good purchase for your upper teeth, high visibility of any oddities that may be lying under the surface and a good understanding of how much you're going to be able to expect from the next bite based on what you just had. Should you find that the cob is too much for you, you can also chop the remainder off, wrap it in clingfilm and keep it for later (or feasibly offer it to another diner).
A row approach means opening up the whole cob in one go. It's hard work at the start and you're fully committed. If you give up half way through you can't really offer your corn to anyone else or bag it for later - it's basically a mess. That said, after that first push you'll never need to open up any new rows and the rest of the process is pretty formulaic - you get all of the uncertainty out of the way at the start.
From this I'd also guess at the following correlations:
Row eaters:
- tend to start projects solo & keep going on their own
- tend to have a lot of unfinished projects that don't work
- like to tackle "big picture problems"
- tend towards optimism
Spiral eaters
- happy to break projects down and collaborate. Unfussed by solo or otherwise
Hah! Amazingly I am a row eater and everything fits (algebra as well).
I can't stop to think that everything we do can be analyzed and determine what kind of person you are. Makes me scared of what facebook and google can tell about a person if you can take this much out of simply eating corn.
Hmmm. I'm an odd one. I eat about 10 kernels from left to right and then move down a row, and start from the beginning going right, eat another 10 kernels, repeat... I'm excruciatingly terrible at math. I start things and never finish them. I'm addicted to instant gratification. I'm a perfectionist (until I burn out). I'm highly creative. Extremely introverted. Lone wolf. And I hate waste. So I'm screwed.
It doesn't have any impact on your predilection for algebra or analysis, it just makes you a heathen heretic who doesn't understand the greatness of corn on the cob. Unless you have dental issues, or are 6, the corn is to be eaten on the cob.
I absolutely love Perl, but "neat and orderly" is not the first thing that comes to mind. I think you'd need to have some sort of literary preference indicator (something like how you brush your teeth indicates whether you like Hemingway or Steinbeck, and Perl or Java), rather than a mathematical preference indicator, to determine one's propensity for Perl.
I remember enjoying this the first time and on this visit I was like woah btilly wrote this!
I am row, algebraist, functional.
What I find interesting is, if your correlation is true and given that Analysis and algebra are duals (in the category theoretic sense) to each other - what does this say about what the brain is doing?
I will also suggest that functional programmers are algebraists and OOP are more likely to be Analysts.
From day one a functional programmer is taught about disjoint unions, product types, and structural recursion on algebraic types. The more motivated (typically most via self selection) go on to learn all about initial algebras, monoids, monads and algebras in general. Functional Programmers are algebraists and not just by allusion.
Then we have OOP. I don't know how to place it since it is so broadly defined and is not as enamored with mathematics as functional programming tends to be. Hmm. Abstract Data types are very close to objects and are known to be coalgebraic - like objects from analysis. OOP also has abstract classes that are kind of like a final object.
Erlang is typically stacked with functional languages but is actually more co-algebraic and so closer to OOP. Which says something about OOP done right - I hope the OOP bashers don't throw the baby out with the bathwater.
Weird. I got heavy into algebra, algebraic topology, and graph theory early on and never cared a whit for analysis. I eat like a typewriter.
In my home state of Georgia the two major public universities are very lopsided in their math departments. University of Georgia is very strong in algebra and Georgia Tech is very strong in analysis. I went to both but fit in much better in the former department.
I have a bunch of job interviews coming up - I'm going to ask my interviewers how they eat their corn as a wedge into discussing problem solving strategies on their teams.
As an algebraist who would be classified under "spirals" here I just think the corn looks more interesting if I leave bands of kernels in the first pass and then pick them up in the second. Definitely sounds like a more algebraist-focused reason for it, too :)
I eat in both spirals and in rows. Sometimes sticking with one method all the way through, sometimes alternating along the way. Additionally, sometimes I take great care to cleanly peck each and every kernel out of its socket. Other times I mow through it like a wild animal, bits of corn strewn around my mouth.
I have always loved math, and I always want to dive in deeper, but can never quite figure out exactly what area to jump into...
A large portion of my math courses in school were Statistics courses (as they were requirements). Spending 4 weeks learning how to use R every single class got old quick. The actual meat of the topics could have been more interesting with a proper approach.
My favorite topics that I have messed with so far are probably Number Theory and Logic. Pointers to resources or book recommendations welcome.
I very much enjoyed and learned from Ireland & Rosen's "A classical invitation to modern number theory". "Number Fields" by Marcus is also good, but that focuses more on the algebraic side of number theory.
I'm very confused by the idea that OOP would be considered somehow more "algebraic". Functional programming seems way more algebraic to me. I mean, writing Haskell seems about as algebraic as programming gets even without using monads or other such very-high-level abstractions. Also, odd where he puts emacs/vi compared to where he puts programming languages, considering that emacs uses Lisp. (FWIW, I prefer algebra, and I tend to eat corn in patches.)
Algebra is the study of sets and their operations.
In OOP you spend a lot of time defining sets (classes) and coming up with operations on those sets (methods).
In FP you're not so concerned about coming up with sets and operations but rather breaking things up into ever smaller pieces. I mentioned elsewhere that analysis is about starting with big circles and making them arbitrarily small. This is pretty much what recursion is.
There's a neat connection between comonads and OOP.
Comonads are used to describe context-dependent computations. In OOP, you might define a class along with some instance methods (which access private fields or somesuch in order to manipulate the state of the program).
The connection between comonads and OOP arises when you think of a comonad where the "context" is an instance of your class -- so your class methods are the context-dependent computations.
> Going out on a limb, I wouldn't be surprised to find out that where people fall in the emacs/vi debate is correlated with how they eat corn. I wouldn't predict a very strong correlation, but I'd expect that emacs is likely to appeal to people who would like algebra, and vi to people who like analysis.
I would guess exactly the opposite way. Vi defines a sort of a composable language for editing text. Commands are combined of atoms giving a verb describing an action, number of times to repeat and movement over a range to apply the action on. It all becomes a semi-algebraic system of text editing.
Hehe, I'm on both sides and it shows in all three directions. I like all areas of math once I get to know them, and I'm currently rolling numerical computation tools in Haskell :p
(as my job! its pretty great. shoot me an email if that sound fun and you'd like to learn more )
A) I hate getting the kernel skins stuck in my teeth. This happens when eating directly from the cob. I spend dozens and dozens of minutes picking, flossing, and sucking my teeth to get them clean. I'd prefer to shave the kernels off with a knife.
If I must eat from the cob:
B) Cobs with husks attached-- you get these at festivals and fairs. Sometimes they're so frickin' delicious you have to just put up with the A) issues. I'm eating it like a dot matrix printer prints on its drum, from one end to the other, rotate a bit and do it again. Cuz it's hard to rotate more with the damn husk in the way.
C) Cobs without husks-- family gatherings with plastic utensils that couldn't shave a cob in any circumstances. Start at the left end and spin the cob until that section is clear; move slightly right, repeat.
So I'm a pragmatist. And this post had me spending far too much time analyzing and posting about my corn eating habits.
This brings up the issue of handedness: stem in the left hand, or stem in the right hand? I'm guessing you're right-handed, thus the left end is the pointy tip of the corn?
I eat corn exactly as you do in (C) (more or less in columns; clear a column of all corn, then shift over to the right exactly one mouth width). The difference though is that I hold it with the pointy end to my left and the stem end to my right, but I start at the pointy end. I'm left-handed.
Fascinating! I've made this the daily poll question on Correlated (http://www.correlated.org). Let's see what other surprising correlations we can make from this!
Rows are superior to spirals, because you can eat up all grains while having to turn the cob only once. The minimal number of turns you have to make when eating in a spiral is the length of the cob divided by the width of your frontal bite. // Full disclosure: I started liking math only after a course of abstract algebra, and I eat corn in rows.
I eat my corn in rings, fix a z and then scrape through theta before choosing the next z. It's efficient and it sort-of follows the cornkernel grid.
I'm also more of a statistician who edits in vi and emacs every day and I'm challenging myself with some category theory and abstract algebra because I find it intoxicating.
So, I don't have a clue how to fit into this divide.
Hah, I eat corn the same way. I also use Emacs, but with viper and vimpulse since I prefer modal editing. For programming, I'd currently favor Haskell or Python. My undergrad major was math, and I much preferred algebra. Will I never fit in? At the moment I'm doing formal methods and logic, guess that could've scr me up (just ask Goedel!).
Of course how you eat corn predicts nothing (except how you eat corn of course :D). Most people are neither analysts nor algebraists. I'm a trained mathematician and analyst, but I eat corn like algebraist. Now what :D.
Basic, ASM (6510), VB, Java, PHP, Javascript, C# and several dialects of SQL. With occasional forays into Ruby, Python and C.
I'm not had formal training in Mathematics beyond High School, though I've worked my way though introductory texts to Calculus (single variable), Linear Algebra and Discrete Mathematics (thanks in a large part to reading Yegge's rants and being inspired to learn by the exceptionally smart people on HN - really, I now wish I'd pursued Mathematics further, was in the top 5% at high school but didn't enjoy it).
According to a fellow who wrote for the Washington Post, it indicated whether you grew up in the city or the country--city was around, country was rows. (Or maybe I have this backwards, for the column ran many years ago.)
Of course, _that_ you eat corn on the cob indicates that you are a hedonist. Poorer societies get the hull off the corn to get more of the nutrients. Some use mechanical means, some use chemicals like lye.
Sounds like a load of coblers to me, I prefer to buy it from KFC and then add extra butter and lick it off then eat down the main shaft and and then the ends and typewritter style the rest. Given that it would indicate I like to outsource, male prostitute and like safe methodical approach's. Guess I should go back to being a contract programmer!
Spirals, functional, ... Emacs. I haven't done such high math but analysis seems more like how I approach design problems (domains more unique, beauty and intuition for guidance).
I have noticed that when each kernel is firm and can be cleanly separated from the cob, I am more likely to do rows. When I do, though, I usually take a horizontal chunk at a time.
Seriously -- don't be surprised to see an interviewer offering you a cob of corn as a snack (especially since we are having summer) and watching you eating it. While this should not be a major indication into your engineering nature, I am sure it may add up as positive/negative points into said interviewer decision making process.
The corn-on-the-cob interview would also tell the interviewee a lot about the company. Let's look at two variables:
* Good fresh sweet corn vs. stale starchy corn
* Butter and salt vs. no butter and salt (I'm combining "butter and salt" as a single variable for simplicity - and I mean butter and salt already on the corn, not available on the side.)
Here are my completely speculative, subjective interpretations of the four possible combinations - and so you know my prejudice up front, I'm a fresh sweet corn with no butter and salt guy:
1) Stale starchy corn, no butter or salt: Your company doesn't care about quality, and doesn't even know that it doesn't care.
2) Stale starchy corn with butter and salt: Your company produces poor quality products but tries to cover it up with a slick-looking user interface.
3) Fresh sweet corn with butter and salt: Your company doesn't know quality when it sees it. It probably has a strict coding standard that dates back many years, and no one dares question whether these are good coding practices or not.
4) Fresh sweet corn, no butter or salt: Yes! Can I work here? :-)
Now that I think about it, serving fresh sweet corn with butter and salt on the side would also give the company some interesting information:
1) Interviewee immediately butters and salts the corn before tasting it: You are set in your ways - you know that corn is a starchy vegetable that needs butter and salt to be palatable, just as you know that the one language you've always coded in is the best for every situation.
2) Interviewee tastes corn first, then butters and salts it (or just doesn't eat it) if stale and starchy, or eats it plain if sweet and fresh: You know that things which appear identical are not always the same. You investigate before coding and adapt to the situation.
(No offense intended to anyone who genuinely likes butter and salt on fresh sweet corn!)
It is akin to choosing a breadth-first or a depth-first exploration (or corn consumption in this case) strategy.
Analysts want to try and explore depth first hopefully to get to the result while algebraists go in breadth first -- to leave no kernel un-eaten in a nice systematic way.
He predicted me pretty well: spirals, functional, vi. But even though I have a decent amount of upper-level math experience, I can't say whether I really prefer analysis over algebra. I think it just depends on the problem at hand.
Well, what do you consider "upper-level" math? The original article definitely means graduate level classes, not just advanced undergrad.
FWIW, I'm a physicist and used not rows or spirals but the "columns" approach mentioned by one commenter. :) And I probably couldn't tell you what type of math I prefer.
I once saw a girl who separated each kernel with her fingers and ate it. I have not seen anyone else do that. She was eating in spirals, but I thought this is something worth mentioning because I have not seen anyone else do that.
Except that you'd get rather unintuitive results: recursion seems to tie nicely to algebra, while iteration seems to tie nicely to analysis (algebra: see group actions, modules, lattice decompositions, analysis: many proofs require chaining inequalities together). But recursion is generally associated with functional languages/LISP/etc., while iteration is much more associated with traditional OO languages (and objects are pretty algebraic, the author gets that right).
I'd say it's probably more dynamic typing versus static typing. Dynamic typing matches up very well with the sort of fuzzy proofs that occur in analysis ("well this is less than that, and that is less than the other, so this is less than the other by a little bit" seems close to "quacks like a duck"), and static typing seems very much like an algebraic idea.
But, as someone working on a math masters, I can say that I prefer analysis and really like dynamically typed languages, so this might just be my pet theory of matching the world to myself.
1) Fill a tall jar most of the way with hot water but enough room for #2.
2) Add a melted stick of butter to the top of the jar.
3) Dip a cob of corn into the jar and pull it out.
Now you have an entire cob coated in delicious butter.
Regardless of approach, your opening bite requires pushing your teeth down in between unharvested rows rows and clearing out a patch of cob. On the second bite however you can now chose between the base of your newly cleared patch which is literally the "low hanging fruit" (spiral approach) or move directly along and open up a new row (row approach).
The base of your open patch offers good purchase for your upper teeth, high visibility of any oddities that may be lying under the surface and a good understanding of how much you're going to be able to expect from the next bite based on what you just had. Should you find that the cob is too much for you, you can also chop the remainder off, wrap it in clingfilm and keep it for later (or feasibly offer it to another diner).
A row approach means opening up the whole cob in one go. It's hard work at the start and you're fully committed. If you give up half way through you can't really offer your corn to anyone else or bag it for later - it's basically a mess. That said, after that first push you'll never need to open up any new rows and the rest of the process is pretty formulaic - you get all of the uncertainty out of the way at the start.
From this I'd also guess at the following correlations:
Row eaters:
- tend to start projects solo & keep going on their own
- tend to have a lot of unfinished projects that don't work
- like to tackle "big picture problems"
- tend towards optimism
Spiral eaters
- happy to break projects down and collaborate. Unfussed by solo or otherwise
- good at finishing projects
- not that fussed by starting projects
- tend towards realism / pessimism
Disclaimer
Everything that you're currently thinking :)