The AI skills generalist engineers should consider learning
Daniel is an editor for Triplebyte's Compiler. He's spent years writing about software and technology and even has a few "Hello, World!" programs under his belt.
You don’t have to buy into the idea that all tech companies will soon become “AI companies” to acknowledge that machine learning and artificial intelligence are growing more and more integral across almost every part of software. The way that’s translating to the developer job market is through a spike in demand for devs with a grasp in AI and ML tools.
Now, even though the needs for web, front-end, and back-end dev gigs remain strong, what we could start to see more call for are for the kind of generalist software engineers who would fill those roles to know more about integrating AI elements. In fact, experts in the field I spoke to are more or less counting on that, especially when companies are procuring generalist engineers for “cutting edge projects” in the future, one told me. Below are suggestions from those same experts on what skills generalists should consider learning to jump on the AI wave.
Hit the libraries
With so many programming libraries out there for the using, it rarely makes sense for a developer to build anything completely from scratch. The same goes for AI software, engineer Aditya Rohilla told me. The recent Arizona State University computer science grad said a great first step for a generalist engineer to gain experience with how ML and AI work is to familiarize themselves with incorporating ML and AI libraries into their projects.
Just like how [non-engineers] can set up a website with a few clicks without knowing the underlying HTML, CSS, engineers [without ML experience] are able to add ML-based features in their applications just by importing libraries. Platforms like AWS and Google Firebase provide these features as of now. Just a few clicks to add ML-based fraud detection features in banking apps, image recognition for social media apps, and so on.
Rohilla believes the majority of overlap between AI engineers and web/mobile devs in the immediate future will look more like this. “Web devs will not need to know the underlying working of a convolutional neural network (CNN) for adding image recognition features in their app,” he went on.
Taking Python further
The next step beyond complete plug and play AI engineering is through mastering Python. “[It’s] the de facto language of ML and AI,” University of San Francisco data science professor Brian Spiering told me, adding that scikit-learn is the “most common” general ML Python library to start with. (Rohilla recommends the similar-level fastai library.) PyTorch and TensorFlow, on the other hand, are the top Python-interfaced tools for advanced deep learning.
Pyro, a probabilistic programming language based on PyTorch and Python, is best to learn for getting started with statistics (more on that later), Facebook AI software engineering manager Jason Guaci told me.
Less building and more debugging
It’s not hard to imagine how learning to at least tweak and customize some Python ML code can come in handy in a pinch, but knowing how these programming models work well enough to help in debugging can be even more useful, according to Guaci.
“People focus too much on building models and less on making them great,” he explained. “Even 'Hello World' can have a typo and not compile the first time you try to run it.”
Though Guaci believes that data scientists will remain a staple on developer teams to provide the “expertise” to debug AI models and optimize them, generalists who dig in on stats can put themselves in the best position to help. “A good understanding of statistics (probability distributions, random processes, Markov chains) is extremely useful,” he said.
Similarly, Spiering added that gaining familiarity with the principles of applied supervised machine learning can be of great use in troubleshooting AI and ML work. “In particular, a focus on all the things that go wrong with machine learning in a production environment [is important],” he said. “Machine learning in the real-world” is a topic he thinks even CS programs don’t do a good job of teaching.
Don’t worry too much about algorithms
Finally, something not to get tied up on when considering what AI crossover skills to learn is algorithm building, said Spiering. “Algorithms are commodities, everyone has the same algorithms. Data and systems are the differentiators for business value,” he said.
Free courses and other learning resources in ML and AI are abundant these days (like this one from CMU and this one from Berkeley), and the experts I spoke to swear by them as a first step in gaining knowledge in the field. And for generalists who decide to go all in on AI and ML, Triplebyte has a machine learning assessment track to let you know how far your skills are coming along – and let employers know, too.
Triplebyte helps engineers find great jobs by assessing their abilities, not by relying on the prestige of their resume credentials. Take our 30 minute multiple-choice coding quiz to connect with your next big opportunity and join our community of 200,000+ engineers.