One note about the _config h'3f18'
Microcontrollers have many different registers to configure the different functions (i.e. STATUS register, OPTION register, INTCON register, and all kinds of crazy registers). These are things you will definitely want to read up on as you progress. Once you understand how to set up one register, it will be much easier to read the data sheet and understand how to set up each register to do what you want (such as your timers and interrupts).
This is what sets microcontrollers apart from microprocessors, in that you can configure them for different individual tasks then go back and change that anytime you want.
The “configuration” register in a PIC deals with the special features such as setting code protection, power up, brown out, low voltage programming, setting the type of oscillator you want to use, etc.
Don't worry about any of this stuff for now but I just wanted to mention this because as you start experimenting more you will want to venture out to new PIC's and will need to know how to configure them.
Page 97 in the PIC16F648A data sheet explains a little about this and page 98 shows the different ways to configure the PIC16F648A.
Look at the following picture and read through page 98 in the PIC16F648A data sheet and hopefully this will help give you a visual understanding about what __config'3f18' does to the CONFIG register.
Each PIC will be configured slightly different so h'3f18' will not work every time. Also, you may want to experiment later with an external oscillator and this will need to change.
I hope this helps a little.