DZone Research: What Developers Need to Know About AI
Developers need to understand the fundamentals of data science and be proficient in Python.
Join the DZone community and get the full member experience.Join For Free
To gather insights on the state of artificial intelligence (AI), and all of its sub-segments — machine learning (ML), natural language processing (NLP), deep learning (DL), robotic process automation (RPA), regression, et al, we talked to 21 executives who are implementing AI in their own organization and helping others understand how AI can help their business. We began by asking, "What skills do developers need to be proficient on AI projects?" Here's what they told us:
High-Level AI/Data Science
- A developer needs to know the strengths and weaknesses of current AI projects. They don't need to know all of the math and statistics that go on in the background. But they do need to know when a particular technology is ready to be deployed and how to effectively use APIs, modules, and packages created by AI/ML researchers.
- The difference between a developer and a data scientist will grow smaller. The greater democratization of tools and learning people are getting the basic concepts of how to learn and the tools are making it easier for people to do this work — a hugely broader swath of the world is able to do this. In the short run, there’s a need for people with cutting-edge capabilities, in the long run, there will be a lot of people who learn the tools.
- Creating a complementary role between a developer and a data scientist. How can different AI techniques can benefit your application? If you put a REST call in your application, you can get your predictions back by AI into it. Understand types of algorithms that will help your application. Don’t need to know the intricacies. Understand what problems you are trying to solve and if you have enough information. Formulate the question correctly. Asking the right question and providing the information is up to the application developer and they can have a good relationship with the data scientist.
- Learning a lot more about math packages and frameworks processing types and frameworks GPU versus CPU. Focus on domain modeling how to store and source large amounts of data.
- Pick a track data engineer, Hadoop, data warehouse, or an SME data scientist focused on a specific area. Once you identify you can build skills that are more focused. Companies will encourage you to take on certain responsibilities based on need (i.e. Python, TensorFlow). Be open to learning. Think about the business problem you are trying to solve.
- In general, for the developer to become competent in how to use frameworks, what models mean, understand key building blocks what the limitations are, get expectations under control. Non-linear regression.
- Understand basic data science. Important for developers in all subject areas. AI is making use of data. Being conversant with concepts around statistics and data science is a necessary fundamental.
- With the basis around A.I. currently being what is and how to apply algorithms, developers need to start with a solid understanding of basic algorithms — it all stems from mathematics. Developers can tap into the basic understanding and knowledge by leveraging resources like open source and online courses, and from there tap into the key components of A.I. technology.
- It’s actually pretty simple. I recommend the developer community at large goes back and re-familiarize themselves with basic probability theory. This is just the amount someone would need for a solid game of blackjack or poker. The reason is that even advanced techniques, like the Random Forest Approach, can be quickly understood enough to see the application once someone lays the foundation. Next, there are now a whole host of open source tools and guidance that developers can lean on to apply these methods in their own projects. All of this is far more approachable than it was even just a few years ago.
- Developers should not try to do AI any more than a mathematician should try to build high performance distributed architectures. It’s a different discipline. Developers should be knowledgeable about what’s out there. They should know the right questions to ask. They should know about deployment technology. They shouldn’t be using canned tools to solve problems. If you think debugging code is hard, try finding a bug in a thousand-dimensional haystack that you can’t see. That’s what debugging these systems is like.
- Developer’s need a broad set of programming skills including familiarity with popular AI frameworks (TensorFlow, Caffe, Theano, Torch, etc.), general programming languages (Python, C++, Java, etc.) and specialized languages such as Cuda for parallel processing. While they don’t need to be proficient in everyone, they should know the benefits and drawbacks and when to use them. AI demands a host of new skills beyond the core programming and computer science skill set. It requires a deep understanding of statistics, probability, and algorithms for prediction and inference. AI also requires an understanding of problem structures, decision making and reasoning, and neural networks.
- It depends. If you really want to get into developing AI algorithms, you need to be really good at math, matrix calculation, stochastics, etc.; in a sense, AI and Deep Learning are a sub-branch of Mathematics. Luckily to apply AI this is less relevant because AI comes in many packages where the math is hidden inside. Still, if you want to train your own models you need to be good at data manipulations, know your Python or other script languages, be familiar with running experiments and understand some basic statistic measures. But, as mentioned above there are lots of other things to be done around the core technology to make an AI project successful. In our workforce, we have lots of mathematicians but also “normal” software developers, linguists, psychologists, DB experts and so on.
- Developers must have knowledge of big data and machine learning oriented technologies which are primarily built on two core programming languages — Java and Python. Understanding of ML techniques and statistical algorithms are must-have requirements. Understanding of available open-source frameworks and tools for big data, machine learning, automation etc. is required.
- In IT, AI goes hand in hand with programmability, so IT managers need Python and other DevOps skills to take the knowledge gained and applied it via automation. Fortunately, we are starting to see AI for IT certification classes, like a recent one at ONUG, that address this issue.
- Relationships with scientists and analysts. Developers, engineers, architects, operations, governance, security, compliance never really had a serious sit down to lay out their concerns and provide a cohesive set of questions. Talk, get with others that have expertise where you do not. Everyone must work together. Succeed more rapidly when there’s a strong leader heading this transformation. Transformation Czar is for the best of the bank and brand.
- Open source. Developers should be proficient in Python, Scala, R, Jupyter. Need to have some level of understanding of big data technologies Hadoop, Cloudera, Hortonworks arm a developer to take advantage of AI for their organization.
- The best way is to just dig in. It’s so accessible. People from the university were amazing because they’ve already practiced. Get started with TensorFlow and dig in. Trained AI using StarCraft 2 dig in and play around to have skills with TensorFlow.
Here's who we spoke to:
Opinions expressed by DZone contributors are their own.