Is Ruby a good introduction to back-end development?

I’ve spent about three months on the front-end and got a pretty good intro to HTML / CSS / JQuery / JavaScript. There’s definitely a lot more to learn, but I’m also hungry to push on and learn the back-end stuff.

But where to start? The front-end is pretty clearly defined. But from my current ignorant perspective, the back-end looks like a tangled mess.

A lot of coding bootcamps seem to recommend Ruby as a simple intro to full-stack development. But I’m doubtful about this for a couple of reasons:

  1. I’ve spent a lot of energy on JS - I don’t need another language at the moment. Isn’t it better just to stick to the same road?
  2. Ruby might be popular among developers, but the demand for it is pretty low compared to JS

The JS alternative (I guess) is to learn one of the common stacks: Mongo, Express, Angular, and Node - for example. But what is the logical order to study them? What part of the stack is essential and what is optional?

Any tips from people who have taken this journey already would be appreciated!

1 Like

I don’t think there is a single great answer to your question.

There are technical similarities and differences between Node, Ruby, Python, ASP, PHP, C#, Java etc… There are differences in adoption and application as well. They’re also all moving targets as the industry continuously changes.

One piece of advice (which parallels part of the Unix philosophy) is to do one thing and do it well. It’s not always the most fun route but it’s the most effective.

There’s not much use for someone who can almost deploy an application in 3 languages. It’s much more valuable to admit you aren’t experienced in several languages but have solid grounding in one.

Personally, I’d say the way Javascript has made its way into the backend recently is pretty miraculous. It gives developers the opportunity to become very good at one language and actually get things done with it.

I’m more of a python person myself, but I have nothing against Ruby. I’d never dissuade you from following your interests either if you’d like to start learning a backend language. All I can perhaps recommend is if you’re building a strength in Javascript it might be worth while continuing to foster it.

Regarding resources, Free code camp backend projects are pretty fun.

I’d go with the JavaScript stack, just because most people here on the forum are working towards the same goal. You’ll have plenty of people to help you and bounce ideas off of.

If you wanna do Ruby, try and find a decent community to make the journey more bearable :slight_smile:

1 Like

Hey @arw2015,

I’m taking this course on coursera as an introduction to the backend of the MEAN stack.

It starts with NodeJS, moves on to Express, then MongoDB. An entire module on how to use it all together to get your own REST API up and running. Covers some user authentication, HTTPS, etc.

I’m about halfway through and think I have a good idea of how to complete the first 5 backend projects with what I’ve learned so far. I give it two thumbs up!

I tried learning Rails as an appraoch to full stack dev, and of course it works for many ,but what it lacked was a vibrant responsive community like Free Code Camp.

I switched to JS full stack for that exact reason. I’d forge on with JS and follow the FCC curriculum.

1 Like

Yes and no. You’re going to want to diversify your languages as soon as you feel comfortable, and I really like Ruby. It’s more what one would expect from an object oriented language than JavaScript is, meaning that you’d have to learn about polymorphism, inheritance, and other OO concepts that don’t have formal structures in JavaScript. Learning to code in another paradigm will improve your JavaScript, so it certainly won’t be a waste of time, so long as you’re ready. But if you’re not ready, then don’t.

The demand for Ruby is low because most of the jobs a Rubyist would take is working with Rails. There will always be a demand for good Rails developers because Rails is awesome and it’s not going anywhere, but it’s not really a growing market.

But to answer your main question…

I want to point out, for clarity, that Ruby is a language. To do backend development in Ruby, you’d likely use Rails, but Sinatra is another option. Since you have no experience with Ruby or, I’m assuming, backend development, you’d not only be learning a new language, but a new framework, and a whole host of new concepts in the domain of backend development. Should you do this?

Absolutely, totally, and emphatically no!

Even if you already knew Ruby, I would say that Rails is a terrible introduction to backend development. There’s so much magic going on behind the scenes, and if you aren’t already comfortable with server side applications, you’d be fumbling in the dark with no idea what to learn.

Take some time to learn about how HTTP works in general before engaging in backend development. Try to get a feel for the request/response cycle, status codes, and REST - you don’t have to be an expert or memorize a bunch of stuff, but take a day or two’s worth of studying and focus on these concepts first. It will save you a lot of confusion down the road.

3 Likes

The essential part is Node.js.To simplify, Node.js is the “thing” that makes JavaScript work on a server (which is just a distant computer, you could also install Node.js on your own computer and make it work).

With Node.js alone, you can execute javascript files just like you did before, but additionnaly you can read files, write files, create files and folders, make requests to a database or to another website, and you can receive requests from other computer and respond to them(you can serve html, css files to a browser, you can send json documents, and any files I guess, you can stream videos, etc…).Node.js is just a program that you install on a computer and is able to do all that stuff.

Express.js is a framework that makes it more easy to write javascript applications within Node.js.It is optional but widely used because of its advantages.

MongoDB is a database program.It allows you to store and access persistent data.MongoDB is a NoSQL database system and it works with BSON documents, a format that looks very similar to JSON.And also, knowing JavaScript helps in interacting with Mongo shell(MongoDB interface).MongoDB is optional.You are free to replace it with SQL databases for example, like PostgreSQL or MySQL…or not use any database at all if you don’t need it.

Angular.js is an optional front-end framework.You could replace it with React.js, or other ones,… or not use any of them if they aren’t needed.

So the logical order would be : Node.js, then Express.js, then… whatever you want.

Here’s a playlist to get you started :

1 Like

Wow I feel like anybody here is Pro-Node JS here.

I’m learning and working with Ruby right now during my free time.
This is a resourceful for ruby : https://github.com/markets/awesome-ruby

The fact that Ruby has lesser demands than Node JS is completely false. Javascript regroup front-end, back-end and other things than MEAN stack.

Node JS is great but it is not readable like Ruby. Do you know what is Aspect Oriented Programming. You will this concept with C# and especially with the framework Postsharp. When you read your code, it feels like reading a book. Ruby is not base on performance but on readability.

And a lot of people have forgotten that Rub is older than NodeJS. So that means Ruby is much more stable than NodeJS. Rails is great tools. You will find job not only on ruby and rails but also on system programming. Because a lot of tools is automatized by ruby script. It’s just that like Java, these jobs are hidden.

Ruby market are completely different on different area. If you’re like corporation, you will choose .NET or Java. If you’re more web, you will choose PHP. NodeJS is still hype and less stable than the other language.

Some major website still use Ruby. The fact the FreeCodeCamp use MEAN, I believe it’s because NodeJS is on demand on right now. But that doesn’t mean, it’s the main demand. In my country, they’re looking more for Java, .Net and PHP than Nodejs. The country where I live right now look only for .NET developer.

The market is completely different. So just check your area or the are you want to work and see if there ruby opportunity there.

Ruby is simple than NodeJS, on the mechanism and the readability. But NodeJS is faster and have better compatibilities with some tools. And ruby is pretty big and still evolving. Try Ruby and see if it fit you.

The MEAN stack is great, but when you enter complex application, the MEAN stack is useless. Mongo is not perfect database and there are limite on what I can do with express, mongo and angular. So you will play with everything anyway. You may see one day what is cloud programming for example. The fact that we store everything is one thing, it’s just ridiculous.

Ruby is more worldwide I think, but there are more Senior job than graduate job. I found the same equivalent of offer in Ruby.

I got a little experience in the industry and can tell you that discover other languages is great. But try to manage at least one language. Recruiter and tech leader don’t like to hire polyglot. And you will see that master every language is full-time job.

Thanks to everyone for your thoughtful and helpful responses.

After mulling it over, I’ve decided to stick the back end on the back burner for now and concentrate on front-end frameworks - especially React and Angular.

I figured it like this. Being kindofokay at front end and kindofokay at backend is no use to anyone. Better to get really good at the front end stuff first. I’ve started on React and it seems like it will actually reinforce and extend what I’ve learned already, (especially about ES2015) and give me an alternative to jQuery.

The backend seems like a different ballgame. And I don’t want to jump into it until I’ve got a better grounding with front-end concepts - especially AJAX.

What I am discovering is that it is important and really hard to stay focused when learning to code. There are so many frameworks and technologies to learn about, and I want to know then all at once. It feels like I’m building a jigsaw and every piece is taking a week to put in - but I just want to see the whole picture.

Got to be patient, and take things one by one!

That’s Qunicey’s whole plan behind free code camp…to give learners a consistent path for self-study. That’s why you find s o many “pro node” answers here. Post the same question at a Ruby camp and you’ll find as many “pro rails” answers.

I started with Ruby on Rails and the backend was so relatively “easy” due to the magic that I was completely lost when I tried to customize something. I prefer to dive into node and hash out for myself, where the MVC components live, how I can refactor them and really undestand the ins and outs

I think going back to RoR after finishing FCC will be a piece of cake.