Next, I recommend learning at least the basic concepts of SQL, because DBMS, although they differ from each other, often use the same language.
Here are a couple of resources to get you started:
w3schools – Here you can read, try and test your knowledge of SQL.
Quizful – Here you can find questions that are often asked in interviews.
I believe that it makes no sense to dwell on this point in detail, since this is the topic of a separate article. English is very important and this is a well known fact. I would like to briefly mention two of the most important points.
Firstly, English is the main language of the international community, so most of the useful literature will also be in English, many news, reports and important articles will also appear first in English. If you want to know the answer to any question, it is very likely that you will be able to find it in English first of all.
Secondly, the better your knowledge of English, the more likely you are to find a job. Most of the clients are foreign, therefore, knowledge of English is important for productive communication, a clear understanding of the technical requirements and good contact with the client.
After exploring a few resources, it’s time to move on to the more important part, which is practice. There are a lot of examples of tasks with an online store or a simple blog on the web (here is one of them), especially if we talk about Rails. In the course of completing tasks that are already a little close to real, you will definitely encounter some problems and then move on to training one of the most important qualities – the ability to google. Unfortunately, I was unable to find any tutorial or courses dedicated to this skill, but it definitely plays a very important role in everyday work.
After reading the theory and writing several “pet projects”, you can, of course, try to go to interviews, but it often happens that this knowledge is not enough. This is due to the large influx of candidates, and given the competition, everyone tries to stand out and prepare as best as possible.
Another important point in training, which can be an advantage in your favor when looking for a job, is programming courses. Unless, of course, you have a mentor who is willing to spend a certain amount of time coming up with assignments and reviewing them.
I must say right away that in no case do I recommend going to courses without already having some kind of knowledge base. I see courses as a great way to consolidate the knowledge gained in the process of self-study. And now I’m not trying to advertise any particular school, but I’ll explain exactly what benefits can be derived from this:
With a high degree of probability, there you will learn something that you did not know before. The courses have a fairly large amount of material that is presented in a structured form, which allows you to better assimilate the material.
For the duration of the course, you will have a mentor who will review the solution to your problems and point out weaknesses and mistakes.
At the lesson, you can ask a question of interest to the teacher or classmates, or simply share your experience. Of course, the same can be done at a conference or meetup, but unlike attending conferences, you will have the opportunity to do this more often during courses (usually courses are held 2-3 times a week).
This is primarily for those who need help with self-discipline. Sometimes it is quite difficult to force yourself to do something, no matter what prospects loomed on the horizon. When attending courses, you will have a clear schedule to follow and assignments to complete or you will be expelled. Financial motivation also plays a role here, in the case of paid courses. After all, when you give your hard-earned money, you already have a completely different attitude to the matter, and thoughts of just skipping arise much less often.
Another advantage is the certificate. It is clear that in the end you will be assessed by knowledge, and not by the presence of pieces of paper in your resume. But nevertheless, it will be a plus, especially if there is a candidate with a similar level of knowledge, but without their documentary evidence.
Plus one project on GitHub in your piggy bank. If you are a novice developer, then most likely the project written in the courses will be more interesting in terms of technology than those that were written earlier.
And most importantly, employment. Speaking of courses, I do not mean only those for which you need to pay money. Often, companies themselves recruit for training, so that later they can hire the best. These can be internal courses or internships/internships. This option is the best, since you do not need to pay for anything, you get experience and all the above pluses, and in addition – a real employment prospect. Getting to them is more difficult, but the prospects are more significant.
Ruby is a language that allows you to work without a lot of the inconvenience and ceremony that comes with strongly typed languages. Ruby is easy to get started with, especially if you already have development experience in other programming languages and can quickly prototype with Ruby on Rails. In Japan, where it came from, Ruby was used to making games. Ruby is concise and reads like English, making the code easy to understand for beginners.
As for learning Ruby, I want to reiterate: you need to start small. Read a few books, do a few tasks on your own, and then, if you feel the need to gain more knowledge and experience or additional motivation, you can go to courses already having a certain amount of knowledge gained on your own.
Ideally, these are courses from a company that, at the end, will make you an offer if you perform well. An alternative option is paid courses that will help you consolidate your knowledge, add another project to your resume and gain experience, which is most important at the start. But do not expect that after completing paid courses, you will easily pass the interview by showing a certificate. In any case, knowledge will be evaluated.
At the same time, having enough motivation, patience, abilities and experience with other programming languages, you can easily master Ruby on your own, because there is a lot of useful and well-structured information on the Internet. Also, thanks to the open and numerous Ruby communities, you can easily find answers online to many possible questions that, with a high degree of probability, someone has already asked before you.