Is there a reason you want to learn how to build widgets for Web AppBuilder? This is old technology based on the decade-old JavaScript 3.x API and will be retired soon. It would make sense to concentrate on learning how to code Experience Builder widgets (which uses the more modern JavaScript 4.x API), unless you need widgets that haven't been added to it.
It does have a higher learning curve, though. You should start by looking at this page on what you'll need to know.