This week we welcome Reuven Lerner (@reuvenmlerner) as our PyDev of the Week. Reuven is a trainer who teaches Python and data science all over the world. You can find out more on his website. Reuven also has a newsletter on becoming a better developer that you might enjoy.
Reuven also has the following resources freely available:
Let’s take some time getting to know Reuven better!
Can you tell us a little about yourself (hobbies, education, etc):
I grew up in the Northeastern United States, and studied computer science at MIT, graduating in 1992. After working for Hewlett Packard and Time Warner, I moved to Israel in December 1995, opening my own consulting company. I had neither consulted nor run a business at that point, but I was single and optimistic, so I gave it a shot.
I’ve been in business for myself since then, pausing along the way to get a PhD in learning sciences from Northwestern University. My dissertation involved the creation of the Modeling Commons, which allows people to collaborate in the creation of agent-based models.
For years, I did a little bit of everything: I wrote software, did system administration, tuned databases, consulted with companies, and did training. About a decade ago, I realized that training was more fun and more lucrative than development — and that it was a good business practice to specialize in one thing. I’ve been a full-time Python trainer since then. Most days, I teach between 4-10 hours for companies around the world, teaching everything from “Python for non-programmers” all the way up to advanced Python workshops.
I’m married, with three children (20, 18, and 15), and live in Modi’in, a small city halfway between Tel Aviv and Jerusalem.
As for hobbies, my big obsession over the last few years has been studying Chinese. I find it fun and interesting, and also practical, given that I normally travel to China a few times each year to do corporate training there. (That has obviously been put on hold, thanks to the pandemic.)
Aside from Chinese, I read a lot, especially about current events. I also enjoy doing crosswords, and am steadily getting better at them. Everyone in my family, including me, also enjoys cooking, although I don’t often have a chance to do it as much as I’d like. And as of the start of the pandemic, I’ve been taking very long, very early walks — about 15 km/day, starting at 4 a.m. I have found it a nice, refreshing way to get out in this time of staying
Why did you start using Python?
I was introduced to Python back in early 1993, when the Web was young and we were looking for languages with which we could write server-side scripts, aka “Web applications.” (I actually objected to having the term “application developer” on my business card, because I thought it was laughable that you could call what we wrote “applications.” Whoops.)
At the time, I did some Perl and some Python. At the time, Perl was more popular and had a much larger library of third-party modules. So while I knew Python and recommended it to anyone I knew who wanted to start programming, I personally used Perl for a while, continuing to use Python here and there, but not doing much with it.
I saw that Perl wasn’t doing well as a language or community, and tried to figure out in which direction I could move. I tried Python, but the Web application frameworks at the time were too weak or too weird. (I even did a big project using Zope, with its object database.) That’s when Ruby on Rails was released; because Ruby is basically Perl with Smalltalk objects, I was delighted to use the language.
But I couldn’t escape noticing that Ruby was largely trapped in the Web world, whereas Python was growing in scope and mindshare. The number of third-party packages on PyPI was growing rapidly, and when I decided to exclusively do training (rather than doing it alongside development and consulting), I found that there was far more demand for Python than for anything else.
I’ve been deeply steeped in the Python world ever since, and I couldn’t be happier.
What other programming languages do you know and which is your favorite?
I learned Lisp back in college, and I still use Emacs for editing — so I continue to have affection for Lisp as a language, and often refer to the concepts, I learned in it when working with Python.
As I wrote above, I loved working with Ruby. Everything is an object in Python, but that’s even more the case in Ruby. I loved the freedom and creativity of the Ruby world, but the object model is hard for people to grasp — and in Ruby, if you don’t eat objects for breakfast, you’ll have a hard time with it.
My research group in graduate school developed NetLogo, an agent-based modeling language. That’s a completely different way of writing code and expressing ideas, one which more developers should try.
I’m not sure if any of these would count as my favorite; I’ve now been using Python for long enough that I find that I can most easily express myself using its idioms.
I keep hoping to find time to learn Rust, because the idea of a systems language that doesn’t require me to use pointers seems really attractive, and I’ve heard such great things about it. But I keep struggling to find time to learn it…
Is there anything else you’d like to say?
I’m generally impressed with the Python community, in that it’s welcoming to newcomers and patient with their questions. There are so many people learning Python, and for them it’s not a passion or the latest language on a long list — it’s something they have to do for work, and they’re a bit confused by the terminology, the ecosystem, and even the syntax. I love working with newcomers to the language, and I encourage everyone to do what they can to help the huge influx of programming immigrants (for lack of a better term), to help this all make sense to them.
Thanks for doing the interview, Reuven!
The rest of the post PyDev of the Week: Reuven Lerner appeared first on The Mouse Vs. The Python.
from The Mouse Vs. The Python https://ift.tt/3fqqQh8