
I will do without copy-paste and even references that Ruby is such a beast, for it has already been written in full. In this post, I just want to talk about the way to learn Ruby (and, subsequently, the Ruby on Rails framework) a person far from programming.
1. Curiosity
“How far?”, You ask, and I will answer - “Slightly less than full,” since in the tenth grade at school I had programming lessons, a couple of which were given to Pascal. I admit, I later learned about html, and even could create a page in Dreamweaver-e or put up a ready-made engine, and follow the instructions for making plug-ins, but no more.
Although I liked computers, I went to study as an economist * - undergraduate, magistracy in boo. accounting and auditing, postgraduate studies in finance, working in a bank, teaching, insurance. But I did not live calmly in finance, - the financial calculator satisfied the need to solve trivial tasks, but did not satisfy my brain. And he wanted to calculate not only the future and present value of the asset, but also to create an array of data from the historical values ​​of this asset for n years, calculate the average yield, variance and, finally, build a beautiful chart!

Fig. 1. Beautiful schedule
And so, having adopted a little desire and time in the month of May, I decided to study something. Why the choice fell on Ruby I will not tell, but he fell on him.
')
2. First steps
Imagine a person who hears for the first time in his life the expressions “iterator,” “object-oriented programming,” and hundreds of other words that lead to a stupor. This is not WACC (weighted average cost of capital) or IRR (internal rate of return), which in the second year ceased to frighten, this is something very far from what it lived with before. And then no one will tell - around some economists. This is where Google comes to the rescue. Actively searching, we find the first textbook.
Chris Pine - "Learn to Program." Everything is fine here, there would be a desire and ability to work with a notebook, the rest will follow. Installing Ruby using
rubyinstaller , which allowed to install all the environments is very simple.
The scheme of work with the textbook is simple - we read the chapter and try to solve the tasks set at the end. Something does not come out - we go back and so on until complete enlightenment. In the course of or after, you should definitely invent and solve your problems. Already after the seventh chapter and the week of study, I was able to create an array of data from the historical values ​​of this asset over n years, calculate the average yield, variance and everything.
3. On rails or highways?
“And what about the schedule?”, This time you ask. And here comes another dilemma, how to display the results, because the console will not be full. Since the idea of ​​Web-technology was available (the same html), I decided to climb on the rails. This time
railsinstaller came in
handy , which allowed installing Rails in five minutes (and the attached video removes all the issues). The second book was Michael Hartl's
Ruby on Rails Tutorial . To start the book is simply different - from the creation of the first application to its deployment to the hosting. But the chapter on the eighth, even taking into account the fact that I missed the testing steps, my brain gave up and hung. There were so many questions that the book simply could not answer them. So how to create and deploy applications, I generally learned, I decided that it was time for my experiments. A couple of elementary examples, a couple of questions on
Stackoverflow on trivial questions about how, for example, to create a simple form, and with time I got the graph I needed (see Fig. 1) on JS (
helped Highcharts ).
About one and a half months have passed since the beginning of the study of Ruby. Even so: about a month and a half has passed since the beginning of the study of programming.
The third resource organized in the presentation of the material was the interactive video school
Rails For Zombies , which taught you to work with database queries and other tricks. By that time, the brain had grown strong and I was ready to return to the second book (Rails Tutorial).
4. We solve our problems
Indulging in leisure with Ruby, I did not forget about my other activities. As a co-owner of a small brokerage company, was engaged in insurance. And we had a problem - maintaining a database of contracts and customers. The company is small, for a couple of people and it did not make sense to use a full-fledged accounting system, since 80% of the functionality was not needed, and the remaining 20% ​​were solved by no more than 20% of our needs. A similar situation with the finished CRM-systems, which are sharpened by any general activity, but not under insurance. It was necessary that all be able to enter data on the client, enter the contract and be sure to remind about the deadlines for the completion of contracts, the terms of the approach of the next payment and birthdays. And I wrote on Ruby on Rails a system that we now safely use. But it would be selfish to do it only for yourself, therefore now everyone can use it according to the SaaS principle.
At the moment, the system is at the stage of closed beta testing, but all the main features are present, and the main bugs are found and eliminated. There is still a lot of work to do, but it is already possible to maintain a customer base and contracts, receive notifications about upcoming important dates (completion of contracts, birthdays and suitable payment dates according to the plan), keep records in the context of different insurers and different subagents, see the history of contracts made with the client , introduce a flexible plan and schedule of actual payment under the contract and much more. As the abbreviated name of the brokerage company SEI, the system called SEI CRM **.
But this is not the point, because further the PR of a non-ideal product can go, but the fact that it is possible for a non-programmer to get on the rails and solve his problems practically from scratch in just four months. Of course, my code is not perfect, but it still works well and I promise to be better tomorrow than I was yesterday, even when working with the code.

Fig. 2. Favorite customers in search results

Fig. 3. Example of a contract with a fake client
By the way, here you can often read about various startups, the need to create which was based on the needs of the creator. The only problem here is that the creators are often indigenous programmers who solve, if not organizational problems (ToDo-lists, etc.), then specific problems that only programmers face. But that's another story.
* - I love money as a product of the socio-economic development of society. I recommend reading the speech of Francisco D'Aconia about money in the second book, Atlas Shrugged, chapter two.
And of course, when my money is in my pocket, I love them too.
** - I do not post public links, because I am afraid of habra effect. And it is damp for a public, and not about this post.