It helps that I've known about Topcoder for years. With 1,200,000 + developers, all signed up to collaborate on crowdsourced projects and compete in online challenges, Topcoder know a thing or two about what makes developers tick - and how coders upskill against requirements.
Topcoder developers - surprisingly zen about AI
Topcoder's PR pitch asserted that developers are surprisingly zen about AI:
Coders and app designers on the platform are reskilling themselves to be better equipped for the future. They aren’t panicked or resentful about this change, but understand that it’s just part of the natural order of technological innovation.
A bit too happy-historical for me, but this caveat intrigued me:
Most workers will be part-time data scientists.
So I got on the horn with Dave Messinger, Topcoder's Chief Architect and VP of Product, to find out exactly how Topcoder's upbeat take jives with the urgency to acquire new/relevant AI skills. But first off - how exactly does Topcoder gather their stats? Messinger:
From the history of Topcoder, we've always had the idea of finding and identifying top talent, especially hidden top talent. Part of that was the learning and education that came along with it. We'd see people gradually improve. We actually track all the stats and rankings of how well they're doing.
Over time, developers skills flatline, then trend upward, and sometimes flatten again:
We see people go up and then go down. Then they switch to a new technology and come back up. We look at our own community; we look at trends in GitHub. We look at trends in online education. You can tell when things start to switch into different technologies.
From that view, AI is just another trend:
Topcoder's been around for 17 years now. We've gone from old school Microsoft technologies like .NET, to functional programming, to serverless computing - we've seen all those trends. I think AI is just another trend.
So why are Topcoder developers optimistic on AI? Messinger cited these factors:
- Newer frameworks and technologies level the playing field, making opportunities accessible for more developers.
- Higher-end coders are doubling down on their AI skills, writing more custom algorithms.
Topcoders know they have to push ahead:
If you don't pick up the new things, you're going to get in trouble.
AI isn't about the right answers, but the right questions
In the case of AI, Messinger believes developers need to become part-time data scientists. But what does that really mean?
In the past, I think everyone's always come to the developer, and the developer has always been the person with the answers inside an organization. If you said, "Hey, we've got to do X, Y, Z; we've got to build a mobile app," they were always the ones that had the answers and came up with the approach.
But there's a big twist:
[In this case], it's not what the right answer is - but the right questions.
How does that work?
Data scientists need to ask the right questions of the right data - and know how to access the right data.
We can get sidetracked debating whether data scientists need an advanced math/stats background. Not for developers, says Messinger. He sees two key skills areas:
- Pick an AI development framework - and familiarize yourself with the AI frameworks clients might need for their issue. (e.g. Microsoft's Bot Framework, Google's now open-sourced TensorFlow, Watson APIs).
- Expand into how AI solves business problems - this is not a pure technical play.
In recent years, developers have tried to reduce complexity or move "up the stack" via platforms, from Devops to SaaS to serverless to PaaS. But Messinger says AI is different:
Developers are going to have to get a little bit more into that complexity, but it's more a business complexity than technology complexity.
How developers make the AI push
So how is Topcoder helping developers to make these shifts? Messinger pointed me to Cognitive.topcoder.com, which was launched eight years ago as a mini-site inside of Topcoder. Developers can take on AI learning challenges; they retain their ratings from the main Topcoder site.
For the cognitive skills site, IBM is the main sponsor: "We've been ramping a lot of developers up on Watson. That's taken off really well for us."
This site is different than their iOS and IoT expert communities:
The cognitive site is somewhat technical, but from an educational standpoint, some of it is more business context: how do you apply it, and where would you apply it?
As developers' skills improve, they can take on client challenges:
1. "Hello world plus" - branch out on some of the tools and technology.
2. Deeper learning - dig into the educational pieces, learn more about cognitive computing.
3. Real-world projects - "Once you've earned and proven yourself, we start giving you more real world problems. We've had everything from small businesses to large enterprise coming in, giving support to our community that have gone through these training modules."
Messinger says their clients posting AI challenges range from large enterprises to small businesses. He used the example of a dentist who could post a challenge for Watson developers to help with predictions using dental imagery:
Here's a business user that we can help get some of that ground truth. They can go to the community to help analyze that ground truth, to get that into a Watson service. Now a small business, a non-technologist, has the power of Watson's behind him, powered by developers - and they can do that on their own. I think that's also a good example of democratization that AI, crowding, cloud - if you put all three together, it's a pretty powerful leveling force, for even small businesses.
So what is Messinger's advice to developers unsure of where to get started?
Hop into it with both feet. Don't be discouraged by the math. I think that's where a lot of people get discouraged. I took the Andrew Ng classes on Coursera because I really wanted to breakout my calculus and figure out how to do derivatives and all that sort of stuff again. I think it's great to get that base understanding.
There's plenty to dig into - from frameworks (TensorFlow, etc) to AI courseware from fast.ai:
It's a hot topic, so there's a lot, not just Topcoder. It's Coursera. There's fast.ai. IBM has cognitive big data data science classes that are free. Like I said, I think it's coming sooner than later, so having that skillset in AI is going to be a key factor for most people.
Developers have been trying to stay in front of automation and global rate arbitrage for years. It's always been about the urgency of skills expansion. Though you can linger in niche markets (e.g. Cobol), those niches are always precarious. With the opportunities to get involved in hands-on/open source projects, it's hard to fathom why developers would linger on past glories.
Working alongside business users might be my biggest tip for developers. Pulling in some design thinking, if not UI design, might be relevant there. We can debate whether all developers need to become part-time data scientists as Messinger asserts. What is not open for debate is that we live in an algorithmic world. Coding those algorithms is always superior to being algorithmed out of a job.
Messinger did acknowledge that one aspect of the unwieldy umbrella of "AI," robotic process automation (RPA), might eliminate way more development jobs than they create. This connects to the bigger crisis in the outsourcing industry, which is sure to impact developers in those firms.
And before I get an angry comment from data scientists with Ph.Ds in statistics, I am not implying that you can easily leapfrog such a credential with a few online courses. But, as I wrote in 2014, successful data science is also about teams - and it's those teams that developers can contribute to, once they hone their algorithmic chops.
As for customers, there is plenty to recommend with crowdsourced skills. Topcoder has also expanded from "marathon matches" - companies can also go to connect.topcoder.com and try an outcome-based approach for project need. For companies looking for rarified skills, the more options the better.