Even 16 GB is exhausted at the boundary between client and server: a localhost with requests on a page, toward a microservice tenant, though the latter is inside a Visual Studio instance and appears pretty simple. In the space between theory and hard problems are bugs, repeat events, an emergent property of asynchronous sends. Here it is not the paper or the book, but observed phenomena bubbling from end-user to developer. This is the land of race conditions and head scratching.
Being reproducible is the name of the game. It has to be demonstrable to QA, to fellow devs, and to anyone watching. Getting there is a form of creativity, skipping validations and hard-coding trial-and-error runs. All that time spent poring over a needle gives experience for the haystack. Then you wish for twice the RAM.