Factors influencing programming self-efficacy: an empirical study in the context of Mainland China