Think about how easy it is for you to read this sentence. You didn’t think about it; you just read it. Even if English is your second language, the fact that you’re reading an English version of this article suggests a level of proficiency that’s capable of easily understanding everything that’s said here. This article will attempt to get you to learn a new language, of sorts, in order to improve your life drastically.
Whether at work, or even at home or when having fun with a hobby, there is something to be said for being efficient. Unless you’re sitting in a boat looking to spend a lazy day fishing, or sitting under a tree in a public park, reading a book and passing your time, pretty much every other task that has a goal can benefit from speeding things up. Whether it’s a shortcut you find, or a way to do a task faster, or even a new method that is more efficient, speed is desirable. And it’s not only about going faster... you might find that you can improve the quality of output by using little tricks, or find a new way to do something that takes much longer even, but results in a bump up of quality… you can always improve in some way or the other.
Now, leisure is not something we often want to improve on, but we certainly do want to do that at work. The problem is, every one of us has such a different job description, and in so many different verticals, that it is impossible to nail this down to specifics. This is why all “self-help” books are vague and barely scratch the surface of any one job.
Besides, it’s not just jobs that are different, it’s people as well. No two people are the same, or do a job the exact same way, even if they hold the exact same position, in the same company, with the exact same tasks set out for them to accomplish. There will be noticeable differences in how they go about doing their work, and this depends on their personality, and their way of thinking. What works for you will not work for your colleague, and this is why it’s usually impossible for us to tell you how you can be better at a task.
You, however, have the luxury of knowing yourself, and are even sometimes capable of accepting honest feedback from yourself about what it is you suck at. More often than not, unless you’re deluded about your own abilities, you will know your own shortcomings, and even if you don’t your bosses will be only too delighted to critique you. It is your brain, and you’re the only one inside it (schizophrenic patients might disagree), which means it has to be you to fix it. How on earth can you fix something that you didn’t think was broken to begin with? Most of us think there’s nothing majorly wrong with us, and are quite content living with our flaws. Besides, even if you’re aware of your flaws, that still doesn’t mean you are aware of how to fix those flaws. This is where we come in, and try and get you to learn new ways of analysing your problems and to think out of the box (or rather out of your own brain).
Every Indian knows this word, and has indulged in some jugaad () of their own. It’s almost a national obsession, to just find a way to get things to work with the resources at hand. The word has no simple translation to English, though “winging it” might be a close fit. All cultures and countries have their own versions of jugaad, and for good reason too. Turns out, it might just be the natural order to be that way...
If you look at how natural selection works, it’s small changes being made, which are then put to the survivability test, and if the changes are beneficial, the group survives, and if they are detrimental, the group perishes. Thus, good genes propagate and bad genes die out. Sometimes, the change has no real effect on the survivability of the group, and it just remains in some part of the population. If you replace genes with ideas, you get the basic workings of jugaad. We come up with small innovations that are more spur of the moment, rather than well-planned, and then those innovations are put to a test. Since most jugaad happens in colleges, let’s take an example and break it down. We’ve all seen the famous cooler and pants jugaad, where a pant is attached to the cooler and one leg each blows air into two different rooms. Perhaps not the most efficient way of doing things, but it certainly would have felt a little cooler to students in the different rooms. They would have looked around the hostel and tried various things, presumably, before settling on this idea that seemed to work, and once it did work, they stopped trying to perfect it. Just good enough to work is the aim, and the idea survives. Just as with nature, where our bodies have obvious flaws in them that make it impossible to believe that this was an intelligent design that was done from scratch, ideas like the cooler-pants solution are clearly not planned in advance. Natural selection works with what it has on hand already, without using anything external, as does jugaad.
In essence, jugaad is the way the world works naturally, and that’s the reason why we Indians and other cultures as well, are so good at it. Jugaad also arises more in countries of larger populations and lower incomes, because it is more important in such places, as often, the survival of people is at stake. In China, they have the same way of thinking, and they have their own word for it. It’s called ‘chàbùduō’ (), which roughly translates to ‘almost’, or ‘close enough’ – as in, ‘not perfect, but close enough’.
In order to get efficiency however, one has to use some form of planning and introduce something new to the equation. Buying materials to construct a new cooler to properly vent air in two different directions would have been an engineering solution. It would be carefully planned, and then implemented, and would fit the definition of ‘intelligent design’.
Jugaad can get stuff done, but engineering a solution is the ‘right way’ to go about it. In professional settings across India and China, jugaad and chàbùduō are considered negatives, and if you are accused of using those methods in your professional life, it’s usually an insult. Another way we talk about this attitude in India, in Hindi, is to have a ‘chalta hai’ () attitude.
Globally too, when many Indians and Chinese (and other Asians as well) go abroad to work (in Europe and the Americas, especially), they find that this attitude can land them in trouble. This is because there are strict codes that have been established and need to be followed by workers in these countries, which may be unheard of in the native countries. This is especially the case for hygiene standards in food service, or for building standards, safety standards, etc. This is one of the reasons why these attitudes have been treated as negatives, instead of looking at it in a positive light, as getting things done.
There’s a big difference between chàbùduō / jugaad and being a tinkerer. A tinkerer is essentially a person who loves to pull things apart, see how they work, and then ‘tinker’ with them to improve them. To use the aforementioned cooler example above, a tinkerer would take apart the cooler and rework it. Unlike an engineer who would purpose build something to cool the two rooms, a tinkerer would add on to it, and make a contraption to enhance the cooling, instead of just attaching a pair of pants or building something new from scratch. Generally, a tinkerer has knowledge or gains knowledge about how something works, and then improves on it.
The reason we’re spending so much time writing about these differences, is because we want to precisely explain why we think it’s important for all of us to be tinkerers, and how we can all achieve that level of competence. If you want to be better at work, or your life in general, you’re going to have to tinker, and do it all the time. Tinkerers get things done, and they’re achievers. Many entrepreneurs start off tinkering with things, and many of them are very successful because of this skill they have. And it’s not a skill that people have to be born with, it’s merely a mindset that you have to buy into.
Of course, most of us do not have the luxury of physically tinkering with things anymore. Tinkering has become more of a hobby, and we all usually have one unfinished project stored somewhere – this writer has several amps, speakers and various electronics he means to try and repair someday when he gets spare time. But that’s not the tinkering that this story is about…
What we’re talking about is the tinkering mindset, and applying that to your life in general. We don’t want you to take apart an important machine at the office to try and figure out how it works… that will probably get you fired, or even jailed, depending on how important and expensive the machine is… Instead, what we want you to do is to learn to take apart your life, or your job, or today’s task, and study it as a tinkerer would. Because we know our own lives, we have valuable insight into how it can be broken down.
A simple example is the life of a technology writer, who has to juggle many balls in the air at once. There’s planning of future articles, loads of reading to be done, research, speaking to people, meetings to attend, reviewing gadgets, discussions with peers, actually writing stuff, gaming, making videos, being on top of the latest news, even more reading, even more research, gaming, tinkering with our PCs, engaging on social media, watching cat videos, gaming, attending press conferences, interviewing people, going for junkets like CES Las Vegas, going out into the market and speaking to vendors, keeping an eye on sales and offers, gaming, voicing over videos, trying to find time to read a book or three, scouring the app stores for interesting stuff, trying to stay healthy and fit enough to survive a decade or two, listening to family members complain about you not spending time with them, and if we get any free time after all of that… gaming.
There are a myriad of ways in which we can tinker and improve on how we do things, or even better, automate certain tasks. And this is the point in such discussions where it becomes mandatory to talk about AI.
All of us know that a general AI is coming, and we also know that it will cause jobs to change drastically. There are aspects of all of our jobs that AI, or a machine of some form, is just better suited to do. Anything repetitive or anything that can be templatized is just begging for machines to do it. And of course, machines will do it. Machines should be doing it. You can get machines to help you do all of that right now anyway, which will free up your time and allow you to do more of the stuff that machines cannot do.
As humans, our true worth is not to do what dumb machines already can, but to outthink machines, to do things better, to innovate, and of course, to tinker. Most jobs today already need us to use our brains, and if you’re reading Digit, it means you’re probably using your brains far more than the average Joe does. In such jobs, working with software is usually the norm, but it’s not like we can hack (tinker with) that software to work better for us. Instead, what we can do is look at everything else we work with in the office and try and break those down into simpler tasks, and then find ways in which AI can help us.
Of course, you need to know how to dabble in some code to achieve anything with AI, but thankfully, it’s getting a lot easier to do thanks to software packages and services that are available to us.
And now we get to the part where you learn how to hack your life. You do this by engaging in what’s called computational thinking (CT), which is a way to break down tasks and problems into smaller chunks, translate that into something a computer could understand, and then use a computer to help you solve aforementioned problems. In essence, it is what enables computers to help us do tasks that are usually specific to our jobs. Remember the introduction to this article? Where we talked about learning a new language? Think of CT as learning a new language, where you learn to talk and think like a computer would.
And it’s not just computers that can be helped by using CT, but us as well. When you break down a problem, organise data logically, and try and convert it into simple yes or no answers (binary) often, it helps you arrive at a solution all on your own.
CT can be achieved by breaking any problem you have into three main chunks. The first is called Abstraction, which is essentially you decomposing a problem into many different chunks that allow you to formulate the problem in computer speak. Then comes Automation, which is a way to express how you would arrive at a solution, again in the computer language of your choice – it’s like building a model by using data sets. Then comes Analyses (plural) which is the writing and testing of algorithms to arrive at a solution. To simplify and dejargonise the idea, let’s look at a simple math example:
Let’s say you have to find the sum of all numbers between 1 and 10,000 (don’t Google it!). And of course, you can’t just use a computer and find out, because you’re trying to think of this problem like a computer.
If you were to manually add 1+2+3+4+5+6+7…+10,000, it would take forever! Although a computer could do it this way in a heartbeat, what if we wanted to find the sum of all numbers between 1 and 6,516,516,546,516,546,519,654,872,346,987,287,364,598,712,634,578,926,347,856,243,578? A modern computer could still tell you the answer in a heartbeat, but not because it would do this manually, by adding all those numbers together… It’s been programmed instead to recognise patterns.
What you’d need to do is to break the problem down into a simpler solution. Instead of using 1+2+3+4+5+6+7…+10,000, you need to find a better way to do this. Since we have to add all numbers between 1 and 10,000, a simpler way to write this down would be:
1 + 10,000
2 + 9,999
3 + 9,998
Here you can see that the answer for all of them is 10,001. Next, you need to know how many of these pairs of numbers you will have before you exhaust the numbers that need to be added. Since you’re taking 2 numbers per equation, and there are 10,000 numbers, the answer is 10,000/2 or 5,000 pairs. Thus, 5,000 pairs of numbers that total 10,001 in a formula is:
10,001 x 5,000, or (10,000 + 1) x (10,000/2) or (n/2)*(n+1) = n^2/2 + n/2. The answer is 50,005,000, by the way.
And what about the ridiculously large number?
(6,516,516,546,516,546,519,654,872,346,987,287,364,598,712,634,578,926,347,856,243,578 + 1) x 6,516,516,546,516,546,519,654,872,346,987,287,364,598,712,634,578,926,347,856,243,578 / 2
It’s too big for a standard calculator on your PC, but using an online large number precision calculator, you can find that the answer is:
Even a computer would struggle to do this in the 1+2+3+4+5+6… way, and yet here we were able to do it so easily, all because we broke things down into simple math problems that computers can understand.
If you were to calculate this for, say, the sum of numbers between 4 and 10, this would be (y^2/2 + y/2) - [(x-1)^2/2 + (x-1)/2], where x is the smaller number (4) and y is the larger number (10). This can be further simplified into: (y^2-x^2+x+y)/2
… since y^2 - x^2 = (y+x)*(y-x), we can further simplify the equation to:
And now you (and a computer) can find the sum of consecutive numbers between any two values of x and y!
Not every problem is easily translated to math though, but this is no problem for a computer, because you just need to use variables, or placeholders in order to get the machine to understand it. The great thing about computers is that they’re dumb, so they don’t need to understand things in order to run simulations or process algorithms. Let’s say you’re building a game, and want to make a randomised face generator. Of course, you would have to deconstruct a face for a computer to understand. The more you deconstruct, the simpler you make it and the more variables you have (desirable in a random generator). In a very simplistic example, let’s say you were building a game with cartoon cats (everyone loves cats in videos and games, not so much in real life). The first thing you’d do to generate cartoon cat faces is to decide on how many different shapes of the head you want. Because they’re cartoons, you can be as creative as you want, and have, say, square, round, oval-wide and oval-tall as four simple shapes (you could add more), next you tell the computer that every cat has two ears, and you model different types of ears, and also show the computer where to place the ears for each head shape. This is just x-y location data, since this is not 3D. Next, a nose, then the same thing for whiskers, mouth-open and mouth closed features, etc.
Obviously, the more parameters you add the more variables you have and the more things you have to specify for each variable. Next, you give the computer individual images, and when it generates the image it puts it together and you have a randomly generated cat face. Sounds simple, but it’s a lot of hard work breaking down a cat’s face into elements and then trying to experiment with placement of the components until you get it right. An easy cheat would be to ensure that eyes and ears and mouth can all be placed in the same spot, regardless of head shape, which would make your life much easier. Of course, this is just an example of how you could break up something abstract like cat faces into simpler problems that can be solved. Your own use would require you to do that for a problem you have, and the more creative you are with the abstraction, the better the output, and it’s this abstraction that computers find it hard to do. They’re getting better though. Head on over to thispersondoesnotexist.com and you will find a computer generated image of a person who, as the name suggests, does not exist. These faces are created by what’s called a generative adversarial network (GAN). A GAN is essentially two algorithms competing to try and win a game, and that game is to please you and give you what you ask of it. It’s like supercharged tinkering and natural selection all rolled into one. Both algorithms come up with an answer, and either you can choose who did better, or you can even automate that by creating a discriminative network that does that job for you! Of course we’re oversimplifying here, a lot, but the work has all been done for you already and open sourced, so your level of interaction need not be any more advanced than we’re suggesting... of course if you are a coding whiz, you will obviously do a better job at tweaking to suit your requirements and thus achieve better results.
At thispersondoesnotexist.com, computers are generating faces by studying a vast library of faces, and being very careful to never use all the features of anyone’s real face in a single image, and thus recreating a fake person. Some of the faces look strikingly real, while others just feel wrong somehow, but overall it’s an impressive job. You can even use the source code to build your own generator. All you really need is a large sample of images and you’re good to go.
This month’s cover story is to get you thinking along the lines of a tinkerer about everything, and to get you to learn to achieve better results. No geek is ever happy with anything the way it is, so we’re sure there are a million things you’d like to tweak. In the articles that follow you will find less abstract and more practical ways to tweak your browser, learn how to code, tweak Android to suit your needs, and even use voice assistants to achieve tasks. All of those will pale in comparison to the complexity of your life however, and it would take us a thousand articles to hack all aspects of one person’s life using the tricks we’ve mentioned. Multiply that by a million readers, and we’d have to write a billion articles just to cover the lives of our readers alone!
As the old saying goes, give a man a fish and you feed him for a day, teach a man to fish and feed him for a lifetime…
Make sure to write in and tell us how you have used tinkering and computational thinking in your life, and we’d love to share it with other readers, so that they get more ideas. And if you have created (or do create) any interesting generators with GAN, tell us and we’d love to feature you in future articles.