The AI Toolbox: New Skills for a New Generation
To understand how AI skills differ from the needs of other programming areas, consider what your AI toolbox might contain.
- By Brian J. Dooley
- October 2, 2017
The skills required for competence in artificial intelligence (AI) constitute a "toolbox" that will continue to develop as the field develops. AI is becoming critical to a growing range of business processes and will be incorporated in basic infrastructure, so the demand for new skills will continue to increase.
It is no longer enough to understand algorithms and programming languages; skills are now needed to fit AI into broader frameworks and enable companies to meet concrete business goals. AI practitioners need to embrace greater levels of interaction with the environment, and this will increase the demand for specialists in particular techniques and vertical industries.
The demands of AI differ from those of other programming tasks not only due to a relatively early stage of development but also because of the greater need for interaction with other systems and with people. Characteristics such as autonomy require special domain knowledge. To understand the range of necessary AI skills, it's helpful to look at what the AI toolbox might contain.
Essential AI Tools
Programming and programming languages: Programming languages used for AI include Python, C++, Java, and other popular languages that have libraries available for diverse AI applications. These languages support interfaces and general routines.
There are also special-purpose languages that match specific AI approaches, such as R for analytics, MATLAB for numerical analysis, and Lisp or Prolog for expert systems and problem-solving that doesn't involve machine learning. Programming language selection will be heavily dependent on the intended environment and the problem to be solved.
Special programming skills: There are many programming skills of particular importance to developing AI components. Among them are machine learning and data analytics, but it is also important to understand GPU programming, parallel and distributed processing, and software integration. Understanding APIs and microservices -- both in theory and in practice -- will also become increasingly important as combinatorial approaches become more prevalent.
Specific AI techniques: AI skills require understanding current AI techniques such as machine learning algorithms, cognitive computing, text analytics, natural language processing, modeling, advanced analytics, and search technologies, as well as the interaction of these capabilities with enterprise architecture and security.
Data management and analysis skills: Understanding big data analytics, unstructured data, data storage, security issues, and a wide range of data management skills is essential to any AI approach, particularly for machine learning approaches that require real-time analysis of large data streams for modeling and execution.
Statistics, probability, and analytics: AI practitioners need to have a firm grounding in statistics and probability, which are the basis of simulation. They also need to be able to interact with and create valid models and algorithms that are applicable to the problems they are called upon to solve.
Feature extraction: As AI continues to expand, it will reach into an increasing number of niche areas having unique characteristics. Although the generalities of machine learning may be applied across a wide range of problems, understanding feature extraction within particular domains will become increasingly relevant.
Signal processing, graphics recognition, medical records, and finance have very different data characteristics. For a machine learning program to understand a type of data, you must be able to extract specific features from the data and build a model.
Second-level interactions: As AI continues to progress, it will be increasingly necessary to understand the greater context in which it exists. Practitioners need to understand software integration issues and security within their toolset, along with interactions between software systems and AI-driven external components such as autonomous vehicles.
There is also an increasing need to understand social interactions and social behavior as AI becomes integrated with other systems, other AIs, and human social interactions. Robots must be able to talk to robots and avoid causing harm to humans; marketing AIs must understand the social context of their interactions; ethical questions will arise in AI behavior. Those working in AI will need to develop a greater understanding of these types of interactions.
Considerations for the Future
The growing range of necessary skills means that AI will inevitably develop in more specialized ways. Although all participants must have a cursory understanding of the whole territory, there is also a need for specific and deep expertise in each area. Additionally, understanding the context and scope of business problems and being able to apply AI techniques to obtain specific results is imperative. The range of roles in AI will continue to expand and soon companies will need to include new roles in software development and in management of AI systems.
Brian J. Dooley is an author, analyst, and journalist with more than 30 years' experience in analyzing and writing about trends in IT. He has written six books, numerous user manuals, hundreds of reports, and more than 1,000 magazine features. You can contact the author at firstname.lastname@example.org.