End-User Developers program to meet some goal other than the code itself. This includes scientists, data analysts, and the general public when they write code. We have been working for many years on various ways to make end-user development more successful. In this talk, I will focus on two new projects where we are applying intelligent user interfaces to this long-standing challenge. In SUGILITE, the user can teach an intelligent agent new skills interactively with the user interfaces of relevant smartphone apps through a combination of programming by example (PBE) and natural language instructions. For instance, a user can teach SUGILITE how to order the cheaper car between Uber and Lyft, even though SUGILITE has no access to their APIs, no knowledge about the task domain, and no understanding of the concept "cheap" in advance. Another project, called Verdant, is focusing on helping data scientists, including those using Machine Learning and AI, to do exploratory programming. Verdant supports micro-versioning in computational notebooks for understanding the difference among the output and code of different versions, backtracking, provenance of output to its code, and searching the history. A goal for Verdant is to intelligently organize and summarize the raw history data to help data scientists make effective choices from it.