[SOUND] I've been interested in computer science for many years. My interest in computer science started way back in elementary school. I was always good at and interested in math and science. And as computers became more and more available and accessible, I began computer programming. Even back in elementary school, certainly through junior high and high school, and what I liked about computers was the incredible power they gave to answer questions. Scientific questions, mathematical questions, designing games, making up your own world. Being a computer programmer gives us incredible power over a world that you can create. And so, it was both mathematical and challenging and required logical, rigorous thinking, but also a domain in which I could be really creative. And so, my interest started early, when I went to college I actually majored in something called symbolic systems, which was an interdisciplinary computer science major where we thought of computers as ways to investigate questions about how the mind works, and how symbols are created, and communication happens. So computer science, I became interested because it was a way to be creative along with logical rigorous thinking. But computer science has just opens up, every step you take you open up a new door, to realize what the value of computation really is. Software development has changed a lot in the decades that I've been programming. When I first started coding, it was often an isolated activity that you would sit in a room with your own computer. Solve your own problem from the ground up, and more and more computer science is a collaborative endeavor. So when you write code, you're pulling libraries, you're pulling from other people's code, modifying it, mashing it together with your own code. Things like GitHub are really designed to allow a programmers to share their code, to be interactive, to merge what they're doing together, in ways that we couldn't have dreamed of decades ago. And now it's absolutely essential because programming has become such a collaborative, interactive enterprise that these kinds of collaborative activities, or tools, that facilitate sharing of code, are essential. Web-based applications are obviously a really hot thing right now. Having skills in developing code for the web almost guarantees you a job. That is likely to change in the next few years. It might still be a very hot area but I think computer science, the history of computer science, has shown that trends come and go. And so, it's really difficult to predict what would be the big new thing in the next few years. I think students can really buffer against that possibility that things will change by developing the ability to learn new tools whatever these new tools are. You should always expect that whatever you know today is going to change. And you aren't likely to be able to predict what will happen. So I'm going to say that it's really hard to say where software development and web development is going. I will put in one plug for increased, that we should expect that software developers will have to care more about security, they'll have to care more about unpredictable environments, than we typically have in the past. But exactly what form that'll take, you all who are learning these skills now, you're going to be developing the new tools that come online in the next few years. The most important advice for students or anyone who's thinking about working in software engineering, it's the same device that I'd suggest from any field, which is perseverance. A lot of people come to software engineering, maybe they don't have the same background that the person sitting next to them has. Software engineering skills are skills that can be learned. And spend time in classes, spend time on your own coding, if you really like hacking but you have a particular kind of question you're really excited about working on, then work on it, spend time just getting comfortable coding. And be okay with failure, be okay with the fact that the first 10 or 20 times you write something, it might not be quite right. Software engineering is something that you just build on continually, and so allow yourself to make mistakes and dust yourself off and keep going. I think that's important and that gives you knowing that's going to happen, and I think gives confidence that you can pick up whatever the next new tool is, you can learn the skills that you need. You've learned PHP, but now some new language comes along. Having the ability to pick up those new skills and the confidence that you can try, fail a few times, and then master it is really important.