Programming education has been one of the most complex tasks in higher education over the years. One of the great difficulties that students face when they start a curricular unit linked to programming is to acquire skills which allow them solving real life problems through the use of algorithms. Such skills require the development of the ability to abstract as well as to apply algorithms development techniques. These difficulties are even greater when students attend to a course that does not have as main objective the programming of computers and their basic education is on non-technological areas. As a result of the difficulty in obtaining these competences, there are high failure and dropout rates in courses related to this study field. In order to solve this problem, we propose a methodology based on VARK questionnaire and students background to define the students' profile and, consequently, define what are the appropriate educational materials and tools. To validate this model, a pilot experiment with students to be divided into two groups was carried out, in the academic year 2015-2016, with the application of the model to one of them. In the end, it was found that the final results obtained in the group where the proposed methodology was applied were superior.