Laurence Bradford began teaching herself how to code over a year ago. When she is not learning something new, she works as a copywriter. Laurence discusses the similarities and differences between Ruby on Rails and Python on Django, two popular object-oriented programming languages, and which language a beginner should start with. Visit her blog at learntocodewith.me, where she writes about learning to code for beginners as well as the best resources available.
Over a year ago I found myself in a position where my career options looked bleak. I had intended on going to graduate school for economic development. But, instead of dishing out the time and money for another two years of school, I decided to teach myself how to code. (I had always loved to problem solve, anyways.) But, like most beginners, I struggled with knowing where to start. I want to create web apps: but where should I begin?
My ultimate goal was to eventually build web apps. After a little “web application development” research on Google, it became clear that Ruby on Rails (RoR) and Python and Django are two very popular methods to create web apps. But which is best for a beginner to learn?
Ruby on Rails vs Python and Django
From a technological standpoint, there is no “winner” between the two. RoR and Python and Django share certain similarities and of course have differences.
When it comes to deciding which to learn, your personal preferences as well as end goals are the most important factors. Let’s take a quick look at RoR compared to Python and Django.
- Server side frameworks
- Adhere to DRY principle (don’t repeat yourself)
- Both have community supplied extensions and packages (which makes building a web app from scratch a lot easier)
- Popular and trusted web application frameworks in the programming world
Ruby on Rails
Ruby is a programming language that was created in the mid-1990s in Japan by Yukihiro Matsumoto. Rails is an open source web app framework, written in Ruby, that appeared in 2005.
Benefits of using RoR
- Main selling point of Rails is the philosophy called convention over configuration (CoC) – meaning it is a framework that has a structured layout with defaults (read: it’s easy to get up and running - sort of like a web app starter kit)
- Ruby syntax is ideal for those who prefer pattern-matching characters because it uses differing characters as analogues to keywords
- It’s built for speed and adaptation
- Strong support community both online and offline
In the startup world.
Sites built with RoR:
Python and Django
Python is a programming language that was created by Guido van Rossum in the early 1990s. Django is a free and open source web application framework, written in Python. Its initial release was in 2005.
Benefits of using Python and Django
- Developer has more control in choosing layout and configuration options
- Transparent and minimalist, but things need to explicitly included
- Compared to RoR, many find updates to be less painful and less frequent
- Python has a clean syntax that resembles English
- Python is stronger in areas like data manipulation, analytics, system administration, and scientific programming
In the academic and science world.
Sites built with Python and Django:
Ultimately, the main difference between them is that RoR requires less work to get up and running and Django allows for more customization.
I Started with Python
When I first began teaching myself how to program, I chose to learn Python. After some initial trial and error, jumping around from language to language, I realized I needed to dedicate myself to one programming language only. I ultimately decided to start off learning Python. For me, it was important that I understood programming fundamentals and logic before jumping into web app creation. Plus, I knew once I mastered Python, it would be easy for me to transition to something else.
Across the web, from MIT to Coursera to Udacity, I saw Intro to CS classes using Python as their instruction language. I knew if they were using Python, it had to be good for beginners. However, when I began wanting to build web apps, I decided to take the RoR route instead of Python and Django.
Why I Later Switched to RoR
The reason why I didn’t go the Python and Django route, despite already learning Python, was because my goal was to get lightweight web apps up and running in a short time frame. With rails, it doesn’t take much to get a simple app live. Back to the CoC philosophy, the rails defaults allow for less work. Which, in my case, was what I wanted. Plus, I also chose RoR because of the large community. For instance, in comparison to Django, Rails has double the stars on Github. There is also an abundance of RoR online tutorials, guides and so forth. Heck, there is even a Rails Hotline to call.
Personal Preferences and Goals are Most Important in Decision Making
Again, when deciding to learn RoR or Python and Django, the most important thing to consider is your personal preferences and goals. Some people have a preference for one of the two programming languages. As mentioned earlier, Ruby has a pattern-matching structure whereas Python closely resembles the English language. (Remember, Ruby was created by a Japanese speaker whereas Python was developed by an English speaker.)
As far as goals go, do you have a specific dream job? Or dream company to work for? If yes, see which language and framework they use. Or, perhaps, you see yourself working for a startup or creating your own. If yes, look into RoR.
However, maybe you’re more interested in “big data” and the ability to customize every aspect of your web app. If so, look into Python and Django.
Lastly, keep in mind once you become a more seasoned programmer, it is much easier to make a transition to another programming language or a new framework. So if you start off learning RoR, but then one day get a job that requires Python and Django, it won’t be the end of the world.
Coding Bootcamps that Teach Ruby and Python:
Ready to take the plunge into an immersive coding bootcamp? Start by researching these Ruby on Rails Bootcamps + Python Bootcamps:
- Bitmaker Labs in Canada
- Dev Bootcamp in multiple locations
- Flatiron School in New York and Chicago
- Turing School in Denver
- Hackbright Academy in San Francisco
- Coding Dojo in multiple US locations
- Byte Academy in New York
- Code Fellows in Seattle
Interested in more comparisons between Ruby and Python? We did a comprehensive webinar comparing the two languages! Check it out.
21 Summer Coding Bootcamps
Learn to code this summer (updated for 2017)!
CIRR: Job Placement Data for Bootcamps
We're backing a new set of standards. Future students, you need to see this.
Ultimate Guide to Mobile Dev Bootcamps
A guide to help you learn about mobile dev and what it takes to attend a mobile dev bootcamp.