I used to really like Ruby because its syntax is so clean. Ruby is both a frontend and backend language; however; the frontend features of Ruby are simply abstract Javascript. To me this is somewhat limiting so I don’t use it much anymore. If you choose NodeJS as a backend language, you will be writing in Javascript and no matter what you choose for your frontend you will be using some derivative of Javascript so I can’t imagine enough how every modern web developer should learn Javascript.

It is important to point out that whatever frontend or backend language you choose you will also need to learn some of their basic libraries (aka packages). You will use these packages as much as you use the language itself. For example: whatever you choose for your backend you will also need to have some code that reads the URL in the address bar and shows the correct page. This is called a router. If you use NodeJS you will most likely use a package called Express as your router. Express is a package that is written in Node but it has a specific job to route URLs to parts on a page. Sometimes we refere to these as “views” or “partials”.

Read “Javascript the good parts” by Douglas Crockford and watch his highly entertaining videos on YUI Theater.

Source: https://appirio.com/tech-blog/top-11-things-every-beginning-web-developer-should-know-part-1