Are you new to Nuxeo and looking at where to start? Are you considering to learn Nuxeo but still deciding whether to dive in? We talked to Alan Gu, who worked as an intern at iSoftStone this past summer (the summer of 2020) on a Nuxeo project, about his experience learning Nuxeo and applying his skills to a real-life project. Alan joined the iSoftStone team in New York just after completing his freshman year and without having had previous experience with Nuxeo. Although we were all working remotely due to the pandemic, he quickly got up to speed and became part of the team. He just recently returned to college to start his sophomore year (he intends to major in computer science), and he gave us some insight.
Had you previously worked with any digital asset management or enterprise content management system before you began working with Nuxeo?
No, I had not. In fact, with the limited experience that I began with, I was unfamiliar with the project in multiple regards. Firstly, the use of SaaS and PaaS models to produce IT systems for business was new to me. Secondly, I was not aware of the specific needs of the retail industry, including DAM or ECM. Luckily, Nuxeo’s documentation does a great job of outlining the nature of the end product and its capabilities; Nuxeo University provides solid resources for end-users to visualize the nuanced ways in which the platform may be used. Understanding this user perspective greatly informed my actions from a developing standpoint.
How did you begin to learn to develop for Nuxeo? What resources were the most valuable?
Nuxeo University online courses were an excellent starting point. A broad range of topics are covered by the courses, which are organized into learning plans to provide pertinent information from development to end use. It was helpful for me to start with some beginner courses which outlined key starting points for investigation. I supplemented what I learned online through the detailed documentation provided by Nuxeo.
As a beginner, it was essential to familiarize myself with Nuxeo Studio Modeller and Designer. This involved reading the documentation under the respective tab, taking the Nuxeo University courses, and, of course, playing around and getting comfortable with the platform. By following the ‘Getting Started’ documentation, it was easy to launch a trial instance of Nuxeo. After implementing some basic features, I could introduce myself to the more advanced customizable components, such as XML extensions or Nuxeo back-end development.
How much time did you need to spend learning before you felt that you were able to be a productive member of the team?
Within 1-2 weeks. My tasks mainly involved processing change requests, so the question was when I would be comfortable receiving an issue on the user-end and translating that to a solution on the back-end. The Nuxeo platform, especially the workflows, are quite intuitive and easy to navigate, but it was worthwhile to spend some time following each workflow to see what pieces of code they called on. I also benefited from having others walk me through some of their own code changes.
Taking my time to learn was important, but it was easy to get lost in the large amount of available learning resources. After a week or two, it was both valuable and practical to begin processing some simple tasks, both to contribute to the team, and also to establish comfort with the platform. In many ways, I found it more beneficial to learn on the job, and to fill the gaps in knowledge as I found them.
Of the skills and knowledge that you had before you started learning Nuxeo, what did you find to be the most useful in developing for Nuxeo?
How important was studying versus hands-on experience in learning Nuxeo?
Despite the wealth of documentation, the best way to learn Nuxeo is definitely hands-on. Though the documentation and tutorials detail many aspects of implementation, this is often using a default Nuxeo instance, and in practice, workflow logic and UI configurations are highly customizable and end up being specific to the project and development team. I entered partway through a Nuxeo project that was already highly customized. Implementation was complete, so all that was left was maintenance and processing change requests. In that environment, simply working with the platform hands-on, following the workflows, and exploring the corresponding user actions were the most helpful in familiarizing myself with the existing platform and its customizations. On another note, while studying, it was hard to differentiate between important and nonessential details. Oftentimes it was advantageous to encounter an obstacle first, then go back to the documentation to see what solutions were available.
Is there anything, in retrospect, that you would have done differently?
I would have liked to have exposed myself to many more of the development resources earlier on: Nuxeo API Playground, Nuxeo Studio Community Cookbook, NXQL querying. They are mentioned in the documentation, but should be explored independently. The ease and efficiency of my Nuxeo development was highly dependent on my knowledge of the capabilities and functions available to me, what could and couldn’t be done, what already existed, and what would need to be customized. As time progressed, I picked up more tools along the way, but simply knowing where to find that information is key, and I would have liked to have gotten to know these resources sooner.
Anything else you’d like to add?
There is a lot of documentation, and I sometimes found myself lost between what was vital to development and what was extraneous detail. I recommend a step-by-step approach: learn enough to start, and then start doing hands-on work while you keep learning to keep the project going.
Want more information?
Ready to start your Nuxeo journey? Or are you interested in learning about how iSoftStone can help you implement Nuxeo for your critical business needs? Please reach out!
Alan Gu is a sophomore at Brown University. He has Nuxeo Fundamentals certification and intends to major in Computer Science.