Which should I start with: PHP, Python, Ruby or Node.js and why?

Python will be your best bet. I have taught all of those languages to different students at Coding Dojo and for beginners and experienced developers Python is a easy choice. (my second choice would be NodeJS)

Here is a list of why’s

  1. Easy to pick up
  2. Job market
  3. Great starter language

First lets start off with the low handing fruit of, you already know some Python. Thats a great starting point! You can pick up a micro-framework like Flask and start building within a minute.

After installing Flask via Pip you can start and run a server with the following code:

from flask import Flask
app = Flask(__name__)
@app.route(‘/’)
def hello_world():
return “hello world”
app.run(debug=True)

It is easy to get up and going right off the bat. Plus it is widely used at different companies and will be useful in the job hunt if you are so inclined to pursue a career in Web Development. Deemed one of the most popular languages in the industry, its hard not to find a company that uses it.

Finally, there are so many great programming practices built into Python, from OOP to indentation, you really cant go wrong with learning it.

Best of luck on your journey!

Rails will force you to structure your project following MVC, it will abstract a lot of things away and will spoil you with generators and the such.

PHP is easy to pick up, initially you can write it without a framework but there are Rails-quality frameworks available (Laravel, Zend).

Node.js is an environment that runs javascript outside of the browser. You can create webservers, and you usually use another framework over the top such as Express.js. The language (javascript) uses callback chaining to order execution (whereas Ruby and PHP just execute line-by-line if you will) and has some functional (as in the paradigm) aspects. This means it may be hard to grasp some concepts.

Choice is up to you, node.js is the shiniest, Rails will force good practices into you and PHP will get you doing basic things very quickly (assuming you have little to no programming or MVC knowledge).

First of all Node.JS is a Platform to build scalable network applications, You will need to know javascript to proceed with that.

Now which should you start with depends on the problem you are trying to tackle. ( A wise man once told me )

Learning Technologies is cool but it is absolutely useless to know them if you aren’t going to be using them for anything, with that I mean, Select a tool which suits you best.

PHPPhp has had it’s days, with every update the previous methods are getting obsolete, it would be good to know it, but not worth spending too much time on.

PythonVery easy to pick up, I’ve heard about a lot of people doing awesome work with python and it helps out mostly for a little hacks also is a fully fledged battle tank and you can use it to write Huge applications.

RubyRuby is a very beautiful language, Easy to understand and gets a lot done with less key strokes :D. Has a alot of conventions one must follow to get around, but over all it’s really good.

Now analysis the problem you are trying to solve or the application you are trying to build and I hope this helps you out!

edit:

Nodejs is not a framework :|If I could go back to when I didn’t know anything about programming and could choose again which language I learned first, I would hands down choose Python.

PHP

Most of my experience is in PHP. It’s one advantage is that it was built specifically for the web. However, I am of the opinion that there is almost always a better tool for the job and will not be using it for any personal projects in the future.

Node.js

I like Node.js in general, and it is not a bad choice if it’s what you decide to go with. The only thing you have to keep in mind is that it doesn’t work the same way the other languages you mentioned do and many of the skills gained from learning it will not as easily transfer to the others.

Ruby

I don’t know much about it to be honest, and haven’t had a significant desire to use it. My one experience writing something with it was in a coding test for a job application (I completed the test in 5 languages/platforms: PHP/Laravel, Python/Django, Node.js/Express, Rails, and Go). Having never used Ruby before, I wasn’t particularly impressed, though a lot of people swear by it. Though, If I had to write Ruby the rest of my life I probably wouldn’t be terribly disappointed.

Python

Then there’s Python. I personally love its syntax. It is a language that has been very deliberately and carefully designed. It takes the most essential parts from the functional, imperative, and object-oriented paradigms and ties them together in a cohesive package. The only frustration I have with Python is the 2.x vs 3.x split in the ecosystem. Django is absolutely brilliant if you want to build any sort of application or website with a relational database backend.

I hope this helps.

If you already know Python you can try Django. However, I think Ruby is the most beautiful language out there and it’s valuable to try it. It’s easy to learn basic Ruby with Python background, but whatever language you choose it’s always good to write idiomatic code because of efficiency and readability. Metaprogramming in Ruby is probably one the most magic things in programming languages, but it’s really powerful when you understand it. If you go Ruby way I would suggest these books:

  • Programming Ruby 1.9 & 2.0: The Pragmatic Programmers’ Guide (The Facets of Ruby): Dave Thomas, Andy Hunt, Chad Fowler: 9781937785499: Amazon.com: Books
  • Agile Web Development with Rails 4 (Facets of Ruby): Sam Ruby, Dave Thomas, David Heinemeier Hansson: 9781937785567: Amazon.com: Books
  • Metaprogramming Ruby 2: Program Like the Ruby Pros (Facets of Ruby): Paolo Perrotta: 9781941222126: Amazon.com: Books
  • The Rails 4 Way (3rd Edition) (Addison-Wesley Professional Ruby Series): Obie Fernandez, Kevin Faustino: 9780321944276: Amazon.com: Books

I’m not sure if the sequence is the best (probably you can read Rails 4 Way before Metaprogramming Ruby 2), but after you read, understand and implement ideas from these books you will become well-grounded Rubyist (another great book by manning :> The Well-Grounded Rubyist: David A. Black: 9781617291692: Amazon.com: Books)

But you’re saying you know JavaScript, so it’s possible Meteor would be more suitable for you Meteor. I believe developing in Meteor is faster than in Rails. However, I’m not sure if it’s ready for large-scale projects (but if not, is going to be really soon).

If you’d like to learn Ruby and Rails are too heavy for your purposes then there is Sinatra. Similarly, instead of Django you can try Flask (A Python Microframework).

Depends upon what you already know and what you want to achieve.

If you are completely new to programming and want to master web development then Ruby on Rails or WordPress or Django/Python is the way to go. They’ll bootstrap you fast and you’ll start building apps of production quality at a faster pace and learning.

If you already know Javascript, then on of the Node.js framework like express, sails, hapi or mean is the way to go.

If you are more concerned about long term maintanence then nothing beats Java or PHP. Both are battle tested, run the web as of now.

Node.js is yet to prove when it comes to long term maintanence. Ruby on Rails has already proven that it is performance bottleneck, Twitter migrated most of their critical performance sensitive code to Java. Django is difficult to scale but it is highly productive, so productive that rather than hiring developers companies are perfectly fine to add more resources(or cloud instances).

Both Google & Facebook relied heavily on PHP. Presently both Google & Yahoo have their own languages & ecosystem for their web apps.

To start developing without a big learning curve, I recommend you to start developing using PHP, because the main proposal of the language is to develop dynamic pages based on HTTP requests.
Other languages like Python or Ruby are main purpose, so you will need to study a Web Deelopment framework like Rails (for Ruby) or Django(for Python).
Node.js, it is not a Programming Language, but It is a framework to develop applications over sockets using the JavaScript language and It is very recommended for IO bounded Applications.
But keep in mind that if you are WebDeveloper you need to understand and have knowledge about cutting edges technologies, because each one have their own purposes, advantages and disadvantages. So, never stop studying.

I would have to throw my hat in for python. Python is a flexible language with a ton of quality resources to learn it, as well as plenty of support in the form of libraries to help expand what you can do. Combine that with Django and you have some incredibly powerful tools for web development.

However, no one is going to be able to give you a great answer until you tell us what YOU want to do with it. In the end it won’t matter and your time will be better spent worrying less about language and more about concepts. However, depending on what you want to do, people may have recommendations.

Look around for easy-to-get-started-with frameworks, and see if you can use them to build what you want.

My two suggestions would be:

  1. WordPress, for blogs, websites of any size and even super-simple backends. You already know your way around html and js, so you will be able to build stuff really ealy on and can pick up php down the road.
  2. Django, for anything really. More freedom but probably more work in the beginning. You already know python though, that will be very handy.

Why PHP ?
You don’t need to know any framework to do get really small websites done.
There are like a billion tutorials to do a blog or any simple dynamic web page.

Why Python ?

It is easy to learn and easy to write. However, you will have to learn, added to the language itself, a framework to do the web stuff (Django, Flask)

Python, will make you do better and clean code, PHP no, unless you use laravel, in any other case I not recommended because PHP code tends to be confused, ruby has a good community (I dont know much about ruby), Node.js is a good option if you want do real time apps. personally I tell you Node.js because javascript community is very active and are creating new things every day

Source