As I did programming tests, my little TIOBE and a little dollars

Learning programming just by reading articles and books is not very interesting and productive. Need practice, and preferably interesting and useful. The idea appeared spontaneously, did not find analogues. So I decided to make a mobile application with programming tests. About where I will get the content for it, I did not think then, if I thought, then probably it would not be.

Everything is ready, the easiest is left

There were no special problems with the code, started in Java, then switched to Kotlin. I liked writing code in Java, it became even more interesting in Kotlin. But with the user interface I had to suffer. Time was spent on all these graphic nuances, the selection of colors and sizes was not enough, which is only worth making an icon for the application if not with design abilities. Although it would seem that in the application there are only three fragments and a few activations.

The icon turned out like this:

When the application framework was ready and it remained to fill it with content, the question finally arose: where to get it? Yes, everything is simple, they will do it on freelance!

Oh yes sly pakistani

As it turned out later, I, too, that same beetle. I placed an ad on the exchange, I say: I give you 10 dollars, you give me 100 questions. Many Indians and Pakistanis were eager for battle. I chose one. Several hours passed, he tells me that everything is ready. I am happy, money to him, questions to me. So I had questions about two programming languages.

Disappointment came quickly. All questions were copied from one of the sites. Before that, I myself wanted to borrow them from there, but then I refused this idea. I am writing to a Pakistani, he confessed, he says that there is not enough money, therefore he copied it. I began to explain to him that he was wrong, why did he agree, if not enough? I didn’t want to give money, until I told him that I had informed the administration of this site about the incident and they were interested in his personality, and in this connection he might have problems with freelance. Of course, I didn’t tell anyone, but my account was replenished back.

And then the most difficult epic began. I began to make questions myself. Okay, with those languages ​​with which I had little experience, but with the rest ... I opened the documentation and studied it, composed questions, if I did questions with a listing, I compiled and looked at the result. I checked every question. I especially liked the PHP documentation, it’s direct with user comments, they have a lot of ready-made questions.

As a result, he made more than 1000 questions in 11 programming languages. Only senior-level questions were somewhere, forgive me their owners, they were stolen, mainly on stackoverflow, some even on the hub

It was very dreary. I realized that 10 bucks is really fabulously small for such a routine. In addition, in order to highlight the syntax for readability, I accompanied each question and listing with the corresponding html tags (different colors, italics, indentation, etc.), it was even more dreary and not at all interesting. But the goal was set and did not want to be thrown.

Python vps

As a server, VPS was chosen for 2.5 dollars per month. Wrote a small API to get questions. All my essays are available at the following links:

List of all tests


    "date": "2017-05-16 10:57:41", // дата создания
    "id": 1, // id для идентификации вопросов
    "name": "Android", 
    "questions_number": 61, // количество вопросов
    "theme": "emerland", // цветовая тема, используется в мобильном приложении
    "updated": "2018-01-01 09:17:33" // дата обновления вопросов (например исправлена ошибка в вопросе)

List of all questions


    "answer": [
    ], // ответ
    "code": "", // если вопрос с листингом, формат кода - html для подсветки синтаксиса
    "date": "2017-10-22 09:32:11", 
    "id": 1121, 
    "level": 0, // сложность вопроса (0, 1 или 2)
    "options": [
    ], // предлагаемые варианты ответа
    "question": "Which keyword is used for initializer blocks?",
    "quiz_id": 10, // id теста
    "type": "single_select", // тип вопроса (один или несколько вариантов ответа)
    "updated": "" // дата обновления вопроса

Some statistics

2017 left for everything about everything. Of course, not a whole year I wrote the code, if you count on average, it may spend 1-2 hours a day. And even then, he developed at home, in the evenings, in the family circle. There were months, I didn’t sit at the computer at all (a business trip or something), there were weeks of 5 hours, or even the whole day I just sat at the keyboard.

At the time of writing, the application has 7000 installations, active - 3000. On average, 50 installations per day. At the start, I spent 2,000 rubles on advertising in AdWord. I did not buy reviews and installations. Out of 59 ratings, about 10 are me and my friends.

My little TIOBE

Using Firebase analytics, I collect some statistics on the popularity of tests in various languages. For 7000 installations, it is presented below. The three leaders are almost the same as on TIOBE (May 2018).


Initially, I planned to do 10 free questions in each category, the rest for the money. But he refused this idea. At first there was not even advertising, then I decided to add. Advertising appears at the beginning and end of the test. At the time of this writing, ad revenue was $ 35 (total 23,000 impressions) + $ 10 for 10 disconnected purchases. For the first month, advertising revenue was about $ 2, now about 10, an increase of about 2-3 dollars a month. I have VPS for 2.5 dollars, so I came to self-sufficiency :)


On a habr there was an article in which it was told how to implement temporary shutdown of advertizing banners for viewing of advertizing videos. Initially, I wanted to implement the same functionality, but went a little different way: since I have one more application in the store, I offer the option of free advertising disconnection for one day in return for downloading my application. Recently added such an opportunity, so there are no statistics on transitions and installations yet.

PS If you are not greedy and you have interesting questions on any of the programming languages, or you find errors in my questions, write, be sure to add yours and fix yours.

Also popular now: