# 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.

```ruby
total = 5
name = "Mirna"
```

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

```java
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.

```ruby
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:

```ruby
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!

---
