Intermediate Rails

2019-05-05

@craigpetterson I know the feeling. I've recently got over that wall with Rails where you know how to use all the core parts well, know how to stick to Rails conventions and now are wondering what else you should be looking at. At this stage the amount of videos and blogs on topics starts to thin out and there's no longer a clear direction for what to learn next. On the distant horizon there's articles on memory, performance, and scaling Rails to thousands of requests per second, but that doesn't feel applicable to day to day development. There doesn't seem to be much information for the stage between intermediate and super advanced Rails. I think it's at this point where developers look to switch framework and learn the next JS monstrosity. I believe I've found a better way for, me at least.

Stages of Rails learning

  1. Beginner tutorials - Lots of articles
  2. Rails best practices and design patterns - Lots of articles
  3. Advanced Rails - Few articles
  4. Massive scale Rails - Decent number of articles

There actually is a lot of information out there to learn from at this stage in the developer's quest, it's not advertised as such, it's documentation. Granted a bit less fun than reading an article but the pay off per hour is much higher.

They way I've been doing this is to incoporate it into my routine. Every morning I read some documentation on my commute in. Prioritising what's least familiar and when I'm sick of reading about that switching to another part of my stack. I'm also making it a habit to use ctags to read inline method documentation rather than googling. I might expand on why I think that is best in another post.

Even just skimming the docs has a really high expected value per hour. Finding out some functionality exists that you didn't know about is a huge win (unknwon unknowns -> known unknowns). Doing this for all the tools you use regularly is, I'm fairly sure, how to become an expert.

I'm not planning to add new frameworks to my repertoire unless the project I'm working on uses them. If it does, I'm going to make sure I read all the documentation for them. In the mean time I've got my hands full reading all the documentation for the tools I already use. I'm currently reading the HTML 5 spec and it's surprising what you can get HTML 5 to do for you without javascript.

YMMV, not expert advice.

tldr; Practice targeted learning. Read documentation if you're struggling to find blogs and articles to learn from.