The Learning Curve, Chapter 7 - Training

Are you new to Liferay? Found Liferay and want to know what it can do for you? Or are you with Liferay and still remember the time when you were new and unexperienced? Where did you come from and what was the biggest problem you faced? Can you ever learn enough? And how do you keep up with the current trends and new features?

A platform as big as Liferay spans several technologies and areas of best practices that are beneficial to know of. Nobody can know everything - there's always a learning curve. At the beginning, it's quite steep. Some argue that it's flattening the more you know. Some argue that it gets steeper: The more you know, the more you know what you don't know.

I'd like to give you pointers to resources that are available to you, in order to learn about Liferay, resources that help you avoid steep detours, when there are flatter direct connections. This is meant to be (eventually) comprehensive but I'm sure that it will never be complete. It's just what I remember while I write this article, the previous ones in the series and the follow ups (yes, there are more, see the list at the end)

Today's Target Audience: Today there will be something for everybody

As this is all about training, let me start with an actual story from one of the trainings that I led. This is a good summary of the reason to consider working with a well-trained team:

My (best, but) least anticipated training experience

Once upon a time (back in 2011, one and a half year after I became a Liferay Trainer) I was sent to a customer to conduct an onsite "Portal Administrator" training with their development team (The name of this class recently changed to "Mastering Liferay Fundamentals"). The team that I was meant to train was highly experienced in Liferay, developed plugins and customizations for solid three years back then. They've had high-profile Liferay people on site, among them even one of our core engineers that we never send out (don't ask).

Now, "Mastering Fundamentals" is basically giving an overview over what Liferay can do - the whole backend, user management, page management, sites, organizations, portlets and out-of-the-box functionality. It's approaching everything from the feature- and front-end side. It felt like 3 years too late for that team - they must have found every single feature already long time ago - or so I thought. Trust me, I was really nervous. I expected getting through the class in record time, followed by a lot of complex and challenging questions on their project. (not that I'd mind challenging questions, but I didn't know their project at all. And I like to make a good impression)

Instead of finishing early and lots of complicated questions, we finished the class right in time (after two days), with the participants constantly checking back to each other - "Wow - did you know Liferay can do this? Remember how it took us 3 weeks to implement similar functionality? And now we'll have to maintain that code". I was stunned.

So, what do we learn from this story?

Even as a well experienced developer it makes sense to get the a nontechnical introduction to the platform. If the only toolset you have at hand is your compiler, you'll think along its lines. If you know what you build on, know the infrastructure that you're integrating with, you can use it to your advantage and just configure it to make the required features available. Maybe tweak them a bit.

Of course a developer can solve all problems you throw at them, typically with some more code. But new code might not always be the best way to solve every problem. If all you have is a hammer, the world looks like a nail.

And, by the way, some years later, one of those students recognized their class when I told this story at an event (without revealing their identity). He confirmed that they had the same experience.

The best maintainable software feature is one that you don't need to write, because it's already done. Know what's available for your to tweak and you can utilize it with ridiculously low effort.

So - what are your options?

Liferay has several training classes, readily available. You can either join us at one of the public trainings or schedule a trainer to come to your location and have a private training with just your team. Let's go through them and identify the target audiences. For a full description I've linked the full course topics and contents in the headlines:

Mastering Liferay Fundamentals

This is the class that the story above was about. Fundamentals are really good for everybody who has a saying in the structure of a portal. Those who will have to configure Liferay to meet the needs of all stakeholders. You'll learn about many features that Liferay has out-of-the-box.

It's also a great way to make sure you don't develop the same features that Liferay already brings with it - so at least some of your developers should have a deeper knowledge of the platform.

This course is also offered online. The online version is spanning three days, with the afternoons free of class.

Developing for the Liferay Platform 1

Any portal/portlet developer should know what we cover in this course. From relating the portlet API to the servlet API over service builder, utilizing Liferay MVC, Liferay's runtime-configurable permission system and customizing Liferay on many different levels, it provides the basic tools to explore Liferay from an API point of view.

It's encouraged to have visited Mastering Fundamentals upfront (see my story), but not mandatory.

With this course you'll be able to write your own applications, extend Liferay and know where to look for when you want to customize it. It should contain most (apart from some experience and routine) of what you need for getting certified as "Certified Professional Developer" .

From the feedback that I've had about "Developer 1" training: Everybody has gotten something from that class - even the more experienced developers that thought they already know everything. In fact, we're coming with several interesting bonus exercises for the more experienced students so that you definitely don't get bored just because you're quicker than the newbies.

Administering Liferay Systems

Are you setting up Liferay systems? Configure them? If you're responsible for maintaining, tuning, backing up and the general server health, this is your class. You'll learn about all of these topics, set up a cluster, and get to pick the brain of an experienced trainer on so many topics. We'll come with a ready-to-go VM, but you can also bring your own appserver and database for installation.

Styling Liferay with Themes

Your portal should look like your portal. To adopt the Look&Feel you'll need a theme - this is the one custom plugin that everybody typically has. We'll cover the basic structure of Liferay's themes, principles and building blocks and build a custom theme. This covers best practices, responsive layouts, tipps & tricks and more. Naturally, the result won't look like your CI, but you'll have experienced all the different extension points and can easily use this knowledge for the implementation of your own theme.

Some HTML and CSS knowledge is required - we'll just adopt it to the Liferay world and help you build a well maintainable theme.

Managing Content with Liferay

If you're responsible for the content side of Liferay, you might want to learn more about its CMS, go in depth in workflow, the Asset Framework, Structured content, Staging and how to build and maintain the content of your portal. This class is for you then. We're setting up Liferay on your own computer so that you go home with your own installation and can continue working on it after the class.

Developing for the Liferay Platform 2

It's number 2, so it must be more advanced than number 1, right? Well, this class starts exactly where "Developing for the Liferay Platform 1" stops and picks up the resulting code from that course, refining it further. If your portal makes good use of Liferay's internal concepts like Assets, Workflow and features like Rating, Commenting, this course is for you. Same if you want to be even better prepared for the certification.

Just remember: You really should take the first course before the second as all the ground works is layed out there and your trainer might not explain the "old" concepts and code again (out of respect for those who indeed have been in "Developer 1").

Who's the trainer?

All of Liferay's classes are led by experienced trainers. When we're certifying trainers, we're paying attention to their experience as well as their teaching style. Every trainer is able to go beyond just covering the course curriculum. So, of course you should bring your questions with you.

Check the list of upcoming trainings in your region, timezone and language. Also, check the shiny badges on the personal profile page (here's mine) that you can show off with. You'll get them after each of the trainings that I mentioned if you take them straight from the source - Liferay - or from one of our certified training partners.