The further I progress the more I end up going back to try to understand core concepts that I have tried to skip over. One of the reasons for this is that if a definition doesn't make sense to me, my instinct is to plough on. A better system may be to take more time trying to define each concept in a way that I understand. To describe it in different terms. Sometimes I'll try write it out with a pen, then transcribe it to word text to see if I understood it. It's a slow process.
I started with the Rails Guides for each core Rails folder and then began my definition search. Here is a typical rabbit hole.
Bin - "Contains the rails script that starts your app and can contain other scripts you use to setup, update, deploy or run your application." What is the definition of a script though?
Script - A script or scripting language is a computer language with a series of commands within a file that is capable of being executed without being compiled." Why would file need to be execute without being compiled?
Compile - Compile is the process of creating an executable program from code written in a compiled programming language. Compiling allows the computer to run and understand the program without the need of the programming software used to create it.
This can go on forever and so for me the best thing is to try to grasp the core concept of the more common terms, before peeling the onion any further. In the first section of the guide this is the table in section 3.2:
Back to Bin described in my terms - 'A Folder containing the rails scripting language that starts your app'.
It does more than this but I wouldn't recommend going too deep at this stage if you're a beginner like me.
Config - 'Short for "configure your routes and database".' 'Allows you to adjust the general behavior of the application'. I tried looking further than this and quickly got lost, moving on.
Config.ru - Used for Rack configuration. What is a Rack? Its a Rack of servers.
DB - Contains database schema and migrations. The Schema basically describes how your data is organised. Its is a skeleton structure that describes the logic of the database. Also provides constraints.
Migrations are "incremental, reversible changes to relational database schemas. Took me a while to digest both of these concepts.
And then stop. This is enough for one session.