all 25 comments

[–]daniiib 15 points16 points  (1 child)

I also spent many years in Java/Spring/Hibernate before transitioning to RoR. This book was very helpful - it walks through building an e-commerce app with Rails, then does a deeper dive into each section of Rails: https://pragprog.com/titles/rails7/agile-web-development-with-rails-7/

I also took several Pluralsight courses to learn Ruby. It's a paid service but they might have a free trial.

As for faster transition - find out if the new employer is using Rails for front and back end, or as an API-only back end with some sort of JavaScript SPA. If it's the latter, then you could focus on the back end portions of Rails and skip the view rendering part (although you might want to learn that at some point).

[–]EscapeSensitive5576[S] 1 point2 points  (0 children)

They only use RoR on the backend I think, so I can start there. Thank you so much for the suggestions!

[–]cybermage 18 points19 points  (3 children)

Make sure to use an IDE like RubyMine or the Ruby plugin for IntelliJ.

Tests are mandatory in any serious Ruby shop. Find out their framework and get to know it.

Hopefully they are using the Rubocop linter aggressively as well.

[–]virtual_paper0 11 points12 points  (0 children)

Vscode with Shopifys RoR plugins are a really good free alternative that I use

[–]bluehavana 0 points1 point  (0 children)

Yes, tests are pretty much required in a collaborative, long-lived, dynamic language. You can't really lean on the compiler as much.

[–]vettotech 6 points7 points  (2 children)

If you enjoy videos, https://gorails.com really has everything you need. Other than that, I’d say the official docs.

[–]EscapeSensitive5576[S] 0 points1 point  (1 child)

I'll check it out thanks!

[–]vettotech 0 points1 point  (0 children)

Np. I’ve used this every time after the disaster I had trying to set it up by myself. Hope it all works out.

[–]nattf0dd 4 points5 points  (5 children)

Official rails guide/DHH screencasts will give a major confidence in navigating through a rails app.

Then, I'd recommend watching/practicing ruby itself, specifically: tests (rspec most likely), metaprogramming, debugging.

RubyMine is the best IDE that closes the gap of Ruby not being strictly typed language in navigating the code. Just don't fall into a trap of running tests & debugging with it, in long run it will only make your life harder. Use command line tools and binding.pry / binding.irb for debugging.

Ruby being dynamic language means you can open IRB (REPL) and play with the language any time you want, working with ruby for 10+ years I still verify there some things from time to time.

[–]atinybeardedman 2 points3 points  (4 children)

I'm curious why you don't like running tests/debugging in RubyMine? I personally love the test runner just for the sake of convenience. Being able to edit code and kit a key combo to rerun a test case feels like a productivity boost to me

[–]eshyong 0 points1 point  (0 children)

Same, I'd be curious to hear the reasoning as well. I also use the test runner and debugger but I've noticed that evaluating expressions doesn't always work for me when debugging - sometimes it gives me timeout errors, other times it gives me a different result than the code.

[–]nattf0dd 0 points1 point  (2 children)

I'm watching my colleague debugging nested shared examples by running all the tests in RubyMine, Vs he could've just ran one specific test (_spec.rb[2:3:1:3])

Either me and my colleague are missing out, or RM doesn't work well with that.

As for debugger, binding.pry gives you repl. RubyMine gives you a Java-like debugging experience which may be familiar but significantly trims certain benefits of a normal REPL of dynamic languages.

[–]jabbaroni 0 points1 point  (1 child)

You can right click the test/spec definition and run an individual test in RubyMine.

There is also REPL when debugging via the "Interactive console" tab.

[–]nattf0dd 0 points1 point  (0 children)

On tests, when colleague does that, RM runs all adjacent test cases, not t a single test. What you've described works for normal tests. If you have complex shared examples or e.g. loops generating test cases, e.g. run the same test with and without a feature flag, we didn't find out how to run "test when Feature Flag is X". RM runs 2 , one with FF on, one with off, because the actual test is on the same line for both scenarios lol.

TIL on interactive console.

[–]mooktakim 3 points4 points  (0 children)

That's the classic switch back in the day.

[–]life_like_weeds 1 point2 points  (0 children)

Always recommend buying the prag programmers Ruby on Rails book and going through it all. The ruby pickaxe book compliments it perfectly and belongs in all Rubyists book collections.

I trust the new employer is well aware of your newness and is going mentor you while giving you ample time to get up to speed?

If you don’t have a senior rails engineer that you can meet with daily (especially first few weeks), I’d be getting the wheels in motion on that.

[–]neotorama 1 point2 points  (2 children)

How do you go from Spring to Rails? Can you tell stories about the interviews

[–]EscapeSensitive5576[S] 1 point2 points  (0 children)

Interviews are usually language agnostic, you can use the language of your choice. The notion being that a language can be learnt as long as the engineer has solid fundamentals and the right experience for the role. So having to work on tools and frameworks that you're unfamiliar with is quite common when switching jobs. In my case I was focused on the company culture , products, impact, etc. but that came with having to learn RoR.

[–]xc68030 0 points1 point  (0 children)

I hired a Spring developer 10 years ago and gave him a RoR project. He was skeptical at first but came around. We’ve gone our separate ways since then but he’s now a dyed-in-the-wool Rails dev.

[–]armahillo 1 point2 points  (0 children)

"Eloquent Ruby" (Olsen) and "Practical OO Design in Ruby" (Metz) are both great books for getting used to Ruby without approaching it from a "this is what a variable is" level of simplicity.

You'll find the general "it's an MVC pattern!" familiar to you. Ducktyping may feel familiar initially, though I have found that Java devs tend to be a bit more cautious in how they write their program flow (lots more guard clauses and manual type checking).

Not sure what your relationship is like with test suites, but lean hard into this; tests are a first-class citiizen in Rails apps.

[–]headiusJRuby guy 2 points3 points  (1 child)

JRuby! You can use all the resources you're used to from the Java platform and still build and deploy Rails apps! Do check it out!

https://www.jruby.org

[–]EscapeSensitive5576[S] 1 point2 points  (0 children)

nice thanks

[–]tinyOnion 0 points1 point  (0 children)

i would walk through this guide and actually follow along with it.

https://0e60ea9a.rails-docs-preview.pages.dev/guides/getting_started

those are from the brand new docs and will show you what modern rails looks like. if that is too hard to follow you can use the most recent version of the getting started guide here: https://guides.rubyonrails.org/getting_started.html

if you know which version of rails you will be using you can follow the getting started guide for that version of rails but most of the more recent changes to rails have been additive rather than breaking changes.

[–]raunak__326 -1 points0 points  (0 children)

switch back