Programming is quite a remarkable activity:

  • It has an extremely low barrier to entry
    • You don't need expensive equipment
    • You don't need to be in a particular location
    • You don't need special credentials
    • You can finding information / resources just by opening the internet
    • You can learn it / do it independently
  • It gives you rapid feedback (which can lead to rapid growth)
  • It gives you frequent rewards (which gives a huge boost in motivation)
  • It's objective and unforgiving (this is a good thing, because it teaches you how to confront reality)
  • It's intellectually stimulating
  • It's useful in the real world
    • Corollary: you can make money or even build a career out of it
  • It's badass (or are you telling me that Hackers WASN'T your favorite movie of all time?)
What are some other "programming-like" activities?

I mean this in the sense of "activities that also satisfy the above criteria", but suggestions don't have to satisfy ALL of the criteria.  Here are some of the first ideas that come to mind when I try to answer the question myself:
  • Electronics (but this is basically still programming)
  • Math (lacks "rapid feedback" and "frequent rewards"; "useful in the real world" is also questionable)
  • Go, poker, video games (usually lacks "useful in the real world", sometimes lacks "badass")
  • Juggling, poi (lacks "intellectually stimulating" and "useful in the real world")
However, I've already exhausted my creativity and I'm hoping to go much deeper than this.  Thoughts?
New Comment
77 comments, sorted by Click to highlight new comments since:
Some comments are truncated due to high volume. (⌘F to expand all)Change truncation settings

Having done a math PHD and now working as a programmer I find math proofs and programming semi-similar. Though I think programming is less "relaxing." In mathematics if you have an argument that works and isn't insanely complicated you can call yourself victorious. You can look for a simpler method if you want but there is really no imperative to do so. In programming there is almost always a better way to solve a given problem and the differences in speed matter alot.

6fowlertm
My two cents: I studied math pretty intensively on my own and later started programming. To my pleasant surprise, the thinking style involved in math transmitted almost directly over into programming. I'd imagine that the inverse is also true.
3[anonymous]
Indeed, many people cross forward and backward between the two.
4robot-dreams
This is a fascinating perspective. For me, optimizing code (both style and performance) can, at times, almost feel like gardening (aka relaxing and theraputic). On the other hand, I really like math, yet I've generally found that it requires WAY more effort than programming. Perhaps this is why you have a math PhD and I don't ;-)
8gjm
I have a mathematics PhD and have worked in academic research, industrial mathematics and software development. I agree with Princess_Stargirl that mathematics and programming feel quite similar, but for me mathematics is less relaxing because it's harder. Yes, it's great when you "have an argument that works and isn't insanely complicated", but until you get one you don't even know that it exists. Which is stressful if your pay, or reputation, or career prospects, happen to be governed by your success in finding such things. (Whether, and how far, the same is true in programming depends on exactly how you define "programming". If you take it to mean the whole process of going from nothing at all to high-quality software, then it does share that characteristic with mathematics. But the very researchy open-ended work is a smaller fraction of programming than of mathematics, and there are people happily and productively employed as programmers who do scarcely any of it at all.)
2John_Maxwell
Do you mean development speed or execution speed? Either way, I'd guess it depends a lot on the application you're working on and/or the culture of your organization.
[-]Dias90

pick-pocketing

If you add "socially useful" or "not immoral" obviously this is excluded.

[-]Kindly100

High barrier to entry. I expect that at my current skill level I'd get caught pick-pocketing the first time I tried it, and that would impact my ability to try it a second time.

4pinyaka
I would expect that you could probably practice on a targets that won't call the cops on you first (you could try reaching into large jacket pockets or purses and removing appropriate objects to make sure you don't jostle them). I am not a thief, have never pick-pocketed anyone and this was just the first idea that popped into my head.
0robeenp
As a first idea that popped into your head that's not so bad. You can practice at home first.
0[anonymous]
No, you practice first. For instance, when I was a magician and trying to do watch steals, I would wrap a towel around a broom handle, put the watch around that, and practice the motion over and over again before I tried to do it in the real world.
[-][anonymous]80

It seems like you just really like programming.

There's a seemingly limitless amount of skills that fit these criteria:

  • Languages
  • Writing
  • Understanding History
  • Math (Huge Umbrella Here)
  • Any circus game
  • Science( Another Huge Umbrella)
  • Any game of skill that you can make money from(chess, poker, checkers, go, etc.)
  • Any self-defense sport. (any sport if you consider the slim chance of going pro as "useful in the real world) (many include expensive equipment, but few that are more than the cost of a computer and a year of internet)
  • Public Speaking
  • Improv
... (read more)
4Creutzer
Lots of those fail many of the criteria listed in the OP. Check again.
0[anonymous]
Checked it again, this sentence is still there: "I mean this in the sense of "activities that also satisfy the above criteria", but suggestions don't have to satisfy ALL of the criteria. Here are some of the first ideas that come to mind when I try to answer the question myself:" Most of those criteria are extremely subjective - For instance, many people would say that programming needs expensive equipment, a specific location, and is nerdy instead of badass. Similarly, all of the subjects above can fit all the criteria when you know what you're doing, how to practice them and how to use them.
8imuli
You cannot date independently. Dating requires at least one other person. One of the amazing things about programming is that I can sit down anywhere at any time and create. Computers are handy, but even pencil and paper will do in a pinch.
1[anonymous]
They have online dating now. Yuo can prety much do this at any time you can do programming.
0James_Miller
I'm an economist not a programmer, but shouldn't the goal of programming be to write code that other people value? Also, you do need other people to program, the people who build the hardware, operate the power system, grow your food..., it's just that with extremely high probability you can count on them being there for you.
7robot-dreams
What you say is absolutely true on a large scale. When I say that programming is a very "independent" activity, what I'm trying to describe is the fact that at any time, I can think to myself, "I want do some programming", and within 30 seconds, be doing some programming. In particular, I don't have to call someone, convince them that "no, this will be fun", fail, try convincing someone else, succeed, wait for them to head over, etc. etc., by which point my impulse to do some programming has completely disappeared. You might be surprised how much of a difference this makes, especially for an INTJ like me ;-)
24hodmt
You can program to solve your own problems. It's very likely that other people have similar or identical problems, so your code can benefit them even if you didn't plan for that.
2passive_fist
I guess the major difference would be that dating doesn't give you rapid feedback.
3Remontoire
It does if you interpret James's comment to mean interactions with romantic intent. Dating a single person for a long time is akin to managing a team of developers (sure, you don't get quick feedback) and chatting to someone you don't know in a book store is like quickly compiling something in a new language.
3robot-dreams
That... definitely explains my failure at "dating a single person for a long time" and my (relative) success at "chatting to someone you don't know".
1passive_fist
Well, it might not really count as useful feedback if you just get a segmentation fault without any explanation what went wrong.
  • Personal financial literacy (single most important factor for long-term wealth building)
  • Basic understanding of nutrition and exercise (the caveat is that there's a LOT of bad information or irrelevant information out there. Going from zero to some knowledge is hugely beneficial).
  • Meditation (you can immediately observe the novelty of meditating if you have never done it before; I won't say it's incredibly useful but it can be nice)
  • Household repair (look up how to fix something yourself whenever the opportunity comes up; use your judgment though)
3Good_Burning_Plastic
The feedback some of those give isn't that rapid, though.

Statistics seems to satisfy all/almost all of those.

I disagree with the statement that electronics "is basically still programming". There are similarities between the two, but also significant differences; particularly if you consider electronics outside of the digital realm.

I also do not understand why you question whether math is "useful in the real world". I imagine that anyone involved in engineering, science, finance, artificial intelligence, marketing or a great many other "real world" occupations would vouch for the usefulness of mathematics.

0imuli
In electronics, one designs a system from smaller components to fulfill a particular function. How is this not programming? My objection to electronics is rather that it has a slower feedback cycle and a higher barrier to entry - to do anything complicated you need all the things you need for programming plus actual parts.
0g_pepper
This is true, and this is a similarity between programming and electronic design. However, this is true of a great many other things too - automobile design, architecture, industrial engineering and manufacturing, design of ships, tanks and aircraft, etc. Are all of these things "basically still programming"?
1Luke_A_Somers
Hmm. Each of those has even stronger forms of: Additionally, it's easier to destroy things with electronics, and with the other things you describe, even more so.

Salesmanship

6robot-dreams
Upvoted. This is the 3rd time in the last week that I've heard someone mention sales as a useful skill, but how do you train it short of actually getting a job in sales?
0ChristianKl
You can switch to buying your groceries at a farmers market where you can negotiate price. I also know someone who brought a bunch of WoW Gold on ebay and then practiced buying and selling WoW items to practice his sales skills.
2taryneast
Snap - yeah I was thinking "Sales" Passes all the criteria above except maybe "frequent rewards" (It's a field known for high rejections) and maybe "baddassery". That said it has an even higher "useful" criteria.

Social skills. If you have no skills at all, simply going to omegle and chatting with strangers can be a first step.

If you want to get further you can focus on dating, coaching, negotiating or networking.

Blogging maybe?

Basic lock-picking.

0Nornagest
That doesn't seem to be particularly "useful in the real world", unless you've got an urban exploration hobby or something similar. I'm not sure about "frequent rewards" or "intellectually stimulating", either.

Studying stuff using spaced repetition systems, e.g. Duolingo. (Though it may lack "useful in the real world" depending on, among other things, what exactly you're learning.)

Networking.

[-][anonymous]00

Music. It's pretty much all math. Every part of it. When you try to learn a riff, and you play it, and it sounds like you think it should, interesting things happen.

9Shmi
Music theory is, in part, math. Music is art. There is only a tenuous connection between the two. I've known people who could teach all the underlying math, without being able to carry a tune or play a chord, and I've known an accomplished flutist who struggled to pass a music theory course because it touched on logarithms.
-3[anonymous]
Whether it's simply a rhythm, or playing a melody, or adding a harmony, every part about playing music engages the math part of the brain. That doesn't mean you need to understand calculus to play. It's simply addition and basic translations, but it's a constant barrage of adding things and subtracting things. If it's a piano or guitar, or even a voice, you have to know that do re me fa, is whole step - whole step - half step. The fretboard or keyboard is a large numerical puzzle. It's right in front of you, and what makes a good singers is someone who mentally works in that musical puzzle. Adding steps and half steps. You never really add past 12, because you can start over then. You don't need an advanced mathematics degree to solve the puzzle, but your brain is doing (simple) math constantly. Not only that, but music is, since the beginning of time, the essential example of how to train your brain, to do without doing. The brain patterns of jazz musicians in performance resemble those of meditating monks. The idea that the connection is tenuous may suggest you don't play music. If you've never made a beat before, try this: openmusicgallery.appspot.com/drums.htm Now keep in mind, this is just telling the program when to play a beat. If a human were to try to play these beats, they'd be doing math the entire time (not differential equations, but still math). Making sure beats are evenly placed is just counting. Once you've done it enough, you don't literally need to count "1,2,3,4" but I know many professional drummers that do exactly this, and are nearly flawless because of it. I'm a professional musician, I also do creative coding for artists. One interesting tension is that some artists don't think that music is art. I agree with them 99% of the time. You can get paid a few hundred bucks to play Lynryd Skynrd song, which ends up being paint by numbers. Music on the whole is just paint by numbers. Occasionally it breaks into the realm of genuine art. In a
-4[anonymous]
Music is like the art of math. The playing of musical instruments is art, but the writing of it and the instrument design and the understanding of how those instruments operate is all math. Music can be created without art, but music cannot be created without math; not even in the slightest aspect of it. It is the only major form of classical arts to which that claim can be prescribed. A drum requires a calculation to generate reverberation to make itself heard. A scale must be calculated from its underlying frequencies. Strings must be measured in length, thickness, and tension to determine their resonance. The hole spacing and size of wind instruments must be calculated. Even something as simple as humming while alternating between high and low is a binary expression of either volume or frequency. It is only over the course of several millennia that we have developed the ability to teach an artistically gifted person to generate music without learning a bit of math. But that person still owes their artistic creations to the mathematicians of history. The connection is not at all tenuous. It is a very clear case of cause and effect.

ADBOC

"Music cannot be created without math" is true only in the same grossly misleading sense as "you can't catch a ball without finding an approximate solution to a differential equation".

1[anonymous]
That is not the same. A complex set of equations are not required to calculate how to make an object to throw at people, nor is it required to make a glove or to figure out where to place your hands to catch the ball, but generating resonance at a given volume and frequency is a very hard thing to do. Stradivari may not have been a great mathematician, but he still had to carefully measure, and set to very exacting specifications each one of his instruments. He had to follow the calculations even if he did not know those calculations. In the time of ancient Greece, before those calculations were completed, it did require a mathematician to devise a musical instrument more complex than a drum. This is why many cultures never got past the stage of drums and horns before the more complex instruments were imported from Europe. These equations can be used by those unfamiliar with them, but they can't be created without someone learning those equations in the first place in the same sense that computer software cannot be created without engineering.
-4[anonymous]
Look at a piano keyboard or guitar fretboard. Pick a note at random. To make a particular chord, the next notes are not random. It doesn't require advanced math, but there are discrete states the instrument can be in. Catching a ball in midair is nothing like figuring out what sounds cool on an instrument.
1JoshuaZ
Right, if anything catching the ball is far closer to "math" since it isn't culturally dependent and has an objective set of solutions, whereas what sounds like good music is highly dependent on cultural contexts. So if only one of these two is labeled as math it should be the ball catching. But that's connected to why neither should be called math or claimed that it takes math.
-2[anonymous]
To play a riff on a guitar, let's say you hit 5th fret 3rd string, 3rd fret 3rd string, then 5th fret 4th string. That's about 1 second. To play a song on a guitar, you do that a few hundred or more times with a few dozen or more different figures. That's 3 minutes. If it sounds like catching a ball engages the mathematical part of your brain more than that, I'll just assume you're an expert on these things and take your word for it.
0JoshuaZ
At this point, two thirds of your post are simply repeating what you have already said. I'm not an expert on either ball-catching or on music, but that's not terribly relevant. You seem to be repeatedly arguing as if this is really about personal experience but no one in this thread has made a personal experience argument except as a response to you. The central point about ball throwing is the argument that it involves implicitly approximating the solutions to differential equations. The point is that if you believe one of these "takes math" in any substantial fashion you have to believe that the other does about at least as much. And you still haven't responded to this point, or to the many other points raised as objections to your position (such as the empirical existence of people who are very skilled musicians and who are completely incapable of doing any substantial amount of math).
-2[anonymous]
That's a fact, eh? So, when a mathematician is approximating solutions to differential equations, their brain is functioning the same as if they were catching a ball? To catch a ball in midair, requires the same hand eye coordination as moving a drumstick to hit a drum at the right time. But what I'm talking about, is not how the hand moves to catch the ball or hit the drum or find the right fret. To catch a ball, the hand moves to catch a ball. The ball is the input, the catch the result. What I'm talking about happens before hand-eye coordination ever begins. To play music, you are mentally throwing multiple balls all the time, and then catching them at the right time. The part of music that engages in the brain is not catching the ball, it is mentally placing the ball on a discrete grid. Again, if you disagree, I'll take your word for it.
-4[anonymous]
A guitar has 6 string, and 22 frets. You have to put your fingers on the strings on a certain fret to make a noise. To make a melody, you could try to move around to random. frets Sooner or later, you learn which mathematical patterns produce "music" and which do not. If you knew nothing about music, no sharps no flats, no idea what a scale was or how many notes, then you can play guitar like this: http://tabs.ultimate-guitar.com/d/deep_purple/smoke_on_the_water_tab.htm This isn't sheet music. It's guitar tab. It has 6 lines, one for each string, the number on each line is the fret to play. If you weren't arguing with me someone who plays music, but spent the same amount of time learning music, you'd probably have a more impressive brain this week.
2JoshuaZ
You aren't actually addressing the arguments that people are making. No one is claiming that there isn't math involved in classifying music. Are you for example going to respond to the ball comparison in a way that isn't just dismissal or are you going to address that there are people who are very skilled musicians who aren't good at math and vice versa, or are you going to address the issue that whats sounds acceptable in music is highly culturally influenced? Repeating variations (if you'll pardon the word) on the same basic argument you've made isn't helpful.
-6[anonymous]
6jefftk
What? This doesn't sound like you're describing folk music at all.
0[anonymous]
Folk music is a very wide-open term. The origins of it are mostly unknown in most parts of the world, but traditional folk music was usually quite simple. There were only very simple changes in pitch; often binary or ternary or none at all. These are simple enough to where a person could intuitively grasp the calculations in their head (by counting the tempo and arrangement of percussive hits); even if they could not express them in written form. Later forms of folk music were derived from western classical music which definitely did require a lot of complex calculation.
6Shmi
By tenuous I mean that many great musicians and singers never learned much math and never needed to. Not sure how much math Stradivari knew, either. But I guess it all depends on how we define "math".
-4[anonymous]
Arithmetic is math, and essential in the performance of what would be considered music instead of noise. Check this out: https://www.youtube.com/watch?v=8ePgZPuhCAo One hand beats 3 while the other beats 2. See if you can do it.
3Good_Burning_Plastic
That's what I was going to say, too. But it probably lacks "objective and unforgiving", depending on how narrowly the OP meant it.
0[anonymous]
Playing in time, and in key are pretty objective. You want unforgiving, try to sing the Star Spangled Banner out of tune at some event.

Being a ninja :-D

8robot-dreams
+1 for probably missing more criteria than any other suggestion given here. * You do need expensive equipment * You do need to be in a particular location (ninja school) * You do need special credentials (what, you think anyone can become a ninja?) * Good luck getting reliable information online * Good luck learning without a teacher * If you make a mistake, you don't get "rapid feedback, leading to rapid growth", you just die * How is ninjutsu intellectually stimulating? Admittedly, I think I'll have to grudgingly give you "unforgiving" and "badass".
-2Lumifer
LOL. Not that this was an entirely serious suggestion, but what expensive equipment do you need? Why do you need special credentials or a school? Why any mistake automatically leads to death?
2polymathwannabe
Lots of rope, grappling hooks, throwing stars, daggers, blowgun and darts, noiseless shoes, noiseless clothes, smoke bombs... You need at least very specialized training in infiltration, poisoning, different unarmed and armed combat styles, wilderness survival... Falling off a roof, falling off a tight rope, falling off a wall, swallowing your own blow dart, cutting yourself with your own poisoned dagger, being caught by the enemy...
-2Lumifer
That would be a cotton T-shirt :-) In the same way that being a programmer requires very specialized training in microprocessor architectures, assembler, design and properties of algorithms, software architectures, standard libraries...
2polymathwannabe
You can teach yourself to code. You can't teach yourself to fight a dozen armed guards.
0[anonymous]
Strictly speaking, I'd say you can't successfully teach yourself to fight a dozen armed guards.
0Lumifer
If a ninja has to fight a dozen armed guards, the ninja has already failed :-P