in reply to Programming Concepts

Your question is far too vague and is thus very difficult to answer.

One possible approach would be to start with programming paradigms, such as procedural or imperative programming (such as Pascal or C), object-oriented programming (C++, Java), functional programming (Lisp, Scheme, Haskell), logic programming (Prolog), declarative programming (make, regexes, grammars), constraint programming, and so on. The cited languages are just examples, many of them are not belonging to only one of the paradigms. Perl is pretty much multi-paradigm.