Q&A: A Developer's Journey into AI and Machine Learning
MSDN Magazine columnist and former Microsoft evangelist Frank La Vigne talks about his transition into the realm of artificial intelligence and machine learning, and what developers need to know to make a transition of their own
Frank La Vigne has been writing about artificial intelligence (AI) and machine learning (ML) for Microsoft's MSDN Magazine since October 2017. His column, Artificially Intelligent, isn't written from the perspective of a data scientist or AI architect, but rather as a developer learning and exploring the mechanics and possibilities of AI.
La Vigne's journey started in 2016, when an internal Microsoft conference promoting awareness of AI and ML among employees produced an early ah-ha moment for him. Previously an evangelist in public policy and government at Microsoft, he jumped into the world of AI with both feet. It was a transition that brought new concepts, new vocabularies, new approaches and entirely new ways of thinking. And it has yielded some timely lessons for developers contemplating a move into ML and AI.
I caught up with La Vigne recently and spoke with him about his experience.
What got you interested in machine learning and artificial intelligence?
I've always had a fascination with statistics. Perhaps it has something to do with being a lifelong baseball fan, but being able to compute and get an idea of an outcome before it happens with math alone seemed like a magical power. This fascination carried me through my hatred of math up until high school. Math, as it is taught, almost guarantees an innumerate population. However, that's a topic for another day.
But imagine my delight to find out that a lot of this "new field" rests on top of statistics. In fact, predictive analytics looks an awful lot like predictive statistics. I had found my new passion.
You were at Microsoft at the time. How did your role there aid the transition?
One of the entry points into this field was my former role as a technology evangelist at Microsoft, where I was often called upon to create data visualizations for members of Congress, foreign dignitaries, and civic leaders around the country. I noticed how their eyes lit up when you provide them with actionable intelligence and craft a presentation of the raw data that brings to life a real world problem from disparate, abstract chunks of data.
However, the real moment where I saw the light about this field came while attending the "Data Science and Machine Learning Summit" in 2016 at the Microsoft campus. The sessions were incredible and shed some light on how Microsoft was planning to integrate AI into every facet of the company. I also met some amazing people doing interesting things. From decoding brainwaves to helping the disabled to fighting fraud, the application of statistics can do almost anything.
You're a developer and a Microsoft employee in a world of open source-aligned data scientists. Is there a cultural mismatch there?
For the community as a whole, much of the advanced work in this space is being done in more academic circles and nearly all of it is open source.
I've spoken at a couple of events now where professors and professionals both shared the podium--it's new for them and new for us. One gentleman in his tweed suit said to me, "I'm so glad we have practitioners like you here at these events." I'm not quite sure how he meant it, but the way he said "practitioner" had connotations of both admiration and a hint of condescension. To him, the geeks were clearly encroaching on his turf now, and he wasn't quite sure what to make of it yet.
While this level of elitism has subsided a bit, it's still out there. But there are no longer public debates about "do you need to be a PhD to do data science" any more.
You came at AI from an outsider's perspective. What does the challenge space look like for the bulk of developers pondering a future in AI?
There are challenges. Microsoft really has to sell developers and data engineers that data science, AI and ML is not some big, scary, hyper-nerd technology. There are corners where that is true, but this field is open to anyone who's willing to learn. And Microsoft is certainly doing its part with streamlined services and tools like Cognitive Services and ML.NET. End of the day, anyone who is already a developer/engineer clearly has the core capabilities to be successful in this field. All people need to do is level up some of their skills and add new ones.
In some cases, people will need to unlearn what they've already learned, particularly around the field of certainty. The way I like to put it, a DBA (database admin) will always give a precise answer. Inaccurate maybe, but never imprecise. "There are 864,782 records in table X," for example. But a data science/ML/AI practitioner deals with probabilities. "There's a 86.568% chance there's a cat in this picture." It's a change of mindset as much as a change in technologies.
How ubiquitous do you expect AI/ML programming to become?
Now, in 2018, people congratulate me on my forward thinking to jump into AI and data science with both feet. While I like to think I picked the "right horse," I remind myself that I also thought the TabletPC and Windows Phone would be the dominant platform.
Do rank and file developers seem anxious to take on this domain, or is there hesitancy there?
Developers now fall into two camps: the group that wants to get into it and developers who fear the complexity of getting into it. There's a lot of math, and there's a lot of people out there who were traumatized by math since middle school (or earlier). Developers by and large already have the mental firepower to handle the concepts of AI, but they lack the confidence to follow through. I felt that way at one time as well, but I got over it. I'm on a mission to show other developers the way past that fear. In fact, that was a major motivation behind my podcast, Data Driven.
You write for MSDN Magazine, which naturally is focused on the Microsoft tool stack. What are your thoughts on Microsoft engagements in this space?
The AI and machine learning space is still very much influenced by academic work. As such, an enterprise-focused company like Microsoft may not be the dominant player in this space. In fact, much of the work I've done has been outside the Microsoft stack, whether it's using Python, TensorFlow, or Keras. It also speaks to the field's more fundamental nature. A linear regression algorithm is going to behave the same way on any platform. Math is math.
I have to say that I'm really impressed with the way Microsoft has embraced the existing ecosystem and the dominance of Linux-based tools. The Ubuntu Data Science Virtual Machine is my go to virtual machine image for projects of all sorts, and the tooling Microsoft provides for Python is the best available. The company is doing a great job adapting to the ecosystem by playing to its strengths as a first-class tool developer and cloud data service provider.
And overall, Microsoft has done a good job appealing to various audiences by providing cognitive services for "regular" non-AI developers, ML.NET for longtime C# developers wanting to get into this space, and first-class support for leading tooling like TensorFlow and Keras on Azure for hardcore AI work.
What are some challenges awaiting aspiring AI/ML developers? What can they do to ease the transition and give themselves an edge in this emerging space?
When I first started the transition, the problem was a severe lack of content written for developers. Now, it seems as if everyone and their cousin has a data science introduction class. The challenge now is finding quality classes that can explain these concepts. That's not an insult to content providers--this stuff is not trivial and there's no well-worn path from zero to hero.
All this is based heavily on advanced mathematics, so mastering it requires a kind of focus that our IM/interruption-based world makes even more challenging. Just know that this is hard stuff and requires a different mindset than traditional software development.
Finally, this field moves faster than any other. If you don't enjoy lifelong and continual learning, this is not the place for you. Staying up to date on the latest innovations is a full-time job.
My advice: Pick a concept and go deep. Turn off the phone and social media for at least an hour each day. Get as many books on a topic as you can and watch as many videos on a topic as you can. Network with meetups. Go and ask sincere questions. And if someone asks you a question, answer it to the best of your ability. The way forward is together.
Our thanks to Frank La Vigne for talking with us for this Q&A! Want more on this topic? Try "Top 18 Free Training Resources for AI and Machine Learning Skills" and "Machine Learning Engineer Named Best Job of 2019."
Michael Desmond is an editor and writer for 1105 Media's Enterprise Computing Group.