Developers are problems solvers. Their tools are computers, programming languages, compilers, and text editors. But writing code is a means to end. A developer’s true calling is the invention of creative solutions. We tend to think of development as a machine- and logic-oriented profession, but it is the human trait of creative intelligence for which developers are most valued. In recent years, advances in artificial intelligence research have brought about an alternative means of problem-solving.
Machine learning and the more sophisticated deep learning use algorithms that can spot patterns in data, classify the entities it contains, and make decisions on that basis. Machine learning uses classification algorithms painstakingly crafted by developers. Deep learning uses neural networks that learn for themselves from massive datasets, requiring little direct intervention from developers.
Machine learning and deep learning have been applied in many different domains, from computer vision to personal assistants. Once, machine learning was beyond the ken of the average developer; today, there are services that will create machine learning models for you. Machine and deep learning are also making inroads on developer’s home territory.
Code or Data
There is a set of problems that would once have been solved by developers building algorithms, but which can now be solved by deep learning techniques. Computer vision is a prime example. It has advanced rapidly in the last few years because deep learning models need massive amounts of data, not large numbers of programmers. Deep learning will be applied to more problems of this type in the future.
Last year, Ubisoft introduced an AI tool called Commit Assistant. Trained on ten years of code commits, it is used to spot potential bugs in video games before they cause problems. It catches just over 50% of bugs accurately, and that proportion will improve over time. Modern infrastructure deployment is largely automated with cloud platforms, containers, and continuous integration and deployment pipelines. Sprinkling machine learning magic into the testing and quality control process could save businesses a lot of time and money.
As the security landscape grows in complexity, it is impossible for security professionals to identify every threat in real time. But pattern recognition is where machine learning excels. Machine learning techniques are being applied to an array of cybersecurity issues. Intrusion detection systems benefit from the ability to recognize new threats. Anti-malware and anti-spam systems based on machine learning have an advantage over traditional algorithmic filters. Adaptive firewalls use machine learning to detect threats in patterns of user behavior.
The Future of Development
We have discussed development-related areas affected by machine learning. There are many more, and the use of machine learning in development will only grow in the coming years. Should developers be worried about their jobs? At the beginning of this article, we defined developers as creative problem solvers. The most advanced machine learning and deep learning algorithms aren’t capable of sophisticated problem solving, and they won’t be for many years to come. Developers should learn about machine learning and how it can be used in their products and workflows, but there is nothing to worry about yet — the machines aren’t coming for your job.