Since I started learning Rails I’ve often been asked “is Rails hard to learn?” A lot of times this is by people who don’t know any other programming language or even HTML. The answer to that question is a little more complicated than a simple yes or no. Rails isn’t necessarily hard to learn, but a lot of other stuff comes along with it. Here’s the list I came up with of the things you’ll have to learn to write web applications in Rails:
- The programming language Ruby
- Obviously Rails itself which involves learning the Model View Controller (MVC) design pattern (or collection of patterns) and the way these are implemented in Rails, the file structure of Rails and the syntax and domain specific functions Rails adds to Ruby including how to write templates using RHTML. Rails is composed of several frameworks, ActiveRecord, ActionPack (which includes Action Controller, Views, Mailer and Web Services), each of which have to be learned.
- How to use Rails plugins, components, Engines Ruby gems etc. This includes how to get them installed along with learning enough to know when (or if) and how to use them.
- What web services are and how they work.
- How to create and use relational databases.
- Basic SQL, at least enough to know what is happening behind the scenes with ActiveRecord. There almost certain to be times when some SQL will have to be written out for reports, optimization etc., so knowing at least some SQL is important.
- Having enough of a knowledge of FastCGI, Mongrel and WebBrick to make a decision about which (or which combination) to use to deploy the application.
- Apache, specifically how to configure it to work with either FastCGI or Mongrel. Alternatively Lighttpd or another web server.
- Rake, Generators and Capistrano and remote deployment.
- Database migrations.
- Testing web applications (which admittedly I haven’t done much yet).
- A basic knowledge of web application security.
- How to set up and use SVN repositories. If you’re new to source code versioning this can take awhile to get used to.
- It may be necessary to learn a new IDE (RadRails) and/or a new text editor (TextMate).
- As with any new programming language, you’ll have to learn to get Rails installed. In my case this meant figuring out how to do it on my personal computer (a Mac), my work machine (Windows XP) and the servers (Linux). None were too difficult but they all had their idiosyncrasies that had to be dealt with.
- If you don’t already know it, you’ll need to learn XHTML and CSS
Some of the things in that list are quick and easy to learn, others will take time and practice (I’m still working on a lot of them). If you’re thinking about learning Rails, this list isn’t meant to discourage you, just help to make you aware of what you’re up for.
If your looking for IT certification or even A+ training then explore your options with CBT Planet. Expand your horizons and learn more about how to use a computer or run your business on a computer. CBT Planet.