Learning By Doing Theory