This week we welcome Chris Moffitt (@chris1610) as our PyDev of the Week! Chris has been an active writer about Python on his blog and a speaker at DjangoCon. Let’s spend a few moments getting to know him better.
Can you tell us a little about yourself (hobbies, education, etc):
I currently live near St. Paul Minnesota with my wife and two children. In college, I studied Electrical Engineering and Computer Science. Somewhat surprisingly, my day job does not actually require knowing python. However, my python knowledge has been really useful in building some small (but really useful) programs to manipulate data and create reports on various business topics. I am always finding ways to use python to make my job a little bit easier. Since so many people in big companies think that Excel is the only data analysis tool out there, I really enjoy when I can build something really powerful with just a few lines of python code.
The majority of my spare time is spent with my wife and children. I do enjoy reading and watching movies when I have the time. I like to try to keep my programming skills somewhat relevant by working with python in my spare time.
Why did you start using Python?
In the late ‘90’s, I was working as a Unix System Administrator and was using perl for some basic sysadmin work. A coworker mentioned python as a cool language that I should check out. I looked at it briefly but did not use it. Shortly after that, I started doing some work in a Windows environment and used python to help manage collecting and analyzing some log files. Once I started using python, things “just clicked.†I felt like I was able to able to quickly and easily get my work done. I have been using python off and on for the past 15 or so years.
What other programming languages do you know and which is your favorite?
My first language was BASIC on my trusty Apple IIc. In High School, I learned Turbo Pascal so that was my first “real†computer language. While in college, I did a little C, C++ and some assembly. I really enjoyed assembly because of the tight coupling of the hardware and software. Unfortunately, I never got very good at C and truly struggled with my OOP class which was in C++.
As far as favorites, python is by far my favorite and most productive language. The type of work I do now consists mostly of hobby and smaller scripts so python really fits in well. The rich ecosystem of python modules is really exciting. I know that I have options to do anything from hard core data science to web development to embedded systems with something like Raspberry pi. Python’s breadth of applications is truly amazing.
What projects are you working on now?
For the past year and half, I have been working on my blog – Practical Business Python (pbpython.com). It has been a great forum for me to learn more about the types of tools in the python space that are available to people in an office or business environment. My goal in writing the blog is to expose others to the benefits they can gain if they start to incorporate python into their data wrangling workflow. I am continually amazed at how people make their lives so complex when they try to build monster applications in Excel + VBA. I think these people would find a tremendous increase in their productivity if they learned how to use python for many of their tasks. If someone can write a complex if statement in Excel, then I am confident they can learn python.
Which Python libraries are your favorite (core or 3rd party)?
Right now, I spend a lot of time working with pandas. I think it is a really wonderful and powerful library for manipulating data. I am continually surprised at how much I can do when it comes to analyzing and manipulating data.
For visualizing data, I like to use Seaborn because it forces me to look at my data in different ways and has been really useful for me to learn how to present complex data in an easy to understand manner.
When installing and maintaining my python environments on windows or linux, I really appreciate conda. Continuum Analytics has done a great service to the python community with their work on conda.
When I find the need to do web development, I tend to reach for Django. I know there are some smaller, lighter weight frameworks out there now but I find myself always coming back to Django for my projects.
Where do you see Python going as a programming language?
I think the future is really bright for python as a language. I remember when I first started learning about python and there were plenty of heated debates around whether python or perl would be the scripting language of choice. Then, when web frameworks like Django and Rails started becoming popular, there was a lot of discussion about ruby vs. python. Now, in the Data Science arena people talk about R vs. python as the best tool for Data Scientists. Over the span of 15 years, python has been able to adapt and thrive in multiple different areas and I think that speaks to the power of the language, the thoughtfulness of the leaders and the overall supportiveness of the community.
Of course there have been bumps along the way and there are certainly other languages that are great to learn. However, I think python will continue to grow and develop and will be with us for a long time.
Is there anything else you’d like to say?
Thank you for this opportunity to speak with your readers. I enjoy your blog and enjoy reading your Pydev interviews. I hope people find this interesting.I also hope this interview will encourage people that find themselves doing a lot of manual data manipulation work to seriously look at learn python and incorporating it into their workflow.
Thanks for doing the interview!