@Puppyt :-
I guess most of us probably learnt packaging the same way. By taking a known, working package, extracting it, and studying the way it was constructed.
The actual packaging itself isn't hard to learn. Every Puppy contains the tools to do so by default. The skill, I think, comes in deciding, and figuring out, just what an application needs to run in a given Puppy; requirements can vary from Pup to Pup, though many dependencies are common to all.....much of the X-server display stuff, for example.
Beyond that, you need to work out exactly where, and in what directories items need to be placed. Do I need sym-links? Have I got permissions right, or ownership? Am I going to pack it as a .pet package, or do I want an SFS instead? Or, as in the case of portable packages, tarballing is often required. And so on.....
Personally, I don't think it's something that's that easy to teach. Beyond that, once you've created a few packages, everybody develops their own individual "work-flow"; working directories (where to put them, how many do I need.....what size); sometimes, you find script items can often be re-used (with modifications).
If you need to compile something before you can start to assemble your package, prior to building it, well.....that's a whole 'nother ball-game on its own..!
And not everybody's cut out to do this stuff. It takes a peculiar level of patience to build software packages.....and to get them right, so's they work.
Mike.