It’s not hard. It’s using subdivision surfaces so the model you make is actually a control cage for that. Subdivision surface in catmull-clark mode adds subdivisions and approximation of the rounded surface. A cube gives an irregular sphere, so moving and adding geometry in the cube will give a controlled rounded shape.

Curved surfaces need more geometry than flat ones and subdivision surfaces allow to use few control points to control much more geometry. Example had 30 vertices which you can adjust just by moving them, don’t need more advanced tools than that. Subdivision result has 1794 and you really don’t want to move each of those one by one. There are tools that give the ability to manipulate a geometry with that amount of vertices but simpler is better.

Starting with a cube, scaling, moving vertices to give a rough shape. Not much to do with 8 vertices so could then add more, a vertical loop cut in the middle (ctrl+R) and adjust those. then another vertical loop cut, repeat. Could also add the subdivision surface early on so you see what the resulting form looks like.

Tool shelf also has smooth shading option (object and edit modes) which helps hiding the angle between polygons so you don’t need extremely high subdivisions and cripple your computer.

Adding vertical loop cuts in the middle also allows the geometry to deform (bend) when two or more bones affect it. Modifier order is top down, so armature in the screenshot affects the control geometry that was modeled, then subdivision surface subdivides the deformed geometry.