He discovered The Monkey Trap in Chad Fowler’s The Passionate Programmer book which made him think over his rigid assumptions about different development tools and question himself:
What if the exact opposite of his assertions is true?
He could be trapped at this very moment. He perceived Swift as a difficult language to learn compared to Objective-C because he easily learned the ropes of the latter back in the day. He took a glance at some code snippets in Swift but they didn’t change his mind. Using func
to declare a function seemed “fun” for him. Arrows before the function return type seemed even weirder and hard to type.
The absence of pointers made him feel like he would lose control over the memory with the new language. But he realized that Assembler programmers have way more power over memory management compared to Objective-C. Does it make Assembler more powerful or easy to learn? This question opened a new perspective for him and he decided to give the new language a try no matter how hard it is to type ->
.
Little by little he got used to creating a single file for a class, using optional variables, adding extensions for existing classes, and other cool features of the language. He noticed his productivity has gone up with the new language. He overcame his assumptions about Swift and agreed with the simplicity of it compared to Objective-C let alone Assembler.
He has yet to try Python… But that would be a completely different story.
This was only one example of a monkey trap. There are many other traps in his mind such as the usability of Windows vs Mac, the difficulty of challenges on Frontend vs Backend vs Mobile, etc. He learned that the best way to confirm or reject one’s assertions is to try what one hates.