From whatever I have experienced, there are two kind of mental models provided by programming tools, simple (e.g. dplyr) and complex (e.g. pandas). If used sparingly, most complex tools are really annoying unless, of course, you clearly understand the idea behind the models they expose. Here are some tools in that category which I would like to study very thoroughly sometime: