Computer programming has a technological part and a creative part; it involves specific technical aspects of programming languages and creative aspects to find the best solutions for different problem domains. The programming learning process encompasses a group of different teacher-student techniques that are put into practice. These techniques have the object of learning a programming language to solve real problems; in this learning process we must include good software development practices of analysis and design so the novice programmer disciplines himself into developing quality software. To improve the learning programming process we use techniques and methods of software development adapting them to the context of courses in programs of the curricula. There are different methods to help us develop quality software; this article is a case study of using PSP (Personal Software Process) method and XP (eXtreme Programming) techniques on curricula's first programming course for engineering students, as support of the learning process of a programming language, and acquiring good software development habits. (C) 2011 Wiley Periodicals, Inc.