For the last three and a half years, I’ve mostly been working on issues around open source supply chain security. That’s a fascinating and rewarding area to be in, but I also wanted to broaden my knowledge base, so a couple of years ago I decided to study for a graduate degree in Artificial Intelligence while continuing to work full-time as an open source developer at VMware. A few weeks ago I successfully defended my thesis for my M.S. in Artificial Intelligence from Sofia University, and I thought it might be interesting to share a few reflections on how that went, what I learned from the experience, and how I think it might factor into my future work with the open source community.
The Benefits of Formal Learning
I think of myself as someone who’s always open to learning new ways of doing things, but there’s a lot to be said for following a formal course of study, especially if it has a thesis project at the end.
For one thing, your professors will have figured out the most important things you need to know about the subject and created a comprehensive curriculum to follow. There might be elements you wouldn’t have chosen to study yourself, but you are learning what the experts figure you need to know. And in my case I learned a ton of cool new things.
Next, you get to learn from, and work with, those experts. I was lucky enough to have Professors Preslav Nakov and Ivan Koichev supervising my thesis and was really grateful to have had the opportunity to work with them and get to know them. I might even be able to work with them again in the future.
Then, there were my fellow students, who were all interested in the same thing as I was, and all at the same stage in learning about it. That’s a great group of new friends and potential collaborators and colleagues to add to my professional network.
When it comes to learning new skills, we were required to do at least one large group project where students worked with each other in gathering data and doing a piece of original research. That helped improve my ability to work in highly-focused, ad hoc teams.
Lastly, for my thesis I built a novel machine learning model for verified claim retrieval. That gave me the invaluable experience of taking on a real-world machine learning task and finding an elegant and efficient way to solve it. It also tested – and reinforced – my ability to work on a self-defined goal, even on days when I didn’t feel like doing it, which is a really useful life skill to have.
If You Are Thinking of Doing Something Similar
So, what if you are thinking of doing something similar? After going through the experience, I think there are a few things to keep in mind:
- First, do your research on the commitment involved. Try to get a sense of both the level of rigor your proposed course will require and how much time you will need to devote to the course every week. The university department you are hoping to study with will likely offer some helpful guidelines.
- Make sure that you have the academic preparation and the available time that you figure will be required to give the program your best shot. For me, it really helped that when I started the degree I didn’t have any other big responsibilities, like being the parent of a small child or needing to hold a second job. That made it a great time to invest in developing a broader intellectual perspective on an area that could have a very positive impact on my career.
- Definitely tap your networks for help with these decisions. When I was figuring out if I had the bandwidth to take on the study I had some great conversations with colleagues at VMware and in the broader open source community with people who either had done the same thing, or were in the process of studying for a degree themselves. That really helped me understand what I was signing myself up for and feel confident that I could do it.
- Lastly, try to resist the feeling that you absolutely have to get a masters degree at all costs. If you don’t have the bandwidth – or the money – right now, that’s okay. You can do it when your circumstances allow, and there are plenty of other ways to keep learning that offer a lot more flexibility than studying for a degree.
A New Perspective on Open Source
One thing I quickly realized while studying for my degree is the importance of open source for the fields of AI and machine learning – and for the process of learning about it.
Of course, I contribute to open source every day as part of my work, but now I have become a heavy open source user. I drew on multiple open source datasets, as well numerous open source libraries and models. It was incredibly helpful to find open experimental AI projects in almost any subject area. Whenever I was looking to improve a model, I could find multiple examples where people had tried something similar, and because they had shared their experience, I was able to use that experience to improve my own work.
If you work in a big company, or in a university, you might be able to get your hands on a few really big data sets, or a few libraries or models from which you can learn. But most of us don’t have that privilege. Doing this work made me appreciate how a field that really embraces the open source philosophy can help everyone learn faster, better, and more efficiently.
I also gained a new appreciation for the community aspect of open source. Whenever I got stuck, I was able to search multiple open communities where people were asking and answering questions about different problems specific to AI. I found helpful discussions in StackOverflow, GitHub, and many other places.
The VMware Advantage
Finally, studying for my masters helped me appreciate working in an environment with smart and curious colleagues. Hopefully, that’s something other people who are studying while also working full time get to experience as well.
In my case, I was lucky to sit near several people who were curious about AI-related challenges and who were willing to talk with me about my courses. One colleague in particular helped me a lot by talking through some of the challenges I was facing with my course projects, why I was getting the results I was, and how I could try to improve my algorithms.
I was also fortunate to be working for a company that supports its employees in furthering their education. VMware paid some of my tuition and my manager was incredibly supportive – even helping me carve out the PTO days I needed to get my academic work finished.
Now that I’m done, I’m not immediately planning to start working in AI. I actually really like working on supply chain security. But I’m very happy that I know how to apply machine learning to a problem if the need or opportunity arises.
More importantly, I now have an informed perspective on how machine learning and AI can be used to solve hard problems in (and using) open source, one that I think will be increasingly relevant to more areas of computer science – and other STEM fields – in the future.
Stay tuned to the Open Source Blog and follow us on Twitter for more deep dives into the world of open source contributing.