Designing for Self-Regulation in Informal Programming Learning: Insights from a Storytelling-Centric Approach