Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Should I Learn Ruby?
44 points by acpigeon on July 10, 2010 | hide | past | web | favorite | 97 comments
I would like to get some opinions on the value of taking a basic Ruby programming class.

About me: Recent Eng/Biz grad, want to eventually start my own company. I am much more of a business person than an engineer, yet having graduated from a top ten engineering school, I realize the value of understanding tech no matter what part of a startup you work on.

Because I am interested in the web tech space, I think it would be a valuable experience for me to take 6 week online crash course in Ruby in order for me to 1) be conversant in a very popular language in this space and 2) have the ability to do very rough mockups of product ideas, or at least understand what goes into building them, and 3) become more generally aware of peripheral issues in web tech and what goes into the development process.

I have taken C++ classes in the past (no HTML or CSS experience though), so programming itself is not new to me and I have no illusions about becoming some mad awesome programmer in a couple of weeks. I’m simply looking for a new perspective in seeking out and solving entrepreneurial problems.

I’d love to get some perspective from actual programmers and startup people on wisdom or tomfoolery of this idea. I am leaning towards going for it at this point, but might be dissuaded if the reasons are strong, or if better uses of my free time are proposed.

For the record, the class is cheap (<$100) and is geared to beginners.

I’m all ears.




I'd say, learn Python or Ruby, doesn't matter, but try them both for a few days. One will click and the other won't.

If you go the Python route, I've got a free book I'm working for beginners that might be too beginner for you:

http://learnpythonthehardway.org/

But I reference two other books on that page which actually could be a good start for you. After that, check out the Django book:

http://www.djangobook.com/en/2.0/

Which will teach you Django, a very popular web framework (more popular than Rails actually).

I'd also say, take everything I say with a grain of salt. I'm humorously famous for hating Rails.


I second the suggestion of trying out both Ruby and Python. Both languages are modern and agile but with distinct styles such that one will likely fit your brain better than the other.

Also, regarding Python web frameworks, I would highly recommend looking at Web2Py over Django for your needs (something that gets you up and running with a minimum of fuss) Web2Py is supposed to be more Rails-like than Django which might be a good thing in your case. (Also, check out Cube2Py for something to look forward to: http://vimeo.com/13154869)

Disclaimer: I am of a similar background (Engineer/MBA/Entrepreneur looking for a platform to rapidly prototype ideas) For folks like us, scaling can wait until you validate the idea and confirm that a real market exists, then you can raise capital and add real developers to help you scale.


Rapid prototyping is exactly what I'm looking for. From what I'm hearing here it sounds like Rails is a great platform for that. Also looking at the MBA at some point ;-)


Which will teach you Django, a very popular web framework (more popular than Rails actually)

No, it's not. http://news.ycombinator.com/item?id=1459119


I generally agree with your comment, but I found this stament to be inaccurate:

> (more popular than Rails actually)

[citation needed]. The largest websites/web applications in the world are built in Rails much more frequently than in Django. And there is much more demand for Rails developers in the marketplace. I fail to see evidence that Django is actually used more than Rails is in the real world.


The largest websites/web applications in the world are built in Rails much more frequently than in Django.

While we're calling each other out for citations, that's an awfully big statement to make without citations as well.

Let's just put it this way: Both frameworks power large sites, you pretty much can't go wrong with either.


> While we're calling each other out for citations, that's an awfully big statement to make without citations as well.

I made the statement because I'm ready to back it up. Among the most popular 1000 sites on the web, you will find at least a dozen Rails sites [1]. There are extremely common names like Twitter, Hulu, Scribd, Justin.TV, White/Yellow Pages, Urban Dictionary, etc. How many Django sites do you see in the top 1000? Curse.com was one of the largest Django sites out there (a case study in the 1st edition of the Django Book). They switched to ASP.NET upon being acquired.

[1] http://rails100.pbworks.com/Alexa+Rankings

> Let's just put it this way: Both frameworks power large sites, you pretty much can't go wrong with either.

Without a doubt. And I've made this exact point many times before. I was just arguing against the unsubstantiated claim made by the op of this thread.


Didn't twitter move to Scala for their website ?


no. they use scala for some of their services, like message queues.


[deleted]


[deleted]



Haha, I wish I could downvote you ;-)


You may want to reread his post. The penultimate sentence is a kicker.


I'm not a big fan of the "Bullshit statement." -> "I may be trolling" approach. He is still spreading misinformation that people here may believe as true.


Yeah it's a hoot, especially coming from the guy who will kill people not using statistics, which is a great read btw. http://www.zedshaw.com/essays/programmer_stats.html

I'm sure it's just an off-the-cuff remark. I've made plenty in my day.


I'm sure it's just an off-the-cuff remark.

The guy weighs in on the opposite side of something that is common knowledge, then says you should check what I'm saying because I could be fibbing, oh and I'm famous for having a bias against the side I've just disfavoured — and you reach that conclusion?

If I were a cynic I'd say both you and he were trolling, but I rather think he was just taking the mickey and it's turned into a rather droll black comedy.


> and you reach that conclusion?

I think Zed is a good guy. He is certainly civil in person and tends to have well thought out arguments. I was surprised by the claim without any data to back it up. I missed the whole implicit common knowledge part. I thought people were trying to defend his statement.

> it's turned into a rather droll black comedy.

I'll defer to you on this one. I wasn't intending on being a troll, so sorry if it turned out that way.

I'm just annoyed that I was getting downvoted over what I thought were valid questions.


aah, it was supposed to be humorous. Jeez, I guess the jokes on me.

> and you reach that conclusion?

The only conclusion I have reached so far is that you are a dick.


I don't expect you'll respond, but, what happened in the 4 hours between your first civil response and this second rather uncouth one?


It figures you downvoted me. You will probably downvote this one too.

I was sort of thinking about it, and I realized you were screwing with me. It's sortof humorous and dickish (sorry douchey is more appropriate) at the same time.

I don't hate you, but it's not how I would conduct myself, especially if somebody is obviously ignorant over a certain context of discussion.

> second rather uncouth one

I thought it was appropriate. I could have been more high-brow about it, but why bother? You would have downvoted me anyway and would not have been any more sympathetic. It certainly made me feel better.

Also using lmgtfy, classy! (I had another comment but decided I didn't want to get downvoted twice by you, so I merged it).


It figures you downvoted me. You will probably downvote this one too.

So that's what concerned you. The points don't matter. Seriously, they don't mean anything and certainly shouldn't change the way you interact with people. Particularly as you don't know who is doling out the points.

http://news.ycombinator.com/item?id=1505323


> So that's what concerned you. The points don't matter.

That's your response? How very caviler of you.

It does matter because it's communication, albeit binary and pretty bad, about how well your comment is being received. It matters emotionally, just like a scowl matters, or a joke at your expense matters.

It's also a form of censorship and throwing rotten food on the poster.

> Particularly as you don't know who is doling out the points

Well, that is part of the problem, isn't it? Humans are not completely logical, Dr. Spock. Including me and you... We gotta make assumptions sometimes in absence of information. Well cool, I found out something new, you got your jab in there. Win-win.

Point taken about how the voting algorithm works.


I can only assume that your vitriol stems from my lmgtfy post and so for that I apologise. My comment about the points was and is both sincere and practical advice and I hope you can revisit that post and my others in a less antagonistic light.


Thank you, and no worries. It's been a few days and I'm well over it.

I get the message you were trying to get across and I agree with it.

Mainly, I perceived you as being rude and disdainful (lmgtfy, "That is your conclusion?"). I can't speak for everybody, but my immediate reaction is to feel stupid, and then get defensive. It's hard to take a step back and realize how minor it is when in the moment.

I know that was not your intention. I really do appreciate you sticking this out.


For those that don't know, most probably do... but I would like to point out the irony in Zed's statement. He's most famously known for creating Mongrel [http://en.wikipedia.org/wiki/Mongrel_(web_server)], an open source HTTP server for Ruby commonly used in Rails deployments.


As someone who has done 4 years of Rails development and has recently switched to Django for new projects, I can tell you it would be worthwhile to learn both. Ruby and Rails are great most of the time, and the Ruby way of doing things is a great learning experience.

That said, I threw my hands up after running into multiple libraries duck punching (monkey patching) ActiveSupport into a mangled, conflicting mess one too many times. The open classes thing really is harmful, no matter what anyone tells you. It's a feature that, when used with care, can be very powerful...but the problem is in my experience it's not used with care very often in the Rails world.

I've heard Scala solves the issue with open classes by keeping things in context with the code that surrounds it, but I personally haven't verified it. Besides, that's not what you asked.

Here's a metaphor that I really feel holds true: Rubyists are magicians...Pythonistas are masons. If you have to rely on your own code only, then by all means delve as deep into magic as possible. However, if you have to rely on other's work, the mason's approach is much more intuitive, reliable, and safe.


"That said, I threw my hands up after running into multiple libraries duck punching (monkey patching) ActiveSupport into a mangled, conflicting mess one too many times. The open classes thing really is harmful, no matter what anyone tells you. It's a feature that, when used with care, can be very powerful...but the problem is in my experience it's not used with care very often in the Rails world."

I don't quite agree with this. Of course I agree that you should use monkey patching with care, but it's the implications I disagree with.

First, you can monkey patch in python too. Python doesn't make this safer, but it is used more in the ruby world. I think the implication that I take issue with is that it's rails fault that some other library you used monkey patched rails. It's the libraries fault, and people should look into libraries before they use them. Just as you should use monkey patching with care, you should use other peoples libraries with care. Peek at the code before using it.

Rails 3 makes it easier to change things without monkey patching so it should occur less frequently going forward.


I guess the issue is the prevalence with which it occurs in Ruby, as you say. I've been programming professionally for over a decade now, in at least as many languages, and I've only had this problem with ruby.

Still, I enjoy ruby very much, and I haven't seen my last project in it or Rails. I just need reliability and consistency now, and Python seems to offer more of it. I may as you say hit this same problem in Django, but I haven't yet.


"I've been programming professionally for over a decade now, in at least as many languages, and I've only had this problem with ruby."

It's a trade off. Take away monkey patching and you get other problems. Just look at java projects. Once you make an interface and someone else uses it you can't change it anymore without breaking everyones code. Check out the eclipse code base for examples.


That's a helpful metaphor. What I'm looking for is a framework that can be used for rapid prototyping, and it sounds like rails fits the bill.


Django is great for rapid prototyping. The admin area is built in, that alone saves a ridiculous amount of time


The admin will definitely be extremely helpful to someone who is new to databases.


You may also want to consider Sinatra for rapid prototyping. It's lighter weight (less framework) than Rails. Depending on your preferences, it may suite your needs.


Sinatra is also based on Ruby yes? How does it differ specifically from Rails?


I'd learn rails over sinatra. Sinatra is like being thrown into the deep end of the pool when you haven't learned to swim yet. You have to do it all yourself, where as in rails they've done all foundational stuff for you. Learning rails will teach you some good practices for how to structure a project, sinatra assumes you already know how to do this stuff yourself.


Yes, Sinatra is a Ruby web framework.

Sinatra is more of a "micro-framework" and puts you closer to the http method.

Basically, the api mimics http more closely, you literally use get, put, post, and delete methods to define your routes and actions.

In Sinatra, you define your routes in the same place where you program your Resource's functionality, so less mapping is required. In Rails, you have a separate controller and route files.

The model layers between Sinatra and Rails are very similar. For example, you can use ActiveRecord in Sinatra.


Say I take the Rails class. What's the learning curve from there to Sinatra? Better / worse than the other way?


The learning curve to Sinatra will be light. Sinatra is pretty easy to learn, especially if you already know Rails.


Also, if you want rapid prototyping, you should look into a document store such as Mongo.

Not having to write migrations (as you would with ActiveRecord + Mysql) is huge.

Also, your models can be more flexible. You can add keys to your document as needed. With Mysql, you need to have a migration to add the column.


No offense, but this is absolutely bad advice to a newbie programmer. First, mongo_mapper is virtually undocumented, whereas ActiveRecord has oodles of documentation and examples. You'll spend a order of magnitude more time trying to learn to use both MongoDB and mongo_mapper effectively than you will writing a proper set of migrations.

Second, I'm tired of all the NoSQL hype. I've worked on a project with MongoDB and MongoMapper, and the combination caused more problems than it solved. If you want cutting edge and all that comes with that, go with Mongo. Otherwise, if you'd prefer to focus on problems in the domain you're trying to solve and not the technology you're trying to solve it with, go with something relational and tried and true (PostgreSQL, if I were deciding).


I'm sick of all of the hype (for the past 20+ years) that relational databases is the only data storage technology you need.

When all you have is a hammer...


That's true and all, but Rails and Django were built to run on SQL dbs right out of the box. Getting them to work with MongoDB takes some work, and I don't think it's a diversion that someone just starting learning frameworks should try to deal with.

As for migrations, I don't think he's gonna be dealing with anything too complicated schema-wise. Django South will write your migrations for you. Maybe Rails has something like that? But honestly, I'd recommend using SQLite and just starting a new file whenever he really felt the need to alter the schema.


@grasshopper - That makes sense. Mongo is certainly new tech, so it would be more work right now with Rails.

With Sinatra, I'm finding it to be less work.

I would probably stick with relational tech if starting off with Rails, but keep your eye open toward alternative store, such as document databases and key/value stores.


@refugee - My experiences have been quite the opposite. Mongo allows me to focus on the domain. AR forces me to think about fitting the relational model into my problem, which causes a huge impedance mismatch, and causes lots of extra work and performance issues.

Of course it depends on the problem, but working with hashes and arrays is simpler than the relational model, no?

I do concede the vast swaths of docs for AR, however AR is pretty complicated and issues arise that aren't well documented.


For someone who isn't a serious programmer but is looking to prototype a business idea, I think Ruby/Rails are more user-friendly than Python/Django.

- Rails deployment and hosting are super simple with Heroku (http://heroku.com), which, again, I think is more user-friendly than the Python equivalent (Google App Engine)

- There are some excellent free resources out there (check out http://railscasts.com, http://guides.rubyonrails.org/, and http://railslab.newrelic.com/scaling-rails)

- There is a very vibrant community of plug-ins (gems)

Honestly, I think that getting a book (try this one: http://pragprog.com/titles/rails4/agile-web-development-with..., 4th edition), and then simply practicing will get you up and running faster than a course.

Also, now is a good time to get into Rails, as version 3.0 has just came out.


I'd honestly suggest just playing around with Rails rather than trying to get through the reference manual that is Agile Web Development with RoR. That book seems to be well meaning, but it's slow and horribly long. I managed to get through the first 200 or so pages, gave up, and just used Google, the API, and a Rails developer I know to fill in the parts that I didn't know. I've now been a professional Rails developer for over a year, and I can't say I would be any more proficient if I stuck with the book. That said, YMMV.

An alternative is http://railstutorial.org/book, which has the advantage of being free.


Do it.

Ruby is the perfect scripting language, and you'll be surprised at the sheer utility of having something the ability to use something like this. Forget the web side of things; just he ability to whip up a quick throwaway script (to automate office tasks, calculate forecasts, do complex eng calculations etc) gives you a massive advantage over others in your field.


I'm also considering learning either Python or Ruby, but was leaning more towards Python due to its strong math libraries. Does Ruby have equivalent capabilities for math and science?


No SciPy is amazing and I wish ruby had something like it. Its also got a lot of C so its pretty fast though you interface with it in Python.

http://www.scipy.org/


Interesting. Wasn't aware of this particular functionality, definitely sounds engaging. Thanks!


At one level, I can't see any downside (I mean, short of loosing a hundred bucks and your time).

But at another level there are other compelling arguments... Like you said, understanding technology and the way web sites and web apps are put together is useful.

But here's another thought: if you keep learning after the course ends and can put some Ruby on Rails code together you'll always be able to find work as a junior developer (or better, if you are good) somewhere - the industry is desperate for more bodies.

Now I'm sure my fellow co-founders and startup entrepreneurs will comment that we really need highly talented engineers, but realistically we just need more people across the board right now who can code well and so that means a much lesser chance of being out of work for those who have these skills.

From the individual's perspective I think that is valuable in this economy, esp if the area you really want to work in is suffering job wise.


Interesting... I had never thought of doing this as a way to develop a marketable skill. And as you say, even if I'm just able to put some basic code together, that would be a very useful ability to have in a startup environment where everyone has to wear multiple hats.

Thanks for the perspective!


For the record, Ruby is just one, albeit massive, component. You need to learn a bit about each of the following areas.

Must have:

- HTML

- CSS

- Ruby

- Ruby on Rails

Really nice to have:

- JavaScript / jQuery (or similar)

- SQL / Database design

Nice to have:

- Git (Revision control system)

- RSpec or similar (Ruby testing)

You don't need to learn everything tomorrow, but I laid out sort of a roadmap of things you may want to focus on.

PS: Can you provide us with a link to the course?


May I recommend that if you're new to Ruby and especially if you're new to programming as a whole you may be better off with web framework like Sinatra rather than Rails. Rails has a lot of "magic" and a fair bit of code generation that is going to make it harder for you to understand what is really going on.

I mean it's nice that rails can generate an "hello world" app without writing a line of code, I think you'll learn more about programming and writing a web app if you can better see what's going on:

Sinatra:

get '/hi' do "Hello World!" end

Rails:

rails generate controller hello

For that matter, don't let all this web and database stuff scare you off. Ruby is useful and powerful as a stand alone scripting language. You'll learn a lot just writing scripts that can run on the command line (and that will lay the foundation for the web stuff if you'd like to dig deeper). The web stuff isn't really any harder, but it's another layer of things to learn.


I completely disagree. Rails takes care of the foundation for you, and a novice doesn't need to know how it's implemented for a while. It also has good practices built in like dev,test,prod environments, testing infrastructure, mvc separation, etc.

Sinatra assumes you will roll all of this on your own. A novice won't know to do this, or how to do it, so I think it's better to have it done for you at first.


Yes, Sinatra is a good option. However, OP will be attending a course that covers both Ruby and Ruby on Rails (see the link he posted).


That's a good point. I imagine that I would be able to pick up what I need to know as I go along, that's what would make taking the course interesting (sink or swim!).

Here's the course description I was looking at. I haven't really looked anywhere else but I'm sure there are more out there.

http://www.ed2go.com/monroe/online_course/rby/detail/Introdu...


The author is reputable and $89 is basically peanuts. Go for it.


If you are as yet unfamiliar with webapps, learn a little about HTTP. It's what makes all webapps "go".


What things would change if you went the python route?

Ruby = Django

Rspec = ????

Is that it?


Ruby -> Python

Ruby on Rails -> Django

Git -> Mercurial (Hg)

RSpec -> Django's built-in testing


Why Mercurial? Most Python projects I've used are on git.


Well, Mercurial is written in Python, so I guess it belongs on the right side lol.


Wow, somehow this was the first time I learned that...but then again, Mercurial has never really been on my radar screen as a tool to use. Of course, with your VCS, you get better network effects by picking one that other projects in your language use, not what the VCS is written in. So I guess it's unsurprising.

But now I want to go read through the Mercurial source as I've been curious about VCS internals, but my C-fu is very weak, and attempting to read through the Git source is quite a chore for me.


Do it. Having some understanding of programming will be an asset even if you don't use it and Ruby is a fun and easy language to learn.

If nothing else you'll appreciate why the engineering team usually considers the sales team its enemy.


Agreed. Having been played for both "sides" at one point or another, I'm well aware of the tension.

It's a fact that there is credibility in having some knowledge of both the technical and business side of any operation, and it's definitely a part of my consideration in doing this.


One advantage to learning ruby is that the ruby community tends to be more entrepreneurial than other programming communities I have been involved in. Something awesome about the scrappy freelancers and startup folks I have met at the local RUGs.

If yup do decide to learn ruby, I highly recommend get involved in the community. They'll make great technical resources and business connections.


learn rails. during this process, you'll pick up on the ruby that you actually need to know, vs learning ruby and then learning rails. i learned rails over the past year and now have a number of apps running in production for clients.

http://railstutorial.org/ taught me rails. (along w/ stackoverflow.com)


Ruby is a marvelous language, and it'll serve you well to know it. It's applicable in a lot of problem spaces, and it will introduce some concepts you probably haven't run into elsewhere before.


Yes, take the class if it's at that price range. Then, checkout tryruby.org and railstutorials.org. Those two will complement your learning. RailsTutorials is very much targeted for all skill levels and if you can find your way to post on HN thus far, you may be able to follow along RailsTutorials :-)

Edit: Also, look at my earlier comment http://news.ycombinator.com/item?id=1499755


For a $100, if you have the time do it. Even if Ruby doesn't end up being your favorite language, you'll still learn something new. At the very least, you'll learn The Way of Ruby to solve problems and that will improve your coding in many subtle ways. It's simply experience that paying $100 for is a bargain.

Besides, you might end up making new friends and contacts.


Wait...6 weeks to become conversant in Ruby? A recent engineering grad (from a top ten school no less) even takes the time to post this question? Why not do a quick google search on learning ruby and find a wealth of free resources on learning ruby and just dive in, like most engineering minds would?

Hmm...I guess that's just me, someone with an engineering degree myself.

http://www.humblelittlerubybook.com/

http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ru...

http://ruby-doc.org/docs/ProgrammingRuby/


Recent engineering "survivor" would probably be a more accurate description ;-) As I mentioned, I'm much more of a business-minded guy. Don't ask...


I think you should try teaching yourself. There are lots of free online tutorials these days. I started to learn (still learning) and fell in love with python by going through the django tutorial[1] first. But then again, I'm a "throw me in the deep end" kind of guy.

[1] http://docs.djangoproject.com/en/1.2/intro/tutorial01/ Best tutorial and documentation I've read in a while. If you get stuck somewhere google it.


I don't see why not... go for it!

To supplement your Ruby knowledge and class, I'd say take a look at Ruby code snippets from Rosetta Code[1] to get a 'feel' for what Ruby looks like in a variety of applications.

[1] http://rosettacode.org/wiki/Ruby

Just out of curiosity, what kind of class is it? Is it in-person (with classmates and lecturer) or is it a web class (like University of Reddit)? What does the curriculum look like? Is there a website we can check out?


Absolutely. It's all online through a community college, description below.

http://www.ed2go.com/monroe/online_course/rby/detail/Introdu...


Woah. It's a Ruby/Rails combo. You should have mentioned that.

The curriculum looks awesome: a lot of skills are introduced. However, the curriculum looks very Rails centric rather than Ruby (the language) centric. If you're going into website creation (and it looks like you are), go for it!


Indeed that's the plan. I guess everything I've heard about Ruby/Rails was about the combo so I thought they went together as a matter of course. Amiright?


Well shiver my timbers! I didn't know that. :-)

Anyways, good luck!


For what its worth, I was doing stuff in Ruby at work but I switched to Groovy after a while. Things like Oracle db drivers, using "gem install" behind a ntlm network proxy were some roadblocks that I ran into with Ruby in a locked down enterprise environment. If you are going to be writing code and running your own servers then Ruby is easier to work with. I still think there is a cultural clash with Ruby in larger/more traditional IT shops.


As for oracle side of things, you might want oc check out OraceEnhanced adapter (blog.rayapps.com). It is developed by a very smart guy (oracle developer of the year 2009), and we use it in several production apps - works great.


For the record, the class is through a community college, course description here. I haven't really looked around at other possibilities, so any advice here is also appreciated. Thanks so much everyone for the help!

http://www.ed2go.com/monroe/online_course/rby/detail/Introdu...


Check out some screencasts too! Peepcode's are pretty good, although I think there are some lynda.com ones that are alright, if a bit outdated.


Should you learn X?

The answer is always yes.


My opinion is that it is more important to learn programming paradigms. That way you are able to decide what language you believe is the best and learn it easily.

For example, I've never programmed in Clojure but I can read quite a bit of it because I understand functional programming. It wouldn't take me very long to get the hang of it if I chose to learn it.


See my comment here if you are looking for additional resources (I see you mention else where that it's both a Ruby and Rails course): http://news.ycombinator.com/item?id=1088887

To add to that list: http://railstutorial.org/book


You could also try to teach yourself. If you already understand object oriented programming, then learning ruby on your own should be doable. It really depends on how you learn best. I prefer to teach myself, and was able to learn ruby and rails in a few weeks.


Chunky bacon!


The parent isn't quite as inane a comment as it may seem. It's a reference to Why's Poignant Guide to Ruby, a widely beloved introduction to the language that you can read free online at

http://mislav.uniqpath.com/poignant-guide/

The Ruby ecosystem is very rich. You don't need a $100 course to learn the language, though it might help to provide motivation.


Thanks for the resource! And indeed, it is exactly that "boot camp" motivation I would be looking for in deciding to take a class.


I was hoping that someone would find the meta value in the inanity.


Personally I prefer books for learning, and they are cheaper, too. It's been a long time that I sat in a course for a programming language, though - perhaps the courses have improved.


Python is probably a better option than Ruby. If your main interest is the web tech scene, you should probably devote some time to JavaScript.


I'd answer "no". The great thing about ruby, for those people who like it (including myself), is that it's _fun_.

You didn't list "fun" in your reasons above, so my answer is "no, you shouldn't learn ruby."


I believe it's almost impossible to get away without knowing CSS/HTML and JavaScript/jQuery/whatever. SQL is a big plus, not essential but almost.

Im from a Java shop and recently started to learn rails, had a good experience with grails. The good thing about web frameworks is that you can reapply what you learn to other frameworks (ie, if you choose Django you can later apply some of the knowledge to Rails or whatever). My only nitpick with the whole ruby/rails stuff is that most of the stuff is mostly semi-broken in windows. Some gems need patching, others need native code (sometimes this code has to be compiled), others just don't work with gem X. I don't know how it is in the Python/Django universe, but comparing Rails to Grails (or any other Java/maven based project) I'm amazed at the low "respect" gem/plugin developers have for windows users. Java is really write once run anywhere, Rails just seems write once run in linux.

If you choose Rails, I would strongly suggest you to install a linux.


The best advice I could give to someone trying to learn a computer language is to first pick something you'd like to do. You'd like to be able to put together a website so that's a good start.

With an English background you might try something like:

Putting together a collection of books by an author (or as many as you want) from Project Gutenberg. Come up with a rails site that lets you explore or search these in an interesting way.

There's lots of things to try, but trying to do something versus trying to learn something for its own sake, will give you a chance to focus and learn as opposed to just learning all there is about a language. With Ruby, there is way too much to learn, but you can get started quickly.


Excellent observation. It's exactly this sort of ready applicability that appeals to me about web tech. Thanks!


no learn python!




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: