Moonshot Thinking and improving yourself — WIL

José Navarro
13 min readOct 19, 2020

Reset phase. Third Week: Fancy Topics

Introduction

On this post I’ll talk about what I learned in my fourth week as a member of the NS Academy; the lectures, videos and activities that were assigned, my day to day, and all the activities that were included in the third week of the Reset Phase: Fancy Topics. I divided this essay in various parts. The first one is about “Moonshot Thinking”. In this section I talk about what this kind of mentality is and how it can motivate you to do greater things not only for yourself, but the world. One of these ways is by inventing by principle, which consists in acting and being creative on things you think are wrong or can be better. I’ll go more in depth about this in this section with help from the video “Inventing by principle”. The next section is all about quantum mechanics and the new perspective I have of it. Here I talk about how quantum mechanics opened again the potential of physics, and how it shows how we can never stop learning about this world. In these lectures they present different theories on why the double slit experiment works the way it does, even making the argument that the world we live in is in reality a simulation in a quantum computer, which is very interesting. After that, I give a summary of the lectures and coding development I had to do this week. One of them was Test Driven Development, which is a way of developing software. In this you write the test first and then the code that solves this test. At first, this was really strange to me, but after reading the rest of these lectures I understand why it is important in software development and I hope that in this section I can explain it. Finally, I talk about the lectures that talk more about personal improvement like “The best presentation of your life”, that gives you tips to make the best presentation you can. One of these tips is putting the spotlight on the information rather than yourself to make the best work you can, which I’ll go more in detail in this section. Finally I’ll give my conclusion and the takeaway I had from this week.

Moonshot Thinking

To start off, let’s talk about the video “Moonshot Thinking” by Astro Teller and “Fast Company Exclusive: Inside Google X”. Astro is from a part of Google called Google X, which has the goal to find big problems that potentially affect billions of people, and come up with a big solution that’s at least 10 times better than whatever has been tried before. In the video Inside Google X, they mention that innovations are messy and expensive. That’s why failing quickly is important, and Astro goes more in depth in this subject. You need to know how to kill a project so you can start failing again, but more important than that is learning about those failures. When I was watching this, I was very skeptical. Of course Google can afford to do this kind of stuff! It’s freaking Google! But Astro said something that made me change my mind: “Anyone can do it, you just need creativity and courage to do it. If you’re just playing old tapes you’ll die slowly, without doing anything”. That kind of hurt me a little, and it did because it’s true. As I’ve said before, creativity is something I struggle with, but with only one month in the Academy I can start to notice some changes (even if they are miniscule) on my creativity. New ways of organizing my times, new ways of learning, new techniques to work the best way possible, etc. These two videos only reaffirm the new concept that I have of creativeness: it’s a kind of work, and the more you use it, the better you become at it.

Now where can these moonshot ideas come from? One answer can be found in the video “Inventing on Principle” by Bret Victor. Here, Bret says that ideas are the most important things in the world, and that he thinks an immediate connection between the creator and the creation is important. That’s why he created various tools that provide this; he searched things that violated his principles and he started creating solutions to these problems. This is something that I think everyone experiments, but not everyone acts on it, including me. Countless times have I been using a graphical tool or an integral calculator and said “Man, I wish this program had X feature”, and just left it as it was. That’s why the biggest takeaway I had from this video was the last thing Bret said: “You can accept the world as it is, but you don’t have to”. Such a powerful phrase and very inspiring. I’ll keep this more in my life whenever I hit a bump in the road. Actually, this is related to another talk of his, “The future of programming”. Here he talks about how he sees coding and software developing will be in the future. The ideas he proposes are very interesting, but what stuck with me is the opening of the talk. There can be a lot of resistance to new ways of working that require you to unlearn what you already learned and think in new ways. That’s very true. Even if you have a great idea and think that it will help a lot of people, if they don’t accept it, then what’s the point?. That’s why, now I know that thinking something so big like programming is “done” or “complete” is a very erroneous idea. Everything is constantly evolving, just as our universe is constantly expanding.

A new perspective on Quantum Mechanics

This concept of the universe constantly expanding can be found in the video “Pale Blue Dot” by Carl Sagan. Comparing Earth to the Universe really puts in perspective how little and miniscule we really are. Earth is a small stage in a big cosmic arena, and at this point in time; the only one where we can live our life. That’s why I think we must give everything we have to protect this world we live in, and one way to do this is moonshot thinking. I have to be more courageous and creative if I want to practice this, and I’ll try to improve on this from now on.

In the last section I mentioned that thinking something so big like programming is “finished” is a wrong way of seeing this subject. Something similar happened in Physics. When classical physics got to a point of not having new discoveries, a lot of people thought that Physics was finished; everything was accounted for. That was until quantum mechanics was discovered. The way this phenomenon was found was by the famous double-slit experiment, talked about in the video “Dr Quantum — Double Slit Experiment”. In this, a ray of light was projected directly onto two slits, expecting this will form two lines of light. But the result was an interference pattern; it was actually a wave: a wave of probability. This means that the electron goes through the two slits and interferes with itself. But, when you measure through what slit the electron passed, you get the two lines of light that were expected from the start. This is something that has been talked about a lot, and to this day, there still not an actual explanation of why it happens.

In the videos “Measure for Measure: Quantum Physics and Reality” and “The Quantum Conspiracy: What Popularizers of QM Don’t Want You to Know” talk about various theories of why this happens. In the first one various scientists talk about four different theories and talk about which they think are good or bad. Here they talk about theories like the De-Broglie-Bohm, Many Worlds (all the possibilities happen, you just live one), Spontaneous Collapse and Qbism. And in the second video there’s even another idea that says that the classical universe is not “real”. There’s only one quantum universe that is made of bits and our lives are only in a simulation running in a quantum computer. Pretty wild stuff. As a physicist I’m accustomed to this, but to be completely honest, I still don’t have a full grasp of all these concepts. The reason for this is because it is something that still hasn’t been solved. All of the things mentioned before are theories that try to explain this phenomenon, but none of them have been proven right or wrong. Because of this, I never studied this subject as much as others in university. I wasn’t really interested in it. Now in the context of the Academy; I was confused on why these videos were here, but now I understand the reason behind them. These are here so we can see that assuming something so big as Physics is “finished” is wrong. This world is full of potential, and there’s still a lot to be found, so assuming you “know it all” doesn’t mean anything. We are constantly learning, and it’s important to know and understand that so you can improve as a person.

Quantum computers show us that there’s still much to learn about our world. These are talked about in the videos “Quantum computers explained — Limits of human technology” and “Google and NASA’s Quantum Artificial Intelligence Lab”. As the first video mentions, computers are getting to a point where they are becoming so small that quantum mechanics are making things a little bit trickier. Here bits no longer exist, or more exactly they transform into qubits. Qubits can be in any state, not only 1 or 0, this is called superposition. This sounds very sci-fi, but there’s actually one quantum computer in NASA right now. This only reinforces the point I’ve been making in this section. There’s no limit to what we can learn or create. There might even be a point in the future where we’ll think about quantum mechanics like classical mechanics now: “done”. The world we live in is big, and the universe is even more massive, so saying something so big and with so much potential is “finished” and accounted for, is not a very good mentality to have.

Development: activities, shell, and lectures

Test Driven Development is a development technique where you first write a test that fails before you write new functional code. As the lecture “Test Driven Development” by Martin Fowler mentions, this kind of approach lets us keep promises regarding the quality, cost, and existence of previously installed features. This is something I didn’t know existed in software development and sounds kind of weird to me. I always thought that having some kind of algorithm or general idea of what you want to do with your code should be enough to start working, but I think that was the case for the programs I did in university. For example, I did a program that calculated the movement of a projectile. First, I did an algorithm on how it works and what would be the input and output, after that I just worked on the code. This works for simple projects like the one I mentioned, but maybe for projects that manage big data bases doesn’t work as well. That’s why knowing how this kind of development technique works is very important in this line of work. When talking about testing, we can’t forget “UnitTest” and “Xunit”, which are other lectures from Martin that goes more in depth on test driven development. Unit testing is a method where individuals units of source code are tested to determine whether they function or not, and Xunit is a software that lets do this kind of testing and was essential to the growing movement of test-driven development. Also, when talking about testing it is important to mention mock objects, since they describe special objects that mimic real objects for testing. In the lecture “Mocks Aren’t Stubs” they describe that mocks are commonly referred to only doing unit testing, but mocks give the possibility of using a pretend object in place of a real one, giving us even more possibilities to test driven development. All of these concepts are new to me, so they are very interesting. I don’t understand them quite well, but I will try to start doing some testing in my free time and use this development technique to see for myself how it works.

Machine learning is also a really powerful tool and a subject that I’m really interested in, but don’t quite understand yet. With the help of the series of videos “Machine Learning” by Josh Gordon from Google I think I understand a little bit more of it. In this series of videos, they walk you through the basics of machine learning and even gives you a tutorial on how to start experimenting with machine learning. Here they describe machine learning as a subfield of artificial intelligence; where they study algorithms that learn from examples and experience instead of relying on hard-coded rules. This made me think about the lecture “The future of programming”. We can see now that we can train computers to discriminate between data without having to hard-code these differences. This is a clear example of how technology evolves and that there’s still much potential in programming, and I can’t wait to see what the future holds because of these videos and lectures.

This week we also continued with the “Missing Semester” lectures, that talk about various subjects in software development. One of the lectures was “Missing semester: Editors (Vim)”, in which they talk about the editor Vim. As programmers, we spend most of the time editing code, so it’s important to have a code editor that has what you need. Vim is one of these editors, but the difference that Vim has with the editors I know is that it’s a modal editor: it has different modes for inserting text and manipulating it. This seemed a little bit archaic at first, but after reading the lecture I’ll give it a try and see if it’s better than the one I’m using. Having different tools is important in this line of work, that’s something that I’ve learned because of these lectures. The other lecture “Version Control (Git)” talks about those kinds of tools. Version Control Systems are used to track changes to source code and help maintain a history of changes. One example of this is Git. I’ve had the opportunity to use Git before in the past week, and I have to say it’s a really good tool for collaborating. After reading this lecture I think I understand more of it and actually learned more commands to help me in using this tool, like “blame” that lets me see who made the last change. These lectures are really interesting and help improve my skills as a programmer, so I really appreciate them.

Finally, I want to talk about the lectures “Creating a User-Based Recommender in 5 minutes” and “Java Build Tools: How Dependency Management Works with Maven, Gradle and Ant + Ivy”. These lectures really helped me out a lot in completing the exercise “Movie Recommendation”. The first one gives us a clear example on how a Movie Recommender is created using Maven and some specific commands from it, like calculating the Pearson correlation between users. This really confused me because I didn’t even know what Maven is, but that’s why the other lecture was here. In the second lecture I read more about what dependencies are and how they are integrated in languages like Java. But I still didn’t quite get what Maven was, so after talking with one of my mentors I read more about it and I think I get it. Transferring the task of creating an object to someone else directly using a dependency is called dependency injection, and what Maven does is manage this dependency. This was very important since I needed this knowledge to solve the problem of the week, which was not an easy feat at all. Just as the week before, Java is something I didn’t have a lot of knowledge, I used it before but only in a little project for my high school, and a lot of time has happened since then. I was really scared, but with the help of these lectures and my peers in the Academy I solved the problem. I learned a lot from this, and I hope I can keep learning more from this program.

Being the best “you” you can be

There were another two lectures that were more about personal improvement than programming skills. The first one titled “The best presentation of your life” by Enric Lladó, gives tips on how to make a good presentation. Here he makes the point that most people put the spotlight on themselves more than the information itself, that’s when the nervousness comes. If you concentrate more on the information you want to present instead of your personal image you can make a better work. That’s something so simple but I never thought about it. Right now, because of the quarantine, this doesn’t present a big problem to me, but in public I tend to sometimes get very aware of my movements and how I present myself instead of how I present the information. That’s why my biggest takeaway from this video is that I must concentrate more on the information rather than myself. The information and how I present it can speak for me.

The other video that treats this kind of subject is “What Got You Here Won’t Get You There” by Marshall Goldsmith. This was a really weird talk, but one that I enjoyed a lot. The thing that really stuck with me was the “feedforward” technique Marshall uses. In this, you let go of the past, and you listen to suggestions or feedback without judging; that way you can learn and help as much as you can. This really spoke to me because I tend to torture myself with the past sometimes. I remember the way people treated me in high school or even university and think to myself: “Why should I help? People only will stab me in the back anyways, so why even bother?”. It’s a horrible thought that I always try to avoid, but It always haunts me in the darkest part of my mind. With this lecture I know now that that feeling will always be there, but it’s what you actually do what matters. Even if people don’t appreciate it, if you close yourself and dissociate from other people you will not improve as a person, not in the workplace or as an individual.

Conclusion

This week’s lectures and exercises were very inspiring and left me thinking about the future even more. And I don’t mean only my future, but this world’s whole future. Moonshot thinking is something that I’ve never heard before and when I first saw it said: “That’s just not for me”. But this way of thinking doesn’t only hurt me, but the whole world too. Perhaps if more people thought with this mindset a lot of problems could be resolved faster. As I said before, this week’s problem was very hard for me, at some point I wanted to give up because I thought that I couldn’t do it, but with help from my mentors, my peers and even my family, I accomplished it. This only reinforces the importance of community on a workplace, and Encora has one of the best communities I’ve experienced in my life. With this, I’ve officially been in Encora for one month. I feel like I’ve learned so much not only about developing software, but about myself too. That is something that I hadn’t accounted for, but I’m glad it happened. Now that I know moonshot thinking is a thing, I’ll try to incorporate it to my life even if it’s nothing major. I think having that mindset can really help with how you see not only yourself but the world.

Thank you for reading.

--

--