FreePBX is a PABX application based on the Asterisk telephony toolkit and other software.
In particular, it contains a lot of programming, in the Asterisk dialplan language, to create various abstractions on top of the Asterisk primitives. The presence of this programming is assumed by the configuration generated by the GUI.
I would always advise learning how to configure bare Asterisk, then look at FreePBX and see if your particular intended usage falls within the limits of the abstractions it supports. That will mean, if you move to FreePBX, you will understand what it is doing, and be better able to debug. It will also be essential knowledge if you have to customise FreePBX beyond the limits of the GUI.