Of course behind the basics of data modelling offered scripting within qlikview more then only loading several tables behind one another and doing (frequently) the same things again and again. Instead of this you could use various control-structures with different kinds of loops, if-then-else statements, Variables and in sub-endsub statements or in include-variables outsourced code. Such structures makes a script clearer, easier to maintain and often they perform better. To be able to reuse code could save a lot of time.
You could extend these features by creating batches inside from qlikview script and execute them or any other external scripts and batches.
Further very helpful is it to track what's going on while the script-execution, especially if something not worked as expected. For this you could enable script-logging, trace loop-counter or Variables and use the different options of the error-mode.
A good source for many examples could you find by Rob Wunderlich: "Qlikview Components" Open Source Project.
Are the amounts of data relative small we need not to think much about the script-runtime, but do we need to handle bigger-datasets or needs to query some loadings quite frequently, we should consider incremental loadings to make sure that only new or changed data will be loaded.
Another important part of optimizing loads is to use optimized loads from qvd's which are a lot faster than normal qvd-loadings.
Here you will get further important topics: More advanced topics of qlik datamodels
There is some content-overlapping within the above used links but I think the complement to eachother is useful and of course you will find many more interesting postings here within the qlik community to these topic - the notes here are a good starting point to go further.