At this point, nobody knows better than me what it means to be a software developer, especially a technical expert or an algorithm developer working on embedded systems, like smart speakers or autonomous vehicles. I’m passionate about these technologies in my work at Deepmind. And when it comes to the algorithms that make those products work, I have had the privilege of building them for years. But I’m also extremely curious on the other end of the spectrum — why does everything we do need in our modern world be “algorithms-driven”? How can machines create value and solve problems more efficiently than any human would? These are the kinds of questions we, at Deepmind, try to answer every day in all our projects. This is why I often see new challenges arise which makes me feel excited to come back to my work even though it’s been 30 years since my first project. In fact, I used to think that when I started out as an engineer to build neural networks, I could go on with the big dogs. Since then, however, technology has changed so much, it’s hard to stay ahead of the curve.
For some reason, many people tend to think that making computer science useful will always remain important. Many of those who are interested in AI and machine learning start by reading about neuroscience and trying to understand how it works, but they don’t necessarily think to look at the technical side and try to find applications because they don’t want to figure things out like math. To them, the importance of understanding how artificial intelligence interacts with real-world objects is crucial, but the importance of understanding how computers learn is what most people take issue with. So when it comes to machine learning, everyone talks about deep learning, but no one wants to talk about what it takes to successfully train the models. Even if you aren’t interested in deep learning, you want to know what changes you can make to your product or application.
So, where am I going wrong? Well, for the moment, I’d say that as a researcher, I always assume the user knows a lot about a project or product, and I rarely ask myself if they have any idea about the use case or if they can use it well, or if they think there are other people who might be able to help. The same goes for algorithmic developers who spend lots of time thinking about how to improve their code or even debug or debug. There’s always someone else who can tell you more about something than I already know, but that person might think that they only care about implementing something and that they’d rather you just implement it than give them details about how it will work or that they just don’t care about knowing how it works. I’ve had those experiences. Most of all, I think that the question is not what do we need to do in order to be successful in developing AI technologies, but rather than focusing on implementing machine learning, what do we need to focus on? If we know why to apply machine learning then why do we need to develop a single class of machine learning tools for each application we want to build? Shouldn’t each type of machine learning tool have its own advantages over others and should all be built around these advantages? Instead, we should focus on finding solutions to problems that have similar requirements but that require slightly different approaches or programming languages, but still benefit from applying AI and machine learning technologies.
In conclusion, I think we should stop worrying about AI for now and instead shift the focus towards solving real-world problems. We should stop talking about whether or not we need to worry about AI, because most people ignore that aspect. They start looking into things like neural networks or try coding in Python. They forget that sometimes AI doesn’t need to do anything at all. For example, the internet is full of websites where developers explain how something works, and users are happy with that. Similarly, we shouldn’t expect companies to write entire apps around how something is implemented. Developers should make applications that can work just fine outside of their proprietary frameworks and platforms, and they should talk less and listen more. Everyone should be open to change. After all, with every innovation comes great opportunities, and the right solution to a problem will always mean great rewards for society. It’s very easy to get frustrated at times, but keeping an eye on future developments and constantly evolving areas will be good for everyone.