The question is quite abstract.
You don't need any complex algorithm or other advanced coding techniques, still knowing how to code and to create UIs will help. One can create dynamic Frames which benefit from advanced coding techniques but it is not required. Warcraft 3 uses something called Frame for its UI. The ingame UI-Frames of warcraft 3 are defined mostly with fdfs (Frame Definition Files), (pre Reforged also the main menu used this files).
Much can be done without knowing fdf by only using the FrameNatives, many also say the frame natives are quite low Level. FDF is quite static, in some points quite inconsistent but it has more features then the natives.
As the name of that fdf says one can defines Frames with it. One still needs to create them with code during the game. And if they have to show something that changes during game one also needs to use the natives for that. If one Frame shows different things for each player the right usage of GetLocalPlayer() will help.
Warcraft 3 has 2 groups of Frames, SimpleFrames and Frames. Both have options to do the basic things like showing images, displaying Text or create clickable Buttons on the screen. SimpleFrames are less interactive only their SIMPLEBUTTON can throw events or have Tooltips (the normaly ingame UI is managed mostly by them). Combining both in one isn't easy. Frames in the other hand have a huge amount of Events.
The ingame fdfs Blizzard created can be found with cascview in war3.w3mod:ui\framedef\ui
The UI-Api is still misses direct access to some UI elements: DayTime-Clock, Selected-Group, idle worker, Help/Warning Message for the current User-Action, the bars over units and the unit hover info.
A hindrance is also that there is no easy way to know in groupselection which unit is currently the main selected Unit.
I published some tutorials in hive's tutorial section most can be found with that tag
ui-fdf | HIVE
[JASS/AI] - UI: Create a TextButton
https://www.hiveworkshop.com/threads/ui-toc-files.315854/