You know that moment when something clicks. You have struggled with it for ages and expended effort on it, but then suddenly it is easy? That click is the moment that your system 1 process has been given enough examples to automatically form a set of information to make the task feel effortless.
System 1? This system comes from dual-process theory (video), which divides your thinking into two parts. System 1 is fast, usually effortless and feels like intuition. If you meet someone with a moustache, your system 1 process will automatically hand you back a snapshot of information for you to use to judge the situation. Maybe you’ll think of this person as a circus strongman – if that is something you have seen enough times to associate strength and moustaches. System 1 isn’t a simple process by any means and it can be materially affected by things you might think are logically unconnected – but it will attempt to serve up microwave-meal-for-one answers that you can use to respond to events.
This system 1 process is found wherever you find a brain.
System 2 is a bit different. System 2 requires some focus and effort and it is used to make critical judgements and perform logical reason. This is not found wherever you find a brain – it is commonly thought of as being a human process (although I could cynically claim that this is not the case – either because there may be another animal that has this, or because I’ve met some humans within whom it seems absent).
When you are having to use system 2 to perform a task, you’ll find that it takes effort; it requires concentration. While you are using a large chunk of system 2, you’ll find that might tune out to your surroundings – gorillas will walk past unnoticed. When you are doing something new, system 2 will probably have to help you.
Eventually, though, when you repeat something enough times your system 1 will start taking over. This is that special moment; the click. So it you really want to become an expert at something, such as programming, you need to work out the skills you need and practice them. As you repeat them over and over, those skills will work their way into your system 1 process, which while far from perfect will make them require less effort. You’ll stop “thinking SOLID” in terms of deliberately thinking about how to structure the objects in your program and you’ll use “intuitive SOLID”, which is the practised and conditioned automatic and effortless version.
If you feel stuck in manual mode with system 2 doing all the work, just keep going and you’ll soon find that it clicks.