views:

306

answers:

7

I am learning Rails & Ruby right now with the ultimate goal of using these technologies full time. However, my current job is at a windows shop & I am not in a position to influence any decisions on what technologies to use. I have a limited understanding of web development. However, my database skills have improved significantly thanks to my role in my current job. Given this background, I was wondering what I need to achieve before starting to look for a job as a Rails developer.

Obviously learning Rails & fundamentals of Ruby as soon as possible is on the list. Learning the tools of the trade in terms of Git & RSpec & others is also something that is on my list. I wanted to get a sense of what are other things I could do to substitute for work experience? Participating in the community I think would be a great way to do it but I wanted to get a sense of the competency level that is a minimum to do this successfully. What are other action items that I need to pay attention to?

I would also really appreciate it if people could tell me what are the ways they found were the most effective in terms of learning Rails. How much of Ruby do you delve into before you build complex apps? How far can you go & get away with without focusing too much on Ruby?

Thank you very much. I am willing to invest the necessary time in learning the language and building a solid foundation. I just need a little guidance from the community to point me in the right direction.

Thank you very much for your guidance! It is very much appreciated!

+2  A: 

I'm still learning Rails myself, but if you haven't already, you definitely should give Agile Development with Ruby on Rails a read, as it's the quintessential beginners guide, and full of examples that will get you up and running quickly and teach you how to do most of the common Rails tasks.

This might be more of an opinion, but if you aren't comfortable with SQL already from your current job, I recommend trying to pick that up as well. ActiveRecord does generate queries for you, but knowing what's going on behind the scenes will probably save you time and help you write more efficient code as time goes on.

Paul
@Paul - Thanks for the quick response. I am definitely looking to get started with Agile Web Development with Ruby on Rails. I a fairly comfortable with SQL so that side is not a major concern for me. My major concerns are more on the fact that I have limited knowledge/experience with web development. Furthermore, I am concerned about what's after finishing with AWDWROR? Thanks again for such a prompt response. Much appreciated!
tundal45
Hey tundal, I'm guessing after you're done with the book, you'll want to learn individual advanced topics a la carte. You can of course google for tutorials - there are many out there, but one resource I recommend specifically is Railscasts. http://railscasts.com/ (see also http://asciicasts.com/)
Paul
tundal45
+7  A: 

If you're relatively new to web development in general, but your engineering fundamentals are solid, then once you're past the book and its tutorials, the best way to push your boundaries in web development and Ruby/RoR will be to build something with it. If you can't do it at your current job, and you can't find a gig that will let you learn on the job from coworkers, start your own site, or volunteer your time with something out there. Like (say) Windows app development, web development is its own whole universe of pain points, well understood patterns, etc, and the only way you're going to internalize that is by working with it.

But again, if your fundamentals are solid, you can get into it, and since the web is where the people are these days, it's an exciting world.

Good luck!

quixoto
+1  A: 

Agree with Ben completely. The best way to get the web fundamentals is start making something yourself--something I am doing myself. Look at the JavaScript that rails generates, play around with it, break stuff. Also doing a little of CSS on the side and seeing how it affects the look of your site will help also. Once you start to build something you will realize how much you have learned and how much more you need it learn...its a wild ride.

One other thing to add is pick up a book like rails recipes once you get thru agile web development. Its old, but the fixes you have to do to get some of the recipes to work is a worthwhile learning experience.

Adam T
@Adam Thanks for your response. I recently looked at the screencast from teachmetocode.com on Essential CSS for developers and I have some basic idea but I definitely need to be more comfortable with it. JavaScript landscape has changed with jQuery which I intend to learn as well. I also need to learn more about AJAX. Long ways to go :).
tundal45
+1  A: 

I think you absolutely need to be pretty well-versed in Ruby to be successful in doing Rails as a career. Sure, Rails has a lot of abstractions that will help you out, but you're not going to do anything more advanced than a basic scaffolded application if you don't know the Ruby behind it.

There's an excellent answer on this site that gives the Ruby knowledge that one should have.

I learned Rails by going through the Agile book as well as RailsSpace, following the examples, and trying to figure out what was going on. At that point, you should be excited about what you are doing (and why it's different from other languages/frameworks) and want to build a project of your own. I found myself working on projects at work and then taking them back home to continue working on them because I was just excited about it.

From there, start a project on your local machine, and when you're ready, deploy it to Heroku, it can be pretty basic, but it's something you can point to as experience as potential companies will want to see source code.

Lastly, try to read as much source code from other developers (including the Rails team) that you can. With every plugin or gem that you install, check out the source on github and see if you can at least get the gist of what's happening (this is where the Ruby knowledge will come in handy as well.) When you're developing, make sure that you always have railsapi and rdoc.info available for reference, and use the 'show source' link.

Dan McNevin
tundal45
+1  A: 

Just get your hands dirty, the best way to learn is to immerse yourself in the code, try building a blog, a simple cms or a twitter client, the more you practise it the better you'll get.

There are loads of rails focused screencasts available for free which are packed with knowledge and tips: http://www.learnivore.com/search/tag/rails

http://github.com is also a great places to see excellent code, try checking out some projects and see if you can get them up and running and have a look through the source code, maybe see if you can add or customise some of the functionality.

Andrew Nesbitt
@andrew Thank you very much for your response. I think that is a great idea to clone an existing project and figuring out the moving pieces by breaking, er I mean adding functionality to it.
tundal45
+2  A: 

I think the whole premise is wrong: do not align your career along this or that technology. Your career in software development will hopefully take 40 years. Technologies change every 5 years. Think about the problem domain you want to work in, not about what language you want to use. Suppose you're bent on becoming a RoR developer, and a well-paying opportunity to join a stable company doing great stuff in web development arises, but the company is a Java or Python shop? Are you going to reject them? One of the qualitites companies are looking for in developers is the ability to adapt to changes in technology and versatility with tools.

quant_dev
tundal45
+1  A: 

There are a couple other ways to get involved in RoR/ruby if you're finding it hard to entertain yourself once you've gotten past all the tutorials. The first I'd suggest is finding a local ruby users group and attending the meetings. The hosts and the presenters are generally from the top RoR companies in the area. They are the people you want to eventually hire you; getting to know them beforehand is never a bad idea. Also, it's great to see how excited they are about all this stuff can help keep you motivated. It'll also be where you find your future rails rumble team (http://www.railsrumble.com). I suggest not only getting into that next year, but looking at as many entries as possible to see what kind of apps were built in 48 hours from the community.

The second is to volunteer with http://builders.railsbridge.org/ . You can find a project with a more senior rails hacker to help you along the way but it will also provide some real world coding experience to put on your CV.

Patrick Robertson
tundal45