What Learning Rails Has Taught Me About Myself
If you are at all like me, you can probably relate to staring at that blank white page that represents what will become your twenty page term paper. I sit there conceptualizing the overarching thesis, what evidence will prop up which statements, maybe even just trying to synthesize a spark for a gripping introduction. I did it again just prior to starting this very post! And I did quite a lot of it before starting my first original Rails project.
Thoughts were flying every which way with unfortunately not the greatest degree of organization. I had a concept I wanted to implement, but my planning started out very scattered. I know that I’ll need these tables, but the routes will need to be nested, which means my form will need to interact with multiple models, but I’ll also have to add a custom controller action for something else, etc. I had definitely hyped this project up too much, holding it as a symbol as a giant mark of my progress, a formal stamp of my right of passage into this new profession. This just added to my blank screen planning though.
Now obviously it helps to have some plans in place before launching in and creating files and code that you may or may not need. For me personally though, the lesson I learned was to balance back in the opposite direction. After completing this project I really became aware of this property across multiple facets of my life. I tend to feel a need to think very big picture, and have all my details ironed out before committing to action. I tend to want to know all of the steps before taking the first one. I like ensuring that any shots I take are high percentage shots. Now these can be seen as strengths in certain situations, but I strongly feel that balance is one of the most necessary characteristics for any person over the long term.
The way that I started this project and broke free from my controlling, big picture paralysis, was to literally just start at the opposite end of the spectrum. What is the smallest thing I could do to start this out? Let me make a git repo. Then a local directory. Then rails g new. It grew in that manner for quite some time. It took a lot of effort to stop myself from trying to carve a master strategy in my head and just focus on steady progress. I see tremendous value in the ability to steadily progress though, and it felt like growth to begin building that muscle. The project built like a snowball, slowest to start and only ever gained speed.
Yes, I learned a lot about building Rails apps through this first project. I feel much more confident structuring an app from scratch, building it out, testing it, refactoring, etc. There is also so much more to learn in this field for me. I am proud that I was able to accomplish this goal. I am also reassured by the realization that I can use this learning experience to simultaneously improve the way that I take on future experiences. Rounding out my personal toolbox means compounding returns on what will undoubtedly be a lifetime spent learning new things.