The problems encountered by students in first year computer programming units are a common concern in many universities, including Victoria University. As a fundamental component of a computer science curriculum computer programming is a mandatory unit. It is also one of the most challenging units for many commencing students who often drop out from a computing course as a consequence of having failed, or performed poorly, in an introductory programming unit. This paper reports on a research project undertaken to develop and implement a strategy to improve the learning outcomes of novice programming students. Aimed at ‘befriending’ computer programming to help promote success among new programming students, the strategy incorporates the use of analogy, collaboration, mentoring sessions, and electronic support. The paper describes the elements of the strategy and discusses the results of its implementation in semester 1, 2007.