Reading Docs
Reading documentation is a big part of being a software engineer. It's hard to know all the tools and ways of doing things going into a project and reding documentation is how you can pick up the skills you need to solve the problems you come across. Documentation gives you the blueprints for how to use certain tools and frameworks. In my time as a developer I have frequently used the Ruby docs, rails docs, documentation for specific packages, and more; too many to count I'm sure. Even when using an ai tool like perplexity I am more likely to click into the linked documentation than read the given response.
A couple weeks ago I was entrigued when I heard of someone who would not only read the documentation for the technologies they used but would also consult the source code. They had a scheduled day of the week where they would work through a section of source code and learn what was going on under the hood of the tools they relied on. I haven't dug into this practice yet but I am planning on it for a few reasons.
1. deeper understanding
The biggest reason I want to spend time reading the source code of the tools that I use is that I want to have a deeper understanding of the tools I am using. In my case I want to start reading through the Rails source code. Being able to go beyond the documentation will make me realize on a deeper level that it isn't magic under the hood making everything work but something that someone has thoughtfully put together to make my life easier. If I know how somehting works to the point that I could put it together myself, I don't need to worry about it breaking, I'm no longer dependant.
2. quicker development
Understanding a tool on a teeper level will also give you what it takes to use it more efficiently. I don't want to be constantly lookking up why something isn't working the way I expect it to. Taking the time to read through how something works will give me what it takes to solve my problems faster.
3. freedom
Having a deeper understanding of the tools you are using will give you the freedom to make it work the way you want. you can customize it to make it work the way you want. Maybe you will find out that other people have the same problem and you can help them out too. That is the great thing about open source problems is that you can make it better, but you can't make it better if you don't really understand how it works. If I take the time now to begin to understand Rails on a deeper level, down the road I can possibly share a gem that others will find valuable. I think that idea is really exciting and something I love about software development.
I still have yet to do this, it is a goal of mine and something that I know is achievable. I know it will be slow going at first but I know will be workth it in th elong run. Part of the reason why I wanted to share this here is to keep myself accountable to doing this. I have a checkllist below of some of the different parts of rails I will be reading about and plan on adding a check and date for every one of these I make it through.
- ActiveRecord
- ActionController
- ActionView
- ActiveSupport
- Routing
- ActiveJob
- ActionCable