You can set up the user interface with imperative code and generally about everything you do in the editor you can do in code in Godot.
A little warning: it will be way less efficient to do everything with code for UI design. It makes iterating on the placement and look of things much slower, so I would recommend getting comfortable with working with the editor.
That said, here's an example of how you could set up three UI nodes with code: a Label in a VBoxContainer in a PanelContainer. It's also important to know how to do that for the cases where you need to create new UI nodes at runtime.
var panel_container = PanelContainer.new()
add_child(panel_container)
# This is equivalent of using the Layout menu in the editor toolbar
panel_container.set_anchors_and_margins_preset(Control.PRESET_WIDE)
var vbox_container = VBoxContainer.new()
panel_container.add_child(vbox_container)
vbox_container.set_anchors_and_margins_preset(Control.PRESET_WIDE)
var label = Label.new()
vbox_container.add_child(label)
label.text = "Hello World!"
You create the nodes and add them as children of one another, like how you would do in the editor.