This week we welcome Matthew Nuzum as our PyDev of the Week. Matthew has recently completed a Django training video that is being published by Packt Publishing. Let’s spend some time getting to know him better!
Can you tell us a little about yourself (hobbies, education, etc):
I am a geek at heart, and have been since long before the days when being a geek was cool. Instead of summer camp my parents sent me to a computer programming camp when I was 8 and for birthdays and Christmas received gifts like a chemistry set, a microscope and a subscription to the Star Wars newsletter. I went to school for electrical engineering, though didnâ€™t complete my degree before going into the workforce.
My passions include teaching and writing. When I learn something new, especially something challenging, my first inclination is to come up with ways to help others learn it more easily. Sometimes that means writing a tutorial, creating a video, or working with one of the students I mentor.
As a matter of fact, Iâ€™m a big fan of mentoring. I got my start in my career as a web developer in the late 90â€™s because another experienced web developer invested time to help me learn the ropes.
Why did you start using Python?
I started using Python to do batch jobs around 2004. Iâ€™d taken a few tutorials and it seemed like the right tool for the job because all the modules I needed were relatively easy to find. However, I soon bumped into a problem with performance due to string concatenation. At the time, I didnâ€™t know how to work around this and so I figured Iâ€™d just outgrown Python and moved on.
In 2006 I started working as the Ubuntu.com webmaster for Canonical. At the time there were only about 40 people in the company so I had almost total responsibility for the website and many related sites. Canonical is a huge Python company and it was the preferred language. Many of the custom web apps we used were based on Zope, a powerful but somewhat complicated application framework.
Canonical had a bad experience with Plone, a Zope based CMS, before I joined the team so the decision was made to use other tools for the website. However, any time we did custom application development we used Python.
Around 2008 Django started to become a big deal. I needed to build a database app as part of the website so used Django and PostgreSQL. I had to fly under the radar at the time because Zope was still the main tool and I wasn’t technically on the team responsible for building web apps. However, others in the company were also starting to use Django and it began to grow more popular.
My last project for Canonical before I left in late 2012 was to build a CMS platform for the Ubuntu.com website. This site receives massive spikes in traffic and performance is incredibly important. Because of that, great effort was put into the CMS to reduce itâ€™s dependence on databases and dynamic content. Iâ€™m proud to say that Python and Django was able to enable this.
What other programming languages do you know and which is your favorite?
What projects are you working on now?
Right now Iâ€™m working on training material to help web developers get started easily and, in so doing, build websites that follow best practices. This means reducing boilerplate code, improve testability and use automation whenever possible.
Which Python libraries are your favorite (core or 3rd party)?
Hands down, my favorite is Django. Iâ€™m just stunned by how much functionality you get for free. Sometimes Iâ€™m a little disappointed that building web apps with Django is really not much different now in 2015 than it was in 2008 and wish that it embraced RESTful concepts at the core. However, the Django Rest Framework module steps in to fill that niche.
I know itâ€™s not glamorous nor really exciting, but one of the libraries that I used in my first project and just keep coming back to again and again is the built in CSV parser. Itâ€™s so simple, but itâ€™s robust, useful and just works. Like Python, itâ€™s a library I can depend on in a pinch.
Why did you decide to do a video training series on Django?
I love doing training videos and tutorials, period. I was taking a class at work and the instructor asked this question: â€œWhat is it that you love to do so much that youâ€™d be willing to do it for free?â€ It was like a light bulb when on over my head. I knew instantly that I loved to teach. For confirmation I texted my wife and asked her what she thought the answer was for me. She instantly replied, â€œteaching.â€
Not only was it something I would do for free, it was something I was already doing for free, through mentoring, teaching in the community and writing.
The folks at Packt Publishing reached out to me initially to do a video series on Express.js, a Node.js web development framework. After that was completed they asked me if Iâ€™d like to do one on Django.
The timing on the Django request was pretty ironic, because Iâ€™d just posted a bit of a rant to my blog about some of the problems in the Python development world. It was actually pretty negative and though I wonâ€™t give up Python development it sounded like I was going to. Then about a week later Packt approached me to do the video.
It was actually very therapeutic for me, because after going back to the basics of Django I fell in love with all of it again. Iâ€™m not one to go back and revise history, but it is my intention to write a follow up to that angry blog post.
Where do you see Python going as a programming language?
Iâ€™m very saddened by the Python 2.x vs 3.x schism and hope that the community can quickly get past this. It feels like weâ€™re past the hard part and itâ€™s all down hill from here, but itâ€™s still too common that you find a tutorial that is completely broken or a library that only works with 2.x. At this point, I more often curse 2.x than 3.x (UNICODE!!!) but it wasnâ€™t that long ago that the tables were turned.
What is your take on the current market for Python programmers?
In the world of Web Development it feels like the market for Python developers is not growing as fast as other tools. In my area near the central part of the US, Python is not an in-demand skill in web development.
That said, Python appears to be growing in demand in the world of â€œbig dataâ€ and I see more and more opportunities there. This is not a topic that Iâ€™m very experienced in, but Iâ€™m glad to see the excitement. I have a theory that many in the data science field work more at the conceptual level and are not hard-core programmers. Python letâ€™s us easily convert concepts into working code, which allows the data analysts to stay focused on the data.
The Last 10 PyDevs of the Week