This week we welcome Ram Rachum as our PyDev of the Week. Ram is the author of the Python Toolbox and PythonTurtle. Let’s spend some time getting to know him better!
Can you tell us a little about yourself (hobbies, education, etc):
My name is Ram Rachum. I’m 29 years old as of this writing, and I’m an Israeli. I live in Tel-Aviv, Israel.
I work as a software developer, developing almost exclusively in the Python programming language and Django web framework. I work as a consultant, usually for small startups in their early phases. I’ve been doing that for the past 6 years. My favorite kind of work is starting a project from scratch, i.e. being approached by a founder who explains what kind of product he wants to build, and then building that product from the ground up in Python and Django. There’s nothing like being the person who decides which tools to use and what kind of architecture to build 😉
Unlike many other developers, I don’t hold an academic degree. I did go to college for a bit but I dropped out. I didn’t like the fact that the university decided what/how/when I’m going to learn. I like doing things at my own pace and making my own decisions. I’m proud to have a career despite the fact that I don’t have a degree; I’m hoping that the trend of successful developers who don’t have degrees continues so young people will have less pressure to spend years in college instead of learning real skills in the industry, which I find more important. (Not to mention the high costs of going to college in the states.)
Besides software development, I also enjoy writing, painting, and just hanging out with family and friends.
Why did you start using Python?
I programmed a lot as a child in Basic and C, but I took a long hiatus from programming because I was frustrated with all the technical work required when you’re programming. I liked the conceptual work, but not the technical work. (i.e. remembering flags for commands, figuring out errors from cryptic error messages, and anything else that involves remembering boring technical information.) After many years of not programming, I decided to try to learn programming again. This was in my early twenties. I’m a fan of Paul Graham, and in one of his essays he mentioned Python as a good programming language. I gave it a try and fell in love. I was happy that many of the things that frustrated me with C were much simpler in Python, so my original problem of having to do too much technical work was partially solved by developing in Python.
What other programming languages do you know and which is your favorite?
Besides Python, I can do a little JavaScript, a little Mathematica and a little AutoHotKey.
AutoHotKey is a terrible language, possibly the worst programming language ever invented. But it’s brilliant at automating tasks on Windows, which is why I use it a lot. I have dozens of AutoHotKey scripts that help me automate everyday tasks. I’d be really happy to move these to Python, if it’ll be possible, and if I’ll have time.
In case it wasn’t obvious, my favorite programming language is Python 🙂
What projects are you working on now?
Right now most of my time is spent on a project for a corporate client that I can’t talk about. But in my spare time, I’m cooking up an architecture for a very ambitious task-management program, which will solve frustrations I’ve had over the years with various task-management programs that I’ve tried. (I use these to manage my tasks, both personal and business.) I’m not sure that I’ll end up taking this project to completion, but if I will, it’ll take at least a couple of years.
Which Python libraries are your favorite (core or 3rd party)?
Shameless plug: My favorite Python library is my own Python Toolbox. It’s basically a collection of general-purpose tools that I’ve developed over the years. Basically every time I’m writing code and find myself writing logic that could be useful in other contexts, I factor it out to Python Toolbox. I’ve been doing that for 6 years now, and the result is an immense library of various tools. I think they can be really useful for any kind of Python project.
Aside from Python Toolbox, Django is an obvious favorite of mine, as it’s an excellent web framework. I love the “batteries included” philosophy that Django inherited from Python, i.e. Django includes lots of tools that are likely to be useful to people who are building a web app. It’s so much nicer when the tools you need are included instead of having to hunt for them online.
Where do you see Python going as a programming language?
It’s hard for me to say. I think that the move to Python 3 has been a slow but steady success, and it’s only a matter of time until the majority of the Python community moves to Python 3. (I know I already have for client projects that don’t need to work with legacy systems.) Once that move is complete, and we could finally forget about Python 2 compatibility, everybody in the Python community could be more productive and use all the new features. But that’s still a few years away.
Other than that, it’s very hard to predict the future 🙂
Thanks for having me on your blog!
Thank You!
The Last 10 PyDevs of the Week
Pingback: PyDev of the Week: Lacey Williams Henschel - Mouse Vs Python