I can recommend the JetBrains IDEs, they’ve got one for all the main languages you’d be interested in (Ruby, Python, PHP, JS, Java) and they work a treat. The JS support especially is great, the autocomplete is pretty solid (although far better if you annotate your code.)
Seems like the main choices I hear about in terms of server side are:
- Rails (of course)
- Laravel (php)
- Express (Node gets addictive… at first I couldn’t understand the fuss, it’s hard to use anything else now).
I’d say you could select either Rails or Laravel and be happy. Express/Node - well - how much do you like JS?
Front end is where it gets much, much harder. It took me only about a year to work out what I should use
I’m not aware of any good resources to help you make this selection, actually. FWIW:
- I used BackboneJS for about a year. I wouldn’t recommend it for anything major, gets really hard to keep everything under control.
- Now using AngularJS - it’s really good, sometimes very hard to wrap your head around. Unlike with Backbone, where I felt like I had a mess with no hints on how to fix it, the longer I use Angular the tidier I’m able to make my code. Occasionally, it’s been incredibly painful, but the pain is usually worth it in the end.
Ember & Knockout are in my blind spot. There are people as passionate about Ember/Knockout as Angular, so - grain of salt.
- I also use BreezeJS to handle models client side. It provides a lot of functionality, but it’s written from a .Net perspective, so it can be a bit awkward and sometimes feels bloated. Plus its more difficult to use if you’re not using .Net, and their support model is weird (found a bug? Great! There’s no way to raise an issue unless you pay us money!) Still, despite all that, it has no rival.
If you do use Angular, then egghead.io has great intro videos. Master Web Application Development with Angular JS is good once you’re a little further along, but it’s already feeling a little outdated, such is the pace of development for Angular. Still, lots of great advice.
In terms of tools, for front end, you’ll want to use:
- Check out Yeoman, which will point you towards:
Bower for dependency management
Grunt for build
SASS/Stylus for CSS (I like Stylus, seems more forgiving, but SASS has more uptake.)
Jasmine or Mocha for unit testing (I use both, slight preference for Mocha)
The learning curve is steep, because there’s just so many tools and frameworks to choose from. I think the list above are pretty mainstream and have good communities. Actually integrating it all into your workflow & learning all the tools still takes a while.
Happy to help if you’ve got questions!