I have, in my experience, seen designers go to incredible lengths to achieve some things that they envision. Designers tend to stick to the tools we are already familiar with. For example, I had a friend who created their resume in Sketch. After a while, they realized that the resume isn't readable by bots, and is being kicked out before any human(s) even get a chance to look at it. Similarly, another friend who made highly complicated infographics in Adobe Illustrator, and made the changes to individual shapes when the data changed as the project progressed overtime. Yet another, an architect, who used AutoCAD for everything.
The more people I see, the more I realize that it's not just designers. We, humans in general, have a certain urge to stick to the tools we are used to. In other words, we resist change. Unless the benefits of change outweigh the cost of staying in the comfort zone. Many times, we stick to the tools we are familiar with even when that's not the easiest (and/or more efficient/efficacious) way.
For someone, drawing patterns using AutoCAD based on data was a perfectly normal thing to do… because learning programming was a bigger mountain to climb. At least in the short-term. Their resistance to learning and changing the tools softened, once I showed them a 30 minute demo of how programming can generate those patterns in seconds. And this particular event, prompted me to think a little more about tools and write it out.
Tools are for "engineers"
Obviously, that's wrong. It is evident from the fact that everyone uses tools to get things done. We use washing machines to do our laundry, microwave to heat our food, internet to read blogs, cars/trains to commute and so much more. To be clear, that's not what I am saying with the title of this section.
However, there is a certain attraction to the beauty of how a tool works, and is used, that gets engineers excited. We, engineers, get excited by tools to get things done precisely. An engineer has a passion for building things, or at least understanding the mechanics of how things work. I am not sure if we have the data for who watches shows like "How it's made", but it would surprise me if the audience wasn't mostly engineers.
I myself dive into new programming libraries/tools just to check them out. And I know almost all of my engineer friends do the same. Not to build a project, not to get anything done, but just to see what a new tool does. I have been fortunate enough to work with multiple tools and programming languages throughout my career. To an extent that if I need to learn something new to get a part of the project done, I am able to learn quickly. Usually within a day or two.
Learning to use a tool
Since the moment we are born, we have been trying to learn tools. Sometimes they are tangible, other times they are not so. For instance, a baby learns that crying brings attention of the elders, so uses crying sounds to make it happen (with knowledge or without). We learn how to use a spoon, fork, knives, pencils, crayons, electricity etc. But none of us learn every tool out there. I don't know how to drive a bus for example or a digging machine etc.
As we live through life, we learn the tools based on our encounters and needs. I didn't know how to use chopsticks until I was in the US and made some friends who used those since the beginning of their memory. Frankly, I don't think everyone needs to know everything these days. The specialized nature of our jobs has led to freeing up time to do things we are interested in and develop only the required skills. Hence, we have the choice to get comfortable with what we know, even if something else can make our lives easier.
We have a choice of ignoring the aspects of life, which can be taken care of by others. Historically speaking, this is what the civilizations have given us. In a tribe, everyone is able to do everything, some are good at it, others not so much but still able.
Unarguably, some tools are easier to use than others. Skills required to drive safely take months to master, while skills to learn a smartphone game takes minutes. This steepness of the learning curve varies depending on who is trying to learn what.
Programming is a tool
Do I think everyone should learn programming? No, not really. If one does need to program though, then they should not shy away from it.
Every tool is designed for a specific purpose, and is really good at getting the job done. I think of programming as a tool. Sure, one can turn a screw using a knife, or the back of a spoon, but a screwdriver will make the job much easier. Similarly, there are times when knowing how to program a computer can get you the results in an easier manner. Programming is a sub-tool of computing, it allows one to make use of computers as desired (excluding the times when the right code doesn't lead to desired results).
However, software is also a tool… when most of us make a resume we use some sort of a word processing app. We don't build a word-processor and then make a resume. All internet users are using apps, which are also tools. They are designed to have as little of a learning curve as possible, quite the opposite of programming.
Admittedly, mastering programming is hard and complicated. However, I have taught programming for more than a year to people of varied knowledge backgrounds. I can safely say, learning it is not as hard as it seems to be initially. No matter what, we do resist learning new things.
Why do we resist?
When learning new things, we make a lot of mistakes. It is challenging, time-consuming, frustrating and disappointing. All of those are negative emotions. Frankly, everyone wants to avoid them as much as possible.
To learn anything new, one has to go through this rough patch where feelings of failure will be stronger than progress. We procrastinate, and end up prioritizing other things. Continuing with our previous example, one can keep using the older more familiar tools for hours instead of learning the new skill, because the older-familiar tool is our comfort zone.
Sacrifice now, to gain later
I have read the text of the title numerous books and blogs, but I never really appreciated it. That was, until I learned it from experience. When I used to work as a project manager, I assigned 2 similarly complex tasks to 2 different people. For simplicity, let's name them Ari and Juna. Ari took a day to finish it, while Juna took only 3 hours. I was impressed with Juna, that was only until the time when the client asked to make some changes to both of those features they had developed. Now, the time-taken by each was reversed. Ari had built it so the code was scalable and flexible. Juna's code was not decoupled enough to have the flexibility needed at that moment. Ari invested time for long term gains.
In the case of learning, due to the negative emotions we all feel, sacrifice can be equated to investment. The point being we can invest more time initially to reap the benefits later. This philosophy is also the reason for having software-automation teams in many big companies. For example, we don't want to spend hours testing a product once we build it manually, so testing is automated. We simply run a script that will run every test and let us know if something fails.
There's a difference between an investment and expenditure of time. Spending time on something doesn't always make it a good investment. There are multitude of things that can nudge one's project, life, cooking, and other things a little bit more towards the desired. Find them, improve on them and use them with ease later.
We must face the negative emotions that come from "I could be doing something else", "Am I even making progress?", and numerous other thoughts. These thoughts are supposed to happen. So yes, sacrifice now, to gain later.