How to get a Rails job?

Hi,

I have a question about getting a job. I have a strong passion about
web programming, but I find it quite difficult to get a job. Here's my
background:

* No CS background. I was an English major. (English is not my native tongue).
* Can do HTML and CSS.
* Don't have any commercial experience with Rails
* Worked as an entry level PHP programmer for 6 monthes.
* I don't live in the United States, where Rails is popular.
* I'm old. I'm over 25.

The problems I encounter are:

* I still need skills. I'm learning Rails everyday, but I still need
help from others. But I can't get any help. If I get a job, I can get
constant advice from peers. Learning from books, websites and
screencasts has limitations, or simply I'm not talented, but I don't
give up.
* Most job requires "experience with Rails" for 1-3 years.
* Some require "CS background".
* Some require "Java background".
* I'm not young. I cannot apply to internship.

Do you think people should start Java or PHP and spend a few years
with them, and convert to Rails later? I can work with lowest wages
laws allow, and I can work for free for a few months for the company
to test-drive me. People don't take this seriously, but I'm serious.

Does any have any suggestions on what I do?

-J

  • I still need skills. I’m learning Rails everyday, but I still need
    help from others. But I can’t get any help. If I get a job, I can get
    constant advice from peers. Learning from books, websites and
    screencasts has limitations, or simply I’m not talented, but I don’t
    give up.

Correct, learning by experience is the best way to go. And to be honest, the books out there provide more than enough information to get everyone going. You seem to be forgetting that while most companies do want to invest in people by letting them learn from each other, asking for constant advice from a collegue is making the company pay for your education. Adding a new employee to your staff is about making your company more productive, not about losing one of your employees to training someone. And this is especially true for the smaller development firms.

  • Most job requires “experience with Rails” for 1-3 years.

Experience is a broad term and you can easily say you’ve been working on your own in Rails for a year or more and show them what you’ve achieved.

  • Some require “CS background”.

Some do because you need the foundation, others just put it on to keep the hobbyists out. But if you’re really good and know your thing, in the end it doesn’t matter.

  • Some require “Java background”.

Probably because they still have Java applications lying around and you may need to help out on those.

  • I’m not young. I cannot apply to internship.

Do you think people should start Java or PHP and spend a few years
with them, and convert to Rails later?

I wonder if that’s gonna help at all. Besides, Java and PHP are languages, Rails is a framework. You are asking if you should learn to ride a motorcycle before learning to drive a car. By the looks of it, you’re lacking in basic programming fundamentals and that’s not going to help you in any language or framework that’s out there.

I can work with lowest wages
laws allow, and I can work for free for a few months for the company
to test-drive me. People don’t take this seriously, but I’m serious.

Does any have any suggestions on what I do?

Give yourself time, go get a normal job, one you have formal education for. If you’re really serious, spend all your spare time in learning how to program, look into open source applications, try and see how they work, learn to understand how they work, think of a nice and simple little project, try to realize it (achieving something is the best way of keeping your spirits up, so keep it simple), go for something more complicated, realize that, then move on to either participating in open source projects or make an application of your own, something everybody can use, put it online, make people notice you.

Every job is about selling yourself in the end, whatever requirements they’ve put on the ad. You have to be sure of yourself and since you don’t have the qualifications, you’ll need other things to prove yourself. I’m quite sure a lot of the people on this list have no degree in CS (including myself), and they certainly don’t have a degree in Ruby programming, but they have the applications they’ve worked on and that’s worth more in some cases than a piece of paper.

Best regards

Peter De Berdt

* I still need skills. I'm learning Rails everyday, but I still need
help from others. But I can't get any help. If I get a job, I can get
constant advice from peers. Learning from books, websites and
screencasts has limitations, or simply I'm not talented, but I don't
give up.

Correct, learning by experience is the best way to go. And to be
honest, the books out there provide more than enough information to
get everyone going. You seem to be forgetting that while most
companies do want to invest in people by letting them learn from
each other, asking for constant advice from a collegue is making the
company pay for your education. Adding a new employee to your staff
is about making your company more productive, not about losing one
of your employees to training someone. And this is especially true
for the smaller development firms.

Not all companies work like that (and we're certainly on the small end
of things). None of our people were proficient with rails before they
started. Most (including myself) had never used rails before. We'd far
rather pick someone clever we can teach anything than limit ourselves
to the people who have already learnt rails.

I can work with lowest wages
laws allow, and I can work for free for a few months for the company
to test-drive me. People don't take this seriously, but I'm serious.

Does any have any suggestions on what I do?

Give yourself time, go get a normal job, one you have formal
education for. If you're really serious, spend all your spare time
in learning how to program, look into open source applications, try
and see how they work, learn to understand how they work, think of a
nice and simple little project, try to realize it (achieving
something is the best way of keeping your spirits up, so keep it
simple), go for something more complicated, realize that, then move
on to either participating in open source projects or make an
application of your own, something everybody can use, put it online,
make people notice you.

I'll second that. It's a great thing to be able to be able to point at
a set of contributions you've made to other projects, and if nothing
else you should learn a lot by doing it.

Fred (who doesn't have a CS degree, neither does anyone else here (bar
1))

Thanks for great feedback.

I'm guessing what I need now is *to build a few websites*, and publish
them on the web and publish code to GitHub or anyway so that anyone
can see.

I wonder what I need to include in my application. A basic SNS
platform is going to be okay? I also want to show my ability for
common tasks like importing and exporting CSV. Exporting PDFs. Parsing
XMLs. Having RSS feeds. Good grid CSS layout and some Photoshop'ed
logos, banners, button images.

I'm don't know much of JavaScript, but Ajax is needed, I suppose.

Most of the open source projects are big and complex for me, but I
think I can start to use them. And I can at least report bugs or
contribute to documentation.

This is going to take 3-6 months for me. Maybe getting a job and
spending the free time for Rails may be better. Without a job, I feel
extraordinary anxiety... I always feel like, "Can I really get a job
someday?" and let me down, so I really can't concentrate on web
development.

I wonder what I need to include in my application. A basic SNS
platform is going to be okay? I also want to show my ability for
common tasks like importing and exporting CSV. Exporting PDFs. Parsing
XMLs. Having RSS feeds. Good grid CSS layout and some Photoshop’ed
logos, banners, button images.

The best advice anyone can give you is to make something you would like to use yourself and find intersting, especially in the learning stage. It makes you feel in control of your app, you’ll have a clear view on where you want to take it, what it needs to do, … Exporting features and fancy pancy graphics don’t really add much value to your application if the things it should actually do just don’t work. There’s no need for exporting and rss if you can’t properly and easily enter data into the application, is there?

Just have a look at the 37signals applications: graphically they aren’t a work of art, they use very little custom graphics, logos, button images, yet their userbase is huge. The simple reason is that all of the applications get the job done using the path of least resistance: you never feel as if the app is holding you back and the simple concept enables you to get all of the things you need to know in there… and very quickly for that matter. Usability should always prevail over looks imho.

I’m don’t know much of JavaScript, but Ajax is needed, I suppose.

Not necessarily, if you look at how activecollab started out, it had no ajax in it whatsoever. Besides, it’s always better to start off with a non-ajax application and then add sprinkles of ajax here and there if it makes the app better and more responsive. On top of that, if you started off with something that doesn’t require javascript, the app should gracefully degrade without a hitch.

Most of the open source projects are big and complex for me, but I
think I can start to use them. And I can at least report bugs or
contribute to documentation.

Exactly, even those little things add up to proving you are a team player. And quite a few companies actually value having someone who’s name pops up on open source projects when searching google. That’s usually the first thing we do when someone applies with us, we develop web apps after all (of course, lots of other factors weigh in on the final decision, but still).

Best regards

Peter De Berdt

I wasn’t talking about knowing Rails per se, would be hard in Belgium anyway, we have a few Rails developers, but not a huge stockpile such as people that do PHP or Java. I don’t know what it is, but with some people you just have this feeling of: oh yes, this is a person who has it. And then you have other people who have done projects and just emanate that feeling of: yeah, it’s a job, i’ll be glad when my working day is over and don’t expect me to learn anything all too new, I’ve already wasted a huge part of my life in school.

Best regards

Peter De Berdt