Ask HN: Does being practical act as a hinderance to one’s imagination?
I'm asking this from the context of ideas & solutions, I'm facing this sort of struggle that I'm unable to find solution that is completely outrageous. I feel that my level-headedness could be one of the factors for my failure to come up with some out-of-the-box thinking.
HN, am I valid in this assumption or completely stupid?
81 comments
[ 2.6 ms ] story [ 167 ms ] threadBut the world values grounded workable solutions to real problems too. Being practical is good for these.
I find myself exasperated when, given a practical and an impractical solution, some people turn their nose up at the former as uninteresting.
If you're not getting enough ideas, think laterally, learn about other fields. See how chess players think, martial artists, football players, soldiers, food franchising, theology. Every field has its own 'common practice' which seems really obvious to the people in the field, but strange and new in a different field.
However, in the vein of this thread, I think that is only playing one note to learning CS. When I compare CS to martial arts (MA), I consider the traditional programming exercise akin to sparring. It is real world situated, but with the number of new variables it is difficult to successfully demonstrate or refine your understanding. MA, like CS, has a high attrition rate to start, and for reasons I consider isomorphic - a false sense of what CS/MA is and the demoralizing effect of "losing" constantly (sparring or debugging).
So, in MA, there are attempts to make sparring less intimidating. You can pair equal experienced partners or against an understanding senior, but you also focus on drills. If we consider sparring as a combination of problem solving and applying technique in the moment, then drilling removes the problem solving aspect to allow for technique refinement.
So, in combination with traditional programming exercises, my current work is looking at novel practice activities separate from tradition - for example, error finding, output prediction, and even typing exercises (which I have published on).
One immediate example that springs to my mind is Albert Einstein. You could say that his ideas are outrageous that space and time are same and they are bent etc. Even people (like the Nazis) publicly called it outrageous and blasphemy. But if you think about his ideas, he clearly followed through with a rigourous mathematical proof which I think might be indicative of height of level headedness. In fact, if you skim through his process of explaining relativity to general public through his book [0], you cannot distinguish when he is being level headed and when he suddenly jumps into a bizarre thought experiment.
[0] - https://archive.org/details/cu31924011804774/page/n10
Oh! Also try allowing your brain some breathing room. Walk away from the problem and do something else. Your brain will work on it in the background. The more you dwell on it in your conscious mind, the more you will focus your existing solutions down.
Edit: You must learn to trust your subconscious to help you with keeping an active eye on it. Just as you must trust employees to do their work without micromanaging them and breathing down their necks the whole time.
https://youtu.be/iHcxkmwBOJY
You can learn a new mode of thought. You have to be open, and not dismiss things early, which means allowing yourself to follow ideas which have obvious flaws or which totally impractical. It helps to have confidence that you'll use your practical, analytical, and more closed mode of thought later. But first you've gotta jump out of the local maxima and try to find something new. Generate ideas as if you're high; highdeas are usually bad and that's ok, your sober self will be around to check it out later. Maybe the idea will be thrown away then, and maybe it won't.
There's a great John Cleese talk on open vs closed thinking that you could look up on YouTube. A good book on the subject is A Whack On The Side Of The Head.
Edit: That said, there's also something to working with another person, and each focusing on one of these roles more than the other. Like author and editor. Lots of things follow this pattern of splitting these roles up among people.
In my experience, I actually think it can -- but you can overcome it, too.
I grew up programming and always excelling at concrete, black-and-white, logic-based types of things (math, physics, etc.).
Later I wanted to pursue more artistic things, and discovered I simply didn't know how to think imaginatively, instead of analytically.
After a while, I learned how to "let go" of my analytical brain so that my artistic/subconscious brain could be free to "make connections" between things that had no logical connection on the surface.
And now I have no problem with it -- so it's never "too late" -- but they're definitely two "modes" of my brain I have to consciously switch between. And they're largely "separate" modes that both have to be developed/strengthened through practice.
If you want to work on imagination, I highly recommend things like writing classes, improv classes, acting classes, painting classes, all that stuff. I think classes with other people in this context are really important, because the instructor and other students' work will give you a lot of examples of creativity to inspire you and build you up. If you stick solo (as I did at first) you may find yourself just applying the same "analytical" solutions you're familiar with, and not being forced to expand your imagination/creativity.
There are also sensory cues: You might choose a new location to do your gaming, play some appropriate mood music, etc. On one of my first ever "software guy does graphic design" projects, I asked the client what music they liked, and then listened to that for about 3 days straight. It really helped me get into the correct problem-solving lens where more appropriate colors, shapes, fonts, and textures were concerned.
On top of that you may find there are supplements that help you out. Personally if I'm running on 8+ hours of sleep and take about 100mg caffeine, I feel like I can solve just about any problem and new ideas are more likely to seem fun. ;-)
In the past I wrote some randomization software to help me solve problems. One of my favorites simply picks random words out of a dictionary. Each word is treated as a metaphor. I remember once a client said, "I thought I knew exactly what you'd say, but that is an idea that never would have occurred to me." This was my goal.
IMO there's a lot of space to grow in this area even if you feel like a potato where your imagination is concerned, and the process can be really enjoyable. Good luck to you.
Since they haven't internalized the exact definitions of the words they're using or hearing, or even how the world works from a physical or logical perspective you literally can't replicate it with your adult brain. You know too much. It's kinda cool.
I constantly perceive that this is a major problem in modern UI designs, whereas in the past people thought really hard about usability, because they didn't grow up using computers, everything was new.
Here's a very silly and simple example: you have an engineering task to search for an ID in a tree data structure. You may know several standard methods off the top of your head or you may look up the best performing algorithm online. Either way, the solution is the expected one.
But let's abstract the problem: Why do you need to search for an ID in a tree data structure? Do you need a tree in order to keep track of the path and the IDs you pass? If not, then why not scrap the tree completely and go with a hash map of key/value pairs? That solution is both faster and easier to implement, but it only occurs if you think about the goal of the problem instead of the problem itself. You can abstract it even further and ask whether IDs are required at all, and if they aren't what other solutions could be used to accomplish the same goal. This is a very, very simple example but the idea can be applied to varying degrees in any problem, and kind of comes to the idea of finding first principles in physics.
As an engineer, I am aware that my mind often plots the shortest path from problem to solution, without ever stopping to question the problem definition. Sometimes reframing the problem is the best way to get to a more creative solution.
Often they ask for a solution to the 3rd step in their process where they got stuck and it turns out the underlying problem is easier/faster to solve
The pragmatic mindset naturally simplifies, reduces, focuses, makes early judgement calls about what trains of thought are unlikely to yield results. The opposite of that is to be open and curious, to let thoughts expand and meander without any clear destination or utility and to see where those take you without assuming you know what is or isn't possible. That's where divergent imagination really gets going.
Each mindset serves a purpose; it's beneficial to learn how to shift between them as needed.
Granted, the beginner is also going to go down a lot of dead-ends, but sometimes the expert won't get started on something which they have mistakenly ruled out as impossible.
The question is, what (mental) exercises could you do to get into the practicality equivalent of "beginner's mind"?
I know of two school of thought regarding the origin of original ideas :
- Original ideas stem from ignorance of the existing idea and being an outsider in the domain. I don't think this is sustainable as, at some point, you have to become familiar with the domain to which you want to contribute.
- Original ideas comme from a deep knowlege of the domain and its history which lets you understand how new concepts you meet might fit in the overall puzzle.
Overall, if you have problems coming out with outrageous new ideas, I would recommend practice : whenever you enconter a problem, try to design a solution for it (it doesn't matter if you never implement it) and only then research what kind of solution is used to solve this problem. With time you should become familiar with your own creativ process.
A few months ago I started being extremely pragmatic in everyday life (even against my will which is usually not like that). Things like, say no if you want to say no, answer emails immediately with a sentence at most, find the fastest way to get something done etc...
Now I have a lot of time on my hands to do whatever I want, that includes spending the day studying or pondering things which I believe greatly increased the potential of my imagination.
Find things that you like and do them, weed out everything else. If you can't shake some of those away, find the most practical way to get rid of them.
https://prog21.dadgum.com/39.html
having endless debates on what's important for creativity : being flexible or being organized,
having read the book on this topic called "making ideas happen",
I got to understand what we all know already
To do the best of our work, it requires
Balance
- Balance between creativity and organization
- Balance between being practical and being a mad scientist
- Working in routine and breaking that routine
- Having a laser focus on problem and staying away from the problem
John Cleese has given talks throughout the years about how to be creative, and they're very good. [2]
The Programmer's Stone is also a good source of information about this topic. Instead of "lateral thinking", the authors refer to "mapping" and "packing". Packing is when you're in "step-by-step" mode. When programmers refer to "being in the flow", they're probably referring to the state of mapping or lateral thinking. [3]
[1] https://en.wikipedia.org/wiki/Lateral_thinking
[2] https://www.youtube.com/watch?v=y70nbDJI5Uk
[3] http://programmersstone.com/
Perhaps it's Elon Musk's chats on thinking in first principles, but I'd love if anyone knows some introductions to linear, tight-knit, strategic thinking.
Edit: I also wonder if books on clarity in writing like Zissner's "On Writing Well" qualifies here. Writing is linear and the practice of it presumably should help the writer think more clearly.
To not allow your imagination to run ahead of or independently of your behavior, to not allow yourself any mental play, is to be unimaginative. That's tautological. If you truly find yourself unable to imagine any outrageous ideas, you have to look elsewhere than pragmatism if seeking a cure. You need to rediscover how to play. In your head. Pragmatism is a filter to decide when to put some of your play ideas into practice, not a filter for thought itself.
There are different challenges someone else might face, requiring different analysis. What if you are able to come up with outrageous and lateral ideas, but are afraid to voice them? Or you are unable to ground the ideas in any kind of reality, i.e. pure fantasy rather than plausible-if-ridiculous? Or do you find challenges in the social environment of getting any air time for your ideas among your peers...?
Solving problems within actual constraints may be the greatest creativity of all.
Once I learned being practical first and creative only when needed, now I feel quite happy and productive. Seems like the satisfaction of my customers is much better than the tech itself.