# You've got the Rails basics. So why do you feel so slow?

DevFeed: [You've got the Rails basics. So why do you feel so slow?](<https://devfeed.tech/articles/you-ve-got-the-rails-basics-so-why-do-you-feel-so-slow-26281.md>)

Original publisher: [Read original article](<https://www.justinweiss.com/articles/youve-got-the-rails-basics-so-why-do-you-feel-so-star-slow-star/>)

Author: Justin Weiss

Published: 2015-06-09T03:56:10Z

Content type: opinion

Language: en

Sources: [Justin Weiss](<https://devfeed.tech/sources/justin-weiss.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Learning](<https://devfeed.tech/topics/learning.md>)

Tags: [beginner](<https://devfeed.tech/tags/beginner.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [rails](<https://devfeed.tech/tags/rails.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [testing](<https://devfeed.tech/tags/testing.md>), [writing](<https://devfeed.tech/tags/writing.md>)

## AI overview

This article explains why developers often feel slower after learning more about testing, maintainability, refactoring, and design. It recommends working in stages: begin with a rough draft, produce a simple working implementation, and then refine it through testing and refactoring while recognizing diminishing returns.

## Source excerpt

You're confident about the core ideas behind Rails. You can write working code, no problem. And you're learning more about code quality, refactoring, writing great tests, and object-oriented design. By this point, you're starting to feel like you're getting it, that you're on the path to becoming an expert. When you look backwards, you see just how far you've come, and you're pretty happy with your progress. So why do you feel so slow? Now that you care about testing, maintainability, and design, it feels like it takes you way more time to ship anything! Is it even possible to ship high quality code quickly? It's all part of the process This feeling is incredibly common, no matter what you're learning. Now that you're no longer a beginner, you're starting to see all the different shapes that your code could have. You have more alternatives to think through whenever you put down a line of code. You have to test edge cases you never recognized before. You've learned lots of helpful skills. But right now, they still take a lot of thought. You have to weigh every decision you make, so you feel comfortable that you're making the right decision based on the things you've learned. It will get faster, though. The skills you've learned will become more automatic. You'll build intuition. And you'll be able to make better decisions more quickly. Which is nice to know, but it doesn't help you right now. So what can you do now, to finish things faster? Take it in stages If you're obsessed with writing perfect, high-quality, highly-maintainable code every time you put your fingers on the keyboard, you'll never get anything done. When I get stuck, I write code the same way I write articles. You'd start with a rough draft. Maybe sketch out some tests, code, or comments. Or even write some ideas out on paper. At this point, you wouldn't worry about structure, you're just using code to clear up the vague ideas you have in your head. Then, I turn those ideas into a straightforward imp