So you want to become a Ruby developer?



At one time, I was asked to create a Ruby team for a separate Codequest’s unit, which meant that I would become Timlid (hell, yes !!!) and - more importantly, in fact, become the person who is approached by all HR trying to recruit new developers (hmm ...). Obviously, most of these developers were beginners with average knowledge. Approaching each interview, I do not forget that not so long ago I myself was a beginner student sitting on the other side of the table, so I try to be patient, kind and give each candidate honest and useful feedback, even if we decide that he is to us not suitable. Be that as it may, I revealed some patterns - many developers, especially beginners, make mistakes that not only make it difficult to start, but that can be easily avoided if only someone had told them about this before.I myself made most of the mistakes in my time and if someone had warned me about it, although it might have been, I just didn’t listen, it probably would have saved me from many disappointments - therefore, to make someone's life easier, I I’ll try to point out that a beginner (or even middle) can do better if he wants to develop effectively as a developer in the prestigious direction of software development.

GitHub


Everyone in the community knows that your GitHub repository is what really matters to the future employer. Is not it? If you wrote an open source library that people use or have contributed to, yes, that can be a pretty valuable trump card. If you wrote an application, even if it is a training application that solves some of the everyday problems that you have, it can also show your skills. However, if all the repositories you can show are half-completed tasks of other companies that have never been touched in the last nine months, or super-basic Rails, your first “rails new”, do you really want us to see this? Perhaps you are now much better than 9 months ago, damn it, probably it is,but we don’t know for sure and when you send us a link to the cemetery of your code - well, as they say, you have only one chance to make a good first impression, right?

And this applies not only to junior ones - if you had a look at my GitHub repositories, you would have found exactly the same things everywhere - recruiting assignments from past years or some abandoned experiments on nuclear material that I studied in the process and etc. I commit on GitHub every day - but these commits are private repositories, there’s nothing to look at. All I want to say is normal if nothing spawns on your GitHub, but then don’t show it to us.

Ruby


We all love Rails! And we also hate them. And sometimes we love and hate at the same time. Or sometimes one day we love him, and the next day we hate and curse him. However, we all agree that Rails is the de facto standard when it comes to creating web applications in Ruby - it takes a lot of dedication and effort to work in this business and not even touch it briefly (although I met people who claim to have done so). Therefore, it is only natural that when you decide to become a Ruby web developer, you learn Rails. And not good when you learn Rails without learning Ruby!

You might think that this will speed up your progress - in the end, setting up a basic Rails application is very simple - but very soon you will find that you don’t really understand why it works, you will only know that it works, but here is the first simple mistake, and you are already on Stack Overflow, looking for someone who had a similar problem.

Think of it this way - you won’t try to write a book in a foreign language using only Google Translate and quotes from your favorite films, right? The same thing with writing the application - you literally write what should make sense and the better you know the language, the better you can convey the intended meaning and the more effective you become in making sentences - the more sense it makes. When you know only Rails, your vocabulary is limited. And I can assure you that you don’t want to work for a company that needs “limited”, because very soon you will turn into a robot that implements only the basic CRUD functions, which is exciting for, for example, two months, but then quickly bored, like brushing your teeth, you have to do it, you have to do this, but it's not really that,what would you like, right?

I start each interview with a very simple and basic question:

- What is a class in Ruby, what is a module, what are their differences and what are they for?

You would be surprised to know how many people really do not know the answer to this question! And these are people who want to become software developers. All of them can create a blog with posts and comments in minutes - and that’s all. I had one candidate, for the post of mid developer, who claimed to have worked on the client application for a year as the team leader - so he still does not know what the Ruby module is.

Do not be like that. Learn Ruby. There are many resources for this. One of the best I know is The Ruby Reference- Ruby online - a book that refers to official documentation, but is more convenient and readable. Read it, learn it, and feel how your professionalism is growing.

Rails


As mentioned above, let's not forget that Rails is a Ruby framework for writing a web application. There is a great chance that it will become your everyday mainstream tool - so take the hell to understand how it works! Rails Guides is a very accessible and fairly extensive documentation - take the time to read and study it.

Much of what you read will not make much sense to you at first, there are large pieces of material that you will use very rarely, maybe even never, but the very knowledge of it will give you much more than otherwise .


The lessons are great - everyone uses them! However, following someone’s instructions is not enough, remember that the purpose of this tutorial is not to create a working blog with posts and comments, but to teach you how to create your own application. And that’s exactly what you should learn to do as soon as possible. Remember all those moments when you thought "if only I had an application for this!". Or ask your friends and family what application they need the most. It can be anything - a simple task organizer, a wish list, or any other application. My first application was a kind of notebook for my wife's experiments in her laboratory (she is a scientist). I did not finish it, but it does not matter - in this case we are talking about a process, not a result. When doing the lesson,You are dealing with artificially created problems and turnkey solutions. When you create your own thing, you are forced to think about how to build it. You have to find a solution to your problems yourself. I firmly believe that there is no better way to learn how to create than to start creating, because this is what you will do as a web developer. Overcoming difficulties will give you a huge sense of satisfaction, strengthen your confidence and light the spark that makes us sit for hours hunched over the keyboard, only to see the correct JSON or working registration form. This will give you experience and something to show. Your code does not have to be beautiful or flashy - you are a beginner, no one expects you to write an operating system!you are forced to think how to build it. You have to find a solution to your problems yourself. I firmly believe that there is no better way to learn how to create than to start creating, because this is what you will do as a web developer. Overcoming difficulties will give you a huge sense of satisfaction, strengthen your confidence and light the spark that makes us sit for hours hunched over the keyboard, only to see the correct JSON or working registration form. This will give you experience and something to show. Your code does not have to be beautiful or flashy - you are a beginner, no one expects you to write an operating system!you are forced to think how to build it. You have to find a solution to your problems yourself. I firmly believe that there is no better way to learn how to create than to start creating, because this is what you will do as a web developer. Overcoming difficulties will give you a huge sense of satisfaction, strengthen your confidence and light the spark that makes us sit for hours hunched over the keyboard, only to see the correct JSON or working registration form. This will give you experience and something to show. Your code does not have to be beautiful or flashy - you are a beginner, no one expects you to write an operating system!what you will do as a web developer. Overcoming difficulties will give you a huge sense of satisfaction, strengthen your confidence and light the spark that makes us sit for hours hunched over the keyboard, only to see the correct JSON or working registration form. This will give you experience and something to show. Your code does not have to be beautiful or flashy - you are a beginner, no one expects you to write an operating system!what you will do as a web developer. Overcoming difficulties will give you a huge sense of satisfaction, strengthen your confidence and light the spark that makes us sit for hours hunched over the keyboard, only to see the correct JSON or working registration form. This will give you experience and something to show. Your code does not have to be beautiful or flashy - you are a beginner, no one expects you to write an operating system!no one expects you to write an operating system!no one expects you to write an operating system!

But as a person who recruits newcomers, in 10 cases out of 10, I will choose someone with their own code, even ugly and on crutches, and not someone who shows me several applications from training lessons (such as a crossword puzzle).

Mr. Nice guy.


This last item does not apply to one specific level of experience, but essentially to everyone who works in our industry. Everything is very simple - do not be an asshole. Be kind to others. Be helpful. Smile Ask if you don’t know, explain if asked. Do not look down on people if they don’t know anything, because each of us can be in his place, computer science, programming, this is such a wide area that it is almost impossible to be an expert in everything. Recognize that you can learn from anyone, even if they only have a fraction of your experience. Teach others because teaching others is one of the best ways to test what you really know. And accept the fact that if you are the smartest person in the room, you must change the room, because this is the only way to grow and not become smug.Test your knowledge and skills as often as possible. As the common practice in the gym says, “if it hurts, then it grows”, leave the comfort zone, do not stay in it.

If you are also involved in front-end development, be sure to check out the full list of the most common mistakes of beginning front-end developers compiled by our front-end Timlid Petr Kabachinsky.

All Articles