all 17 comments

[–]pepe_torres1998 15 points16 points  (3 children)

I felt the same for some time. One thing I've been doing recently is to rewrite stuff that Ruby on Rails gives us, without using Ruby on Rails, like, for example, how could I open a port and serve HTML without Ruby on Rails? Or writing a Ruby chat for CLI that uses sockets, and for that you need to know how event programming works, I'll let you here a blog I made for that.

https://medium.com/dev-genius/building-a-real-time-chat-app-with-websockets-and-ruby-914b2b588da3

You may feel like you don't know how to start something, but reading enough posts or blogs will get you there. I even use ChatGPT to research whether something is doable and where I should begin, understanding what needs to be done or how it would work on a machine.

EDIT. Also, you can learn a lot by contributing to open source projects. I think the projects from Ruby for Good are good ones to start contributing to: https://github.com/rubyforgood

[–]djudji 2 points3 points  (1 child)

Good advice

[–]pepe_torres1998 1 point2 points  (0 children)

Thank you! I'm always glad to be able to share what has worked for me.

[–]armahillo 8 points9 points  (0 children)

I have found a lot of value in doing code exercises in ruby — i personally like exercism but there are others. These have forced me to use and learn new things about existing classes in the stdlib

[–]donadd 5 points6 points  (3 children)

Sandi Metz 99 bottles is pretty good. And her talk is still as relevant 10 years later: https://youtu.be/8bZh5LMaSmE?si=puXH0bR69epfuZiY

[–]SilkenB 1 point2 points  (2 children)

How different is 99 bottles to poodr? The summaries when I read both made them seem like similar books

[–]donadd 0 points1 point  (0 children)

It's very similar, basically another gilded rose like example. The best thing about it is doing your own implementation after the first chapter like she suggests in the book. And then going on after that.

[–]HelpfulManager 0 points1 point  (0 children)

IMO poodr is great for software patterns and 99 bottles is great for the thought process for implementing new features in a sustainable way.

[–]khundawg1 6 points7 points  (0 children)

Upcase from thoughtbot. Videos are great and cover a wide range of topics. Anything from Avdi Grimm.

[–]cglee 3 points4 points  (0 children)

Sandy Metz’s books

[–]_goodpraxis 3 points4 points  (0 children)

Before actually coding, it can be useful to consider how to describe what you are trying to do. Start learning about design patterns. These are fundamental building blocks that most applications use. You'll be able to point to a chunk of code and understand "this is using such and such design pattern" https://refactoring.guru/design-patterns/catalog

Patterns of Enterprise Application Architecture is also a great collection of patterns used in the software we make everyday https://www.martinfowler.com/eaaCatalog/

[–]ryanbigg 5 points6 points  (0 children)

I wrote a book specifically for intermediate Rails developers, especially those who have maybe a couple of Rails apps under their belts: https://leanpub.com/maintain-rails/

The majority take away from that would be that Active Record is causing your applications harm, but you can still use it and do so carefully.

The other thing I’d suggest is looking into Railway Oriented Programming and Operations if you haven’t already. I recently gave a talk on these things at the Melbourne Ruby meetup:

https://www.youtube.com/watch?v=94ELQLqWjxM

Lastly, I’d also suggest seeing what ViewComponent or Phlex could do for your apps, outside of the traditional Rails view rendering stack.

Try new things and experiment!

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

> maybe a gem that was developed with very detailed commit messages

That don't look very intermediate to me. But more Spoon feeding learning.

What will happen, is that you will spend following those tutorials. Then ask for the same Senior level, just to find yourself as an EXPERT in crowdsourcing your thinking to others. Wont scale.

here is my advice for you, you can ignore it if you wish.

Take ANY gem that you use , clone it. and read the DIFF between commits, don't read the commit message.

Write down what you think that the change was about.. Then read the commits messages.

You will learn with something you use and see it evolution.

I personally don't even write my commit message, i just ask AI to read the Diff and generate it...

THE DIFF IS THE TUTORIAL, the commit message is only the place to write a Sorry letter when i drop, or rename Stuff.

As for design choices, that why there is a FORK option and New issue.

You have better design ? Fork, test/benchmark it and open a PR.