DEV Community

bosiarquitetura
bosiarquitetura

Posted on

The meaning of using tools to code

You are on your computer writing code. You start a word and the autocomplete pops up. You press tab until you get the word you need. The autocomplete is reliable. It always appear when you start writing a command on the language that you use.

Now you are doing a test for a company. They insist that you use pen and paper. If you don't know it by memory, you don't really know it - they say. But is that really true?

Andy Clark and David Chalmers (https://icds.uoregon.edu/wp-content/uploads/2014/06/Clark-and-Chalmers-The-Extended-Mind.pdf) argues that this is false and I would argue that most programmers would agree with them. According to both, thinking and knowing isn't just a process that happens inside of a brain that is disconected of the rest of the world.

If you take a closer look of someone working, playing or thinking, the complete process always include going back and forth to the real world that is outside of our mind. Take the process of coding for example.

First we start by reading what we need to do and the code base we are working on. Then we start to code some simple lines and memorizing some informations. When this starts to get confusing or complicated, we externalize that information. We debug, use console.logs/prints to check information or even write some ideas on paper. We Google to check something that we "forgot" how to use and check for other pieces of code, on other repositories, that we wrote a while ago that we might be able to copy and paste. Finally, if everything went right, we push our code for review.

None of us would say that the guy that needed to use print statements and Google some informations doesn't know how his code work or that he doesn't know how to code. However, as we can see, not all of the information that he used is stored in his brain per say.

What the person on the example did was relaying on a tool to store that information for him. A tool that he knows it'll always be there for him to check and get that information at any moment in the same way we do with our memory.

He can trust Google to always have a possible solution. The console to log the data he asks for. The paper to store what he writes on it . And the piece of code that is already validated do work as it worked when he wrote it.

We are able to use tools to do a lot of diferent types of work. Thinking is just a diferent type of work. To nail something, a woodworker uses a hammer. People that works using propositional thinking uses text, search engines and other kinds of tools to be able to store/get every kind of information. That doesn't make anyone knows less or more. It's just a way to use the tools that are at you disponible.

The client doesn't care about how did you do something. No one asks if the Facebook or Google engineer used a seach tool to copy a piece of work. More important than knowing a lot of information by memory is to be able to get what you need to work fast, in a reliable way. To able to adapt to any problem, any new framework or language that you might need to learn.

Top comments (0)