Triplebyte Blog

We help engineers join great companies
Try our coding quiz

Share this article

The AI Skills Generalist Engineers Should Consider Learning

By Daniel Bean on May 22, 2020

The AI Skills Generalist Engineers Should Consider Learning

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.

Get Started!

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.

Get offers from top tech companies

Take our coding quiz

Discussion

Liked what you read? Here are some of our other popular posts…

Triplebyte’s Way-Too-Long Technical Interview Prep Guide

By Triplebyte on Apr 29, 2020

A running collection of technical interview preparation resources that we've collected at Triplebyte.

Read More

How to Pass a Programming Interview

By Ammon Bartram on Apr 29, 2020

Being a good programmer has a surprisingly small role in passing programming interviews. To be a productive programmer, you need to be able to solve large, sprawling problems over weeks and months. Each question in an interview, in contrast, lasts less than one hour. To do well in an interview, then, you need to be able to solve small problems quickly, under duress, while explaining your thoughts clearly. This is a different skill. On top of this, interviewers are often poorly trained and inattentive (they would rather be programming), and ask questions far removed from actual work. They bring bias, pattern matching, and a lack of standardization.

Read More

How to Interview Engineers

By Ammon Bartram on Jun 26, 2017

We do a lot of interviewing at Triplebyte. Indeed, over the last 2 years, I've interviewed just over 900 engineers. Whether this was a good use of my time can be debated! (I sometimes wake up in a cold sweat and doubt it.) But regardless, our goal is to improve how engineers are hired. To that end, we run background-blind interviews, looking at coding skills, not credentials or resumes. After an engineer passes our process, they go straight to the final interview at companies we work with (including Apple, Facebook, Dropbox and Stripe). We interview engineers without knowing their backgrounds, and then get to see how they do across multiple top tech companies. This gives us, I think, some of the best available data on interviewing.

Read More