My First Week with Ruby on Rails as a Java Developer

After more than a decade working with Java, I recently jumped into a codebase written in Ruby on Rails. I wasn’t entirely sure what to expect — just that it would be different. And it was.

I’m writing this for anyone who’s ever considered trying a new tech stack and felt intimidated by not knowing enough. If that’s you, you’re not alone. It’s okay to be new. It’s okay not to know yet.

In this post, I’m sharing a few things that surprised me during my first week, and a reflection on what it feels like to start over in unfamiliar territory.

Adjusting to interpreted code

Coming from Java, I'm used to having the compiler catch my mistakes immediately. If something is wrong, it just doesn’t compile — simple. But with Ruby being an interpreted language, that safety net is gone. When I refactor code now, I can’t just assume it’s fine — it might not even be syntactically correct, and I won’t know until I run it.

That felt strange at first. I caught myself thinking, “Did I break something? Did I miss a typo?” It pushed me to rely more on writing test cases just to make sure the code even runs — not just that it works correctly, but that it runs. Still, I like that now I have one more reason to write those tests.

No type definitions

One thing I’m still adjusting to is the lack of type declarations — not even def for variables. I’ll just see a variable name and a value assigned to it, and that’s it.

total = 5
name = "Mirna"

Coming from Java, where you’d write something like:

int total = 5;
String name = "Mirna";

…it feels odd not to declare intent up front. I’m not sure yet what issues this might bring long-term, but so far I really appreciate how concise the code is. It’s fast to write and easy to follow — once you get used to it.


Running code with no main

Another thing that surprised me: you can just open a console (IRB or Rails console) and run Ruby code — no main, no class, no setup. Just type and go.

2 + 2
# => 4

"hello".upcase
# => "HELLO"

Coming from Java, where even the simplest program needs at least a public static void main(String[] args)This felt super lightweight.


You can call any method from the console

Along the same lines, something I really liked is that you can call any method from the Rails console and immediately see the result. No need to wire up a controller, run the app, or hit an endpoint.

If the method is loaded, you just call it:

TimeEntry.describe("Worked on bug fixes")

It just runs and returns the result.

I didn’t use it much yet, but I can already tell this is going to be useful when I’m testing things out on the spot — especially when I don’t want to break flow or set up a full test just to try something small.


Final Reflection – Being a Beginner

The biggest adjustment hasn’t been the syntax or the framework — it’s been the feeling of being new. Starting with a tech stack you don’t know means becoming a beginner again in areas where you once felt confident.

Not knowing how things are supposed to be done — whether it’s the language itself, Rails conventions, GraphQL, or even the testing setup — can feel disorienting. Here’s what has helped so far:

  • Being incremental

  • Alternating between breadth and depth depending on what I’m trying to implement

  • Embracing a beginner’s mindset

  • Asking questions

  • Googling

  • Leaning on AI when it helps

  • Reaching out to teammates when I need clarity

  • Focusing on one task at a time and approaching it in a structured way — learning just enough to get it done, instead of trying to master everything at once

  • Being Patient

With this approach, I learn something every day. And little by little, things begin to make more sense. The code doesn’t feel as alien as it did on day one.

And even though everything feels new, not everything is new. Many things come with you: your intuition, your debugging skills, your understanding of software fundamentals — they don’t disappear. They guide you through the process and help more than you might expect.

It’s only been a week — there’s still a long way to go — but I’m glad I took the chance. And I’m even more excited to keep learning.

I want to reiterate what I said in the intro, for you, today:

It’s okay to be new.
It’s okay not to know yet.

And if you’ve gone through a similar transition — from one stack to another, or from confidence to beginner mode — I’d love to hear how it went for you. Feel free to share your experience!


0
Subscribe to my newsletter

Read articles from Mirna De Jesus Cambero directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Mirna De Jesus Cambero
Mirna De Jesus Cambero

I’m a backend software engineer with over a decade of experience primarily in Java. I started this blog to share what I’ve learned in a simplified, approachable way — and to add value for fellow developers. Though I’m an introvert, I’ve chosen to put myself out there to encourage more women to explore and thrive in tech. I believe that by sharing what we know, we learn twice as much — that’s precisely why I’m here.