Programming-like activities?
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?
Loading…
Subscribe to RSS Feed
= f037147d6e6c911a85753b9abdedda8d)
Comments (76)
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.
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.
Indeed, many people cross forward and backward between the two.
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 ;-)
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.)
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.
pick-pocketing
If you add "socially useful" or "not immoral" obviously this is excluded.
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.
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.
As a first idea that popped into your head that's not so bad. You can practice at home first.
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.
Dating
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.
They have online dating now. Yuo can prety much do this at any time you can do programming.
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.
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 ;-)
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.
I guess the major difference would be that dating doesn't give you rapid feedback.
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.
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".
Well, it might not really count as useful feedback if you just get a segmentation fault without any explanation what went wrong.
The feedback some of those give isn't that rapid, though.
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.
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.
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"?
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
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?
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.
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.
It seems like you just really like programming.
There's a seemingly limitless amount of skills that fit these criteria:
I think I could keep listing... it's hard for me to think of skills that don't fit this criteria.
Lots of those fail many of the criteria listed in the OP. Check again.
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.
Statistics seems to satisfy all/almost all of those.
Being a ninja :-D
+1 for probably missing more criteria than any other suggestion given here.
Admittedly, I think I'll have to grudgingly give you "unforgiving" and "badass".
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?
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...
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...
You can teach yourself to code. You can't teach yourself to fight a dozen armed guards.
If a ninja has to fight a dozen armed guards, the ninja has already failed :-P
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.
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.
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.
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".
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".
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.
What? This doesn't sound like you're describing folk music at all.
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.
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 any case, like programming, I find that it is merely a vehicle for expressing things.
That's what I was going to say, too. But it probably lacks "objective and unforgiving", depending on how narrowly the OP meant it.
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.
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?
Networking.
Basic lock-picking.
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.)