Something that is useful and practical is pragmatic as opposed to academic or theoretical. Pragmatic learners rip stuff up and rewriting others existing stuff to learn. They learn through the successes and failures of their experimentation. This is often a much more effective way to learn, albeit risky.
Pragmatic progress results from people actually using a thing and tweaking it rather then imagining how others might or ought to use it. The duct tape coding approach is founded on these principles of doing the minimum necessary to meet the need and then only keeping and polishing the stuff that remains useful.
💎 In my more than 20 years of development experience inevitably it is the stuff we added that we thought the users would want that ended up being the biggest wastes of time and money. Moral of the story? Give users the minimum necessary to fulfill their needs and wait for them to suggest improvements that are based on how they use your software or system. Not only do they get a better product in the end, but you will save a lot of money for those who employ you.
[The Pragmatic Programmer]