The catch? I don't know Pascal, and there is no way to learn it. There are so many versions of Pascal that every tutorial you find will be about a different version. The GUI tutorials are for Borland Delphi, not Lazarus. There is no documentation or recipes for doing basic things, e.g. if you want to make a simple to do list CRUD that adds items to a list, you have no idea which widget is the correct list widget. Normally in this case you have a model-view list and a string list. Doing anything with lists that have columns is often a confusing nightmare, but and it becomes even more confusing with no documentation about it.
On the forums, the recommendation is to just press F1 in the source code editor to read the documentation for a function, but that doesn't help you when you have no idea what function you need to call, and you won't know it often. How do you append an item to an array, for example. How do you REMOVE an item. Is there a splice function? A remove function? Where are the dynamic arrays. Is there something like classes, and if not, how are you supposed to organize objects that you want to instantiate. How the lifetime of things work. Every time you ask "is this the correct way to do it using this tool?" you'll have no answers. How do you structure your project? It's completely different from how modern languages work and from how even C works.