4 ms·
The key to learning quickly is to iterate quickly and get feedback immediately. I don't think this point is particularly controversial-it's a lot easier to lear
by SatvikBeri 14y ago
The key to learning quickly is to iterate quickly and get feedback immediately. I don't think this point is particularly controversial-it's a lot easier to learn from a REPL than from a system where you have to wait overnight to compile anything.
The question is how to structure your work to get feedback quickly. Feedback can be self-directed. Bob the Builder has an idea for a building, draws up some preliminary blueprints, and sees that his idea is unfeasible. Or it can be external-Bob's satisfied with the design and shows it to his customer, who then realizes that having 17 spires arranged in a heptadecagon looks stupid after all.
This is why outlines, specs, designs, etc. are so important. The goal is not to achieve 100% accuracy with the spec and then build the software. It's to iterate quickly to get to 70% accuracy, and then switch to a finer level of detail once you're not learning rapidly from the outline. It's not just about saving time or building a higher-quality product, it's about learning as quickly as possible.
Another fun, famous example is the Wright brothers: they had less funding and less education than most people trying to achieve flight, but they came up with a way to iterate in days instead of months, which meant that in a few months they made more progress than others had made in years.
If you want to get incredibly good at what you do, find a way you can iterate faster and learn more than others in your field. You're effectively buying time and experience. And if you create a structure that allows others to iterate faster, you can allow a swathe of people to become massively smarter and learn more, which to me is one of the greatest feelings in the world.
- oliao 14y agoI totally agree with you there, but wouldn't it be even better if we limit the amount of new stuff we haven't tried yet to a size small enough to keep it in our heads? This way, we can eliminate the need for specs; discussing ideas though speech.
- SatvikBeri 14y agoKeeping it small is definitely a good idea when it's possible, but whether that can be done depends on what you're creating. I've found that this works when making small feature changes/additions to a consumer web app, but fails catastrophically with B2B software that has to interact with client systems (especially old ones!) or legal regulations. If you start writing code after talking to the client, you'll find it's about 30% right and often requires major architecture changes. If you iterate through a spec you can spot a lot of problems right away, especially ones that have to do with obscure quirks in the client's systems. Note that a spec is essentially an outline designed to be read by and solicit feedback from multiple people. A spec only needs to cover the things that everybody involved can read and discuss. A developer-client spec for a product with no UI might just be a few flow charts + a few words of explanation. A Data Scientist-Developer spec should go into algorithms and math. A spec for a UI-based product should primarily consist of wireframes. Etc.