9 ms·
Ask HN: Should I Learn Ruby?
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.
- pierrefar 16y agoFor 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.
- LeBlanc 16y agoYou 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.
- Tichy 16y agoPersonally 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.
- dotBen 16y agoAt 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.
- acpigeon 16y agoInteresting... 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!
- brecht 16y agoTaking a 6 week course in Ruby will only give you enough knowledge to be annoying and dangerous to your tech leads in whatever future business you start. Even beyond that, I'd bet the sort of thing they'd cover in 6 weeks (syntax, hello worlds, basic I/O) would be wasted on someone with managerial aspirations. Find something like a survey of web technologies instead, become conversant in the language without miring yourself with technical details that won't really help you.
- sleight42 16y agoChunky bacon!
- TrevorBurnham 16y agoThe 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/ 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.
- twism 16y agoI 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/ 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.
- acangiano 16y agoFor 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?
- acpigeon 16y agoThat'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/Introduction_to_Ruby_Programming.html?CategoryId=41 http://www.ed2go.com/monroe/online_course/rby/detail/Introdu...
- acangiano 16y agoThe author is reputable and $89 is basically peanuts. Go for it.
- spokey 16y agoMay 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.
- rortian 16y agoThe 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.
- acpigeon 16y agoExcellent observation. It's exactly this sort of ready applicability that appeals to me about web tech. Thanks!
- zedshaw 16y agoI'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/ 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/ 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.
- acangiano 16y agoI 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.
- mrduncan 16y agoThe 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.
- acangiano 16y ago> 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 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.
- johnwatson11218 16y agoFor 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.
- silversmith 16y agoAs 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.
- cageface 16y agoDo 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.
- acpigeon 16y agoAgreed. 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.
- samratjp 16y agoYes, 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 http://news.ycombinator.com/item?id=1499755
- cubicle67 16y agoDo 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.
- acpigeon 16y agoInteresting. Wasn't aware of this particular functionality, definitely sounds engaging. Thanks!
- neovive 16y agoI'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?
- WALoeIII 16y agoNo 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/ http://www.scipy.org/
- brianto2010 16y agoI 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 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?
- acpigeon 16y agoAbsolutely. It's all online through a community college, description below. http://www.ed2go.com/monroe/online_course/rby/detail/Introduction_to_Ruby_Programming.html?CategoryId=41 http://www.ed2go.com/monroe/online_course/rby/detail/Introdu...
- brianto2010 16y agoWoah. 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!
- acpigeon 16y agoIndeed 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?
- brianto2010 16y agoWell shiver my timbers! I didn't know that. :-) Anyways, good luck!
- acpigeon 16y agoFor 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/Introduction_to_Ruby_Programming.html?CategoryId=41 http://www.ed2go.com/monroe/online_course/rby/detail/Introdu...
- thereddestruby 16y agoCheck 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.
- msbarnett 16y agoShould you learn X? The answer is always yes.
- cheald 16y agoRuby 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.
- waxman 16y agoFor 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 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://railscasts.com, http://guides.rubyonrails.org/ http://guides.rubyonrails.org/, and http://railslab.newrelic.com/scaling-rails 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-rails 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.
- ahlatimer 16y agoI'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 http://railstutorial.org/book, which has the advantage of being free.
- CoachRufus87 16y agolearn 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/ http://railstutorial.org/ taught me rails. (along w/ stackoverflow.com)
- carbon8 16y agoSee 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 http://news.ycombinator.com/item?id=1088887 To add to that list: http://railstutorial.org/book http://railstutorial.org/book
- rufugee 16y agoAs 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.
- acpigeon 16y agoThat'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.
- binspace 16y agoYou 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.
- acpigeon 16y agoSinatra is also based on Ruby yes? How does it differ specifically from Rails?
- binspace 16y agoYes, 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.
- lfnik 16y agoMy 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.
- asdfasdf123123 16y agoI'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."
- mping 16y agoI 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.
- deleted 16y ago[deleted]
- smitjel 16y agoWait...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.humblelittlerubybook.com/ http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ru... http://ruby-doc.org/docs/ProgrammingRuby/ http://ruby-doc.org/docs/ProgrammingRuby/
- acpigeon 16y agoRecent engineering "survivor" would probably be a more accurate description ;-) As I mentioned, I'm much more of a business-minded guy. Don't ask...
- WEREA 16y agono learn python!
- csexton 16y agoOne 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.
- gmosx 16y agoPython is probably a better option than Ruby. If your main interest is the web tech scene, you should probably devote some time to JavaScript.