No holistic approach is available to teach programming subjects, especially for novices. The current practice involves guiding the students to become the users of a programming language or tools. This study explores an alternative approach to teaching programming subjects. The students have to learn programming languages with respect to programming paradigms instead of learning how to write a solution for a problem using a language directly. Solutions are designed by the software engineers, programming paradigms are providing the way to design our thoughts. Programming languages generally provide libraries to implement the solution and provide the platform to run the solution. Students should know languages should be chosen primarily if it has paradigm support, according to the way the solution is designed and the required libraries are available. This makes the learners to understand the program language structure and programming in a better way. This approach has been tested with 30 batches of students in 7 universities. 80% of the students, particularly beginners responded positively and 50% of the students felt that, their fear on programming has been overcome. Almost everyone understands the programming language, architecture and program structure in a better way.