content: It's a really bad foundation. There are basically four levels of coding.  Assembly, imperative with pointers (c / c++), imperative that hides pointers (java, python, perl), and functional (haskell, ocaml, erlang, lisp).    The problem with python is that you are learning imperative programming, but you're not learning memory management and how the system handles memory or instructions.  These are key concepts for when you move to the lower level of assembly.  When you work with C/C++ moving to java/perl is easy, but going from java/perl to c/c++ is a nightmare.