Beginning Python: From Novice to Professional