A lot of my significant personal improvement happened as a result of highly measurable progress and tight feedback loops. For example:
- Project Euler
- Go (the game has a very accurate ranking system)
- Strength training
A lot of my significant personal improvement happened as a result of highly measurable progress and tight feedback loops. For example:
This seems likely to be controversial but I want to put forward "sales". Every so often I wonder if I should spend several months in a job like selling cars, where things are presumably really stark, but so far I've generally ended up doing something more kosher and traditionally "geeky" like data science.
However, before I knew a marketable programming language I had a two separate "terrible college jobs" that polished a lot of stuff pretty fast: (1) signature gathering for ballot measures and (2) door to door campaigning for an environmental group.
Signature gathering was way way better than door-to-door, both financially and educationally. Part of that is probably simply because there were hundreds of opportunities per hour at peak periods, but part of that might have been that I was hired by a guy who traveled around doing it full time, and so he had spent longer slower cycles leveling up on training people to train people to gather signatures :-P
I credit an undergrad summer job in door-to-door sales for moving my social skills from "terrible" to "good". For that particular job we literally had a points system that was visible to everyone in the office (and determined incentives like fully-paid vacations abroad), and you'd sell enough on a daily basis that you knew roughly how you were doing (ie 5 sales was a decent day, 10 outstanding, 2 bad, out of perhaps 100 interactions), so it was a near-perfect training ground.
Dual N-back
A Lung improvement machine $11
Sprinting
See The First 20 Hours: How to Learn Anything . . . Fast! by Josh Kaufman, whom I met at a CFAR workshop.
Does it have to be something where the progress is easily quantifiable, or merely very easily observed? Learning to program is something that has an extremely long tail of improvement, but the first part goes very quickly. It may not be easy to quantify your progress - rough metrics like "lines of code to solve this problem" or "the amount of computer time / memory needed by this program" do exist, but they are at best only approximations of skill - but if you look back at code you wrote even a month ago (I'm assuming a not-too-strenuous instructional course, here) you'll be shocked by how quickly you improve. If you already know how to code, the same effect (and much of the same benefit) can be obtained by branching out into a really new language, ideally with a totally different coding paradigm; if you know C++, Java, and Python, try learning a functional language like Haskell of F#. If you've never worked "close to the metal", try picking up C and then C++. If you've only ever written application code, learn some scripting language(s) and write little tools to do things you currently do with a GUI file manager / config file editor / registry editor.
Always keep track of what you've written before (if you're doing this as part of a course, old assignments will suffice) and then go back later and write it again "correctly" using your current knowledge. It's entirely possibly you'll see obvious improvements week over week. Heck, when I'm learning a new language if I write 200 lines of code in it without going back and editing more than strictly necessary, the bottom half will be visibly better than the top.
For programing there are a few quick feedback programs:
code.org for beginners
codility lessons for advanced stuff
I would setup metrics of success like length of conversation, quality (which is subjective), and if you traded information to further stay in touch. Observing people wouldn't have such metrics. It is a discipline that you simply must practice. The key would be not to get distracted. You may wish to time yourself and set a goal to do it a certain number of times a week. It also helps with situational awareness which helps with being safer in public and being ready for a crisis should one arise.