what to do in a changing world

Back when I was a software engineer at Google, Vint Cerf came by our office to give a talk about the future of the internet. Before you ask me “who that?”, let me tell you. It is a safe bet that, unbeknownst to you, your life was significantly affected by this man. His invention of the TCP, a reliable protocol that defines how data is sent from one node to another on the internet, has undoubtedly changed the way you live. That is so because a reliable internet has changed the fabric of society and continues to do so.

Today, most people take for granted the existence of the internet and how well it works. But let us remind ourselves that the technology is very new. Just the fact that Cerf, or “The Father of the Internet”, is still alive is a reminder of the massive change that our world has gone through in a single generation. The internet is so new that I didn’t even know of its existence for the first ten years of my life, and I didn’t even consider to study about it when I was choosing my college major. At the time, I hadn’t yet realized that it was an important topic to be knowledgeable about. Heck the internet is so new that I haven’t installed internet in my home yet! But I’m told that I’m one of the last people to do so in this country. Despite its newness, the societal forces of my post-college years pushed me toward learning about it and working with it, and little did I know, I ended up making a career out of it.

I was thinking about this quickly-changing society the other day when my fiancée, a computer science researcher, was explaining to me the Lamport timestamp algorithm by Leslie Lamport. It is a fascinating algorithm to say the least, but what hit me more is the fact that he is still alive. It turns out that Lamport, like Cerf, is another person who has affected all of our lives even if we don’t know it.

The systems that lie at the heart of the internet services we use today are “distributed”, meaning that they are made up of many components that exist in different places (and often in different continents) that behave as one system, and such a system must somehow order the events happening at different places at different times within the system.

A distributed system is required because you simply cannot have one server taking all requests and one server storing all the data. A modern system handles an incredible amount of data (think about photos on Instagram or videos on YouTube you interact with daily, but multiplied by the number of global users) moving from one place to another, and it is simply impossible to store all that in a single database or to take in requests for the data from millions of users simultaneously with a single server. Even if there were a server big enough to do that, a single server represents a single point of failure and a failure is unacceptable considering that these systems hold most of our financial assets among other things.

Delving into the technical details of the inner-workings of specific services we use today is not the purpose of my post today, but just to touch the surface of the challenges of implementing a distributed system, consider that the laws of nature, or more specifically, the limitation in the speed of light, forbids the components of a distributed system from synchronizing their clocks. Still, for the system to work, it must somehow order the events occurring in various components. Lamport’s algorithm is the building block with which a system accomplishes this ordering.

The fact that Lamport is still alive reminded me of the pace of change in the world that we are seeing today. Such fast changes have never been experienced by past human societies. This is the fastest we have ever moved as a species, so let’s take a moment to appreciate that. The world in 2020 is significantly different from what it was in 2010, the year I finished college. The fact that I have worked for eight different employers since is a testament to that, and I’m not even including all the freelance jobs I do now in music and teaching. This pace is a miracle if seen from a historical perspective considering that the vast majority of human history went like this: “Be born, die a few decades later, and the way the world works has not changed at all from the day of your birth to the day of your death.” Only recently does such a story not hold true anymore. And nobody even knows what 2030 will be like.

When I told a student of mine, who had just entered high school, that there is a high chance that he will be working a job that doesn’t exist yet, he asked me, “what should I be studying?” My honest answer to him was, “it doesn’t matter”.

In all honesty, your field of study does not matter all that much. Whatever specific domain knowledge you gain for a career that exists today will be outdated in 10 years, other than the fundamentals like reading and mathematics (so yes, be strong in those at the very least).

More importantly, whatever you are doing now, do it extremely well. This applies to everybody. I don’t care if you are a student, a parent, a barista, a surgeon, or a chief economist of a central bank of a country. Do your job well. If you don’t want to and you absolutely cannot get yourself to put in the work, don’t be afraid to switch fields. Pick something that you are at least driven to be good, and actually become good. I mean this advice seriously, and I mean it to be applied even for hobbies and recreational activities. Whether you are gardening, making YouTube videos, or playing the guitar, do them well. Because to do anything well requires that you build up your foundation, and that foundation will undoubtedly spring forward you in your future endeavors, whatever those foundations and endeavors happen to be in. You may not see the connections now, but you sure will in the future, looking back. Also, by doing things well, you will develop the inherent confidence that you can accomplish things, because you will have gone through the process of self-improvement already.

This importance of having that kind of confidence cannot be emphasized enough. When life throws a curveball at you and you must adjust course, the first step is acknowledging that you can indeed do so. Many self-help books like to claim that you can develop confidence in a matter of hours, and claiming as such must be helping with their book sales, but that is a flawed and deceptive message. True confidence takes time. It only comes when you actually are good. So become good.

As society gets more complex, the number of ways in which a person can live a productive life has increased as well. It is a natural byproduct of a trade-based economy in which we trade our skills for everything else we need in life, those other things being produced by other people with skills that you don’t have. Today, there are as many ways to live a fulfilling life as there are people on the planet.

For me, when I look back at my life so far, the foundational knowledge I have built up in mathematics and physics has been helpful. Because knowledge is most efficiently built up like a pyramid from the bottom up, shifting gears to a diverse array of possibilities is easier with a stronger foundation. For example, some of my recent pursuits in fields such as economics and artificial neural networks have been significantly accelerated because I had studied calculus extensively in the past. I would have never imagined this when I was doing calculus. Even though I applied calculus for years to the field of Newtonian mechanics, I had no idea that it could be applied to so many other things. I doubt that Newton, the inventor of calculus, knew either.

Another skill that does not get talked about often is the “confidence to learn difficult things.” Maybe that doesn’t really count as a skill, but it sure matters. So many people, when faced with a challenge, give up because they feel that they do not have what it takes to learn, and settle for what is, even when they know that they are not satisfied in their current situations. That’s really too bad, because we actually all have the power to change ourselves and our situations if it weren’t for our self-limiting beliefs. Sure it may take you more work than another person because of factors like your lack of experiences or innate abilities, but the words “hard” and “impossible” are not to be confused. They do not overlap.

It is certain that the world will continue to change, and you may need to adjust by learning new things. It it hasn’t hit you yet, expect that it will soon. A natural question is then, how do you develop the confidence that you can learn? Again, there is no one right answer here. For me, much of my confidence comes from music, the one constant in my life. Music’s purpose is in its beauty, but there are also positive side effects of having devoted my life to music that I didn’t even imagine while putting in the hours of practice day in and day out. I simply wanted to make good music, but music has taught me much more than how to make music. The side effects are too many to mention here, but they basically boil down to the fact that music is extremely difficult to do well. As such, any other challenge that come up in my life all just seem so easy to me in comparison. I don’t even think twice about whether or not I will be able to overcome it.

If you find yourself asking “Can I do this?”, that’s a silly question. It’s not even worth discussing. Of course you can.

the world is not a zero sum game

When I used to teach computer science and shared with my students how an open-source software is born and developed, many of them would ask me, why would anyone want to start an open-source project?

Open source projects are kind of a big deal, to say the least. The React JavaScript library, the software at the very foundation of what Facebook is built on top of, was made open-source by Facebook. Google has made a similar decision with Chromium, an open-source sister of Chrome and Chrome OS.

My students’ question stems from the perception that it seems counter-intuitive for a company to share their secret sauce (the code that they developed) with the world. But they fail to see the upside of sharing and accepting contributions from engineers all over the world by turning a project open source to improve on it, and allowing creative people in all walks of life to come up unique and useful applications making use of the technology.

There is no question that Google and Facebook both have its share of brilliant engineers, but there is great power in the collective knowledge of the entire world that even the most successful companies stand to benefit from. It just takes stepping back from the myopic views (such as “me and this one rival”, or “our sales for the next quarter”), and observing the broad, long-term effects of improved software and universal access.

Do you think it’s an accident that Wikipedia today gives you much better information on most topics compared to other encyclopedias? It turns out that 7 billion prospective volunteers collectively make a much better expert than a few hundred well-paid professionals. By the same token, the quality of a software is naturally improved by allowing the world to make contributions to the code. In this technology-driven world, better software means a better world.

One key thing to recognize here is that economic rewards in this world has not been, is not, and will not be, a simple game with winners at the cost of losers. The early hunter-gatherers who would share their hunt for the goodwill of their neighbors were onto something. Today, access to information benefits everyone, even the person who was the source of that information.

A great example of that is one of Google’s early data-processing models called “MapReduce”. Google used it to index the world-wide web, which was the foundation of how Google search worked in its early days. You would think that such secret should be kept within Google, but Google saw what it could mean to share the knowledge. So they published a paper, outlining MapReduce’s inner workings.

Out of that paper, arose a project called Apache Hadoop. It is an open-source collection of data-processing software. It allowed everyone (even small startups with little money) to perform analysis of big data. This has led to the explosion of applications that make use of data in just the last ten years. We now take it for granted that weather and traffic can be predicted more accurately than ever before, your photos can automatically organize themselves based on factors like where it was taken or who is in it, everyone can get customized movie recommendations as if they’re curated by someone who knows the deep intricacies of your personality, and doctors can diagnose diseases more accurately. Data analysis even exists in surprising areas where you would not expect it. I was very surprised to learn recently that farmers can predict the best time to milk a cow simply by letting a cow wear a pedometer and letting a data-processing software analyze the output from the pedometer. With the right technology in the hands of the right people, maybe the day when we’ll be able to predict earthquakes in advance isn’t so far away.

Tomorrow at Google, we are celebrating the company’s 20th birthday. It is a celebration of the innovations of the past, as well as the future that is to come. Yet as we speak, we are in the midst of a trade-war led by some misguided people. The future that I dream of is an open one, a world in which both physical goods and knowledge flow freely across boundaries. This world is not a zero sum game.

On sexism

It has been a few days since the infamous Google doc, or the “Anti-Diversity Manifesto” as so many media sources have called it, has been passed around. I’m not going to respond specifically to it because many have done that already, and it is so easy to view this as an “us-versus-them” issue because of the outspoken nature of those who hold extreme views on the topic, even though the reality is much more nuanced. I wish the media didn’t simplify the issue and boil it down to a sound bite with a misleading title like “Anti-Diversity Manifesto”, because, despite the author’s being labeled as “sexist”, his main motivation for writing the document doesn’t seem to be to speak against diversity itself, but to question Google’s specific diversity initiatives. If you carefully read it, he had some good points to make.

However, beyond the doc, I do want to point out a few things about sexism in the workplace and in society in general, because the gravity of the issue at hand is actually about so much more than this one single doc.

“Sexism”, just like many other words that end in -ism, is ingrained in the way a society functions which propel behaviors from the members of the society that cause a certain effect, in this case, the degradation of the members of the female gender, made possible largely by what are considered the societal and cultural norms, and our indifference toward those norms. So the problem isn’t simply the one openly sexist person who believes that men are better than women, but rather, what all of us tolerate every single day, or at times don’t even realize or label as sexism because of our ignorance and the subtlety of the issues that we encounter. So much of sexism goes unnoticed because we have built a society in which it is perfectly ordinary for one gender to be treated differently than the other, so unless we are actively seeking to identify and bust the existence of sexism, we will continue to live in a sexist society. Most of the time, we don’t even stop to think about it, or realize that something is wrong, which is exactly why this is a problem.

It starts early in our lives as culture and society subliminally enforce stereotypical norms on everyone from a very early age. As young kids, boys are given puzzles and Legos that improve their spacial and reasoning abilities, while girls are given dolls to play with. Boys are encouraged to develop skills that lead to a career (You like to cook? You should become a chef) while girls are encouraged to develop skills for making a home. (You like to cook? You’ll make a great wife and mother.) That might not be as big of an issue if homemakers got the respect that they deserve for the hard work that they do, but as long as society continues to elevate work above home-making, and money-making above relationship-making, this is a major issue. In school, boys are more likely to be given feedback from their teachers that directly address their performance, while girls are more likely to be commented on about their smiles and clothes. And even if we actively tried to stay away, nobody is immune from the dose of pop culture that is always screaming at us; all those TV shows and movies that portray men as heroic protagonists and women as objects to be won by those heroes. And throughout all of these experiences, little by little, we start to pick up on the social cues, and what it means for each one of us to be a valuable member of this society. While boys are taught to be brave and take risks (which naturally lead to many life opportunities), girls are taught to play it safe, be gentle, and look and act cute.

The sexism of course doesn’t stop in adolescence, they continue through adulthood. I routinely notice that when a group of people are having a conversation, a male member of the group will often interrupt a female member who is speaking, and nobody will raise this as an issue. This happens so often that we don’t even notice it as it happens right in front of our eyes. (One time, I encountered exactly this situation in a meeting to discuss how we can promote diversity. Irony much?) Not only do we often fail to recognize the inherent sexism here, men even benefit from such a scene, because so many people view it as a sign of strength when a man expresses his views and dominate the conversation. But our reactions are surely different if the opposite were to happen, that is, if a women were to interrupt a man. Or heck, she doesn’t even have to interrupt anyone, she may just hold a strong opinion about something and express it, at which point she quickly gets labeled as “bossy” or “bitchy”. (related read: Lean In by Sheryl Sandberg) Ok, maybe people are not that explicit nowadays with their choice of words, but you get the point.

Here’s another example that you may have encountered: a female coworker of yours does something that is outside of her job description, such as volunteering to organize a team lunch together, or cleaning up after a social event in the office. If you pay some attention as to how the situation plays out, you will notice that she got little to no recognition for this work, because subconsciously, we take it for granted that it is the normal role of women to be these supporting figures behind the scenes, all the while men are encouraged to take on the more flashy, “respectable” roles that stand out more, and often are more about elevating himself rather than the team (by the way, it is horrible that such actions are tolerated and even rewarded, because it hurts the company more than it helps if we wish to engineer a great product, but we can save that discussion for another day), and through these selfish actions, he somehow earns status and respect, and with that come the raises and promotions. And even if your male colleague were to volunteer himself to do some of the “supportive” tasks instead, he is still recognized for that because it is out of the norm for men to take on such a task and be so “selfless”, so his actions are immediately noticed and appreciated.

So about the “doc”, while we may feel good about ourselves because we think that we are fighting sexism by expressing our outrage toward one man who decided to share his views with the company, please, don’t let us think that that is the way to change. It is great to have these conversations as a starting point, but more importantly, let our actions speak loudly for what we stand for. Let us fight deliberately the sexism of this world. To start, we must be aware of the ways in which societal norms can put down one gender. Once we recognize the issue, we can actively challenge them.

Girls Who Code

Girls Who Code’s Summer Immersion Program application is now open.

If you know of any girls currently in the 10th or 11th grades, encourage them to apply to take part in this life-changing experience.

The Girls Who Code Summer Immersion Program (SIP) is like an intense coding boot camp for high school girls. Over the course of one entire summer, they attend the program for 7 hours a day, and they learn important computer science concepts such as conditionals, abstraction, and object-oriented programming, and their various applications such as robotics, cyber security, and game and web development. Most of the girls come into the program with little to no computer science experience, and not only do they come out with a newfound love for coding and problem-solving, they also learn that with time and effort, they can accomplish things that they thought they could not do.

Check out this video below documenting my students’ summer, and this LA Times article highlighting some of the girls and their projects. Video credit to Linda, my amazing fellow co-teacher!

Computer Science Education

As a former public school teacher and advocate for students everywhere, one issue that concerns me is the lack of access to computer science classes for students in K-12 schools.

The graph below shows the number of AP exam takers in various subjects.

ap-exams-1997-2011
(source: http://www.exploringcs.org/resources/cs-statistics)

It is immediately obvious that computer science has not seen the growth in enrollment that other subjects have.

But why? Considering that computing is arguably the fastest-growing industry in society today, how is it that our students are not exposed to the study of such a relevant and important subject?

This is a multi-faceted issue, but first, there is a serious shortage of computer science teachers. As a result, currently, only about 10% of high schools in the U.S. offer a computer science course.

To make matters worse, 97% of students who elect to study computer science in college choose the major because they have had prior exposure to computer science before entering college. So what about the students who did not have that opportunity?

Just put the numbers together: most high schools don’t offer computer science, yet only those who have been exposed to it consider it as a possible future career. We can deduce, then, that for most high school students in the nation, pursuing computer science is not even a viable option; they simply aren’t aware of the opportunities that exist.

Computer science is also suffering from an image problem. It is commonly (and mistakenly) thought of as a profession for privileged white males, sitting in cubicles typing away in front of a computer all day, eventually to suffer from extreme boredom and carpal tunnel, and die a lonely death. But that is far from the truth.

Programming is a creative endeavor, with as much opportunities for critical thinking and teamwork as any other field. It is an important and integral part in a variety of areas in society today. Computer professionals work for diverse employers, not just for tech companies. They are the ones who create the tools to make sense of data to inform policy to better the world. They help create technologies that cure diseases. They work with physicists and artists to create the algorithms to simulate the reflection of light or the movement of a strand of hair of a character in Pixar movies. They create platforms like Kiva that empower the marginalized to become entrepreneurs. They write the programs to auto-navigate spacecrafts, such as the MSL Curiosity Rover which, in a split second after the heat shield came off, made a decision on the safest landing-spot, and miraculously guided itself to actually land there softly, all in a low-pressure, low-gravity environment that could not have been replicated for practice here on Earth.

Anyone who wants to make a difference in the world can get off to a flying start by combining their passion with the knowledge of computer science.

If you are a high school student reading this, I encourage you to give it a try. Take a CS course or join a club if your school has it. If not, there are tons of online courses to get you started, and if you can, sign up for summer coding programs like Girls Who Code and others available in your area. It might just change your life.

If you are in college, chances are good that your school offers an introductory CS course available for non-CS majors. Enroll in it, and you might discover a new passion that you never knew existed.

If you are an adult, it is never too late to start learning. I know many people who got started in this field post-college and have grown to love it. Start taking introductory online courses, and attend meetups to see if there are others like you who might be looking for a study buddy. As far as online courses go, I really like the contents available on websites like Udacity, CodeCademy, and Khan Academy. They are all great places to get started, and each have their unique strengths, so see which one fits your learning style, or try them all.

Happy new year!
Shin