How I became a Junior Ruby Developer
I worked my way from "I know almost nothing about web-development" up to "I make money on it" in 4 months.
At the end of 2015 I gave a serious thought to changing my profession, I was 25 back then. For the last 6 years I had been working on a funny, well paid but completely mindless job.
My choice fell on programming → Web → Ruby on Rails. I am not going to explain why, I was googling this subject a lot and choosing what would be more interesting for me and more suitable for my career.
My skills at that time were: HTML and Pascal at school, a couple of labs in C in my first year at the institute (I was training to be an energy worker). I had finished the institute, but had never become an energy worker.
In this article I will try to specify what I have been doing step by step in order to as fast as possible gain knowledge and skills enough for getting a job as a Junior Ruby dev. Looking ahead, I will say that after 4 months I attended 3 interviews and got all 3 job offers.
I hope that this little guide will help you work your way from a beginner up to a junior.
First month - was getting acquainted with HTML, CSS, RUBY.
The first and the most valuable thing I read about Ruby on Rails was a very little book "Self-study of a web-developer". You can get it completely free here. I returned to it a lot while studying. That's a great book to start with.
At that moment I was still working at my previous job. The first thing I decided to start with was to refresh my school memories of HTML and get acquainted with CSS. Several hours a day I was studying at HTML Academy. The basic HTML and CSS course was free there. It was not necessary to complete a course, so I completed about 85%.
Then I got acquainted with Ruby. It's hard to imagine a language more beautiful and expressive.
- a very cool textbook – «Learn to Program», Chris Pine. It gives a great introduction to Ruby: https://pine.fm/LearnToProgram/
- Then validating our knowledge on https://en.wikibooks.org/wiki/Ruby_Programming. Reading these books, complete all the tasks given.
- Now is the time to practice Ruby. Write methods on https://www.codewars.com;
- Also, I recommend you to complete tasks on Mind Games in order to wake up your analytical abilities. A great way to take your mind off programming usefully.
The second month – Trying Rails
I got so engaged in learning programming that decided to quit my job and devote all the time to study. I was almost 100% sure that in several months I would find a job again. In case of emergency I could always get back to my previous job, which I didn't want to do, of course.
Now we know enough to get acquainted with Ruby on Rails.
At this stage we need to deploy all the operational environment. That is – OC Linus (I installed Ubuntu) or MacOS (you will have to say goodbye to Windows, but you can have 2 OS at the same time and choose which one to load), Git, RVM, Ruby, Rails, code editor (I chose Sublime). Google how to install everything and set up last stable versions.
Google the information you don't know – it should become one of your basic skills.
Now we can continue:
- The best way to try Rails is to pass this short introduction. That's a great way to touch Rails and to start understanding the structure of an application;
- After that I advise you to pay close attention to screencasts on hasBrains. There you can find some great lessons on Ruby, Rails and Linux for beginners.
- Now is the time to pass the legendary tutorial on Rails from M. Hartl.
I recommend you to ignore everything concerning Tests (TDD) in the last tutorial. The tests will only confuse you at this point. Focus on writing and, more importantly, understanding the code of the application itself. We will learn to write tests a little bit later. In the end you will have a working application.
During the study, and as a break, choose subjects you are interested in and look through the posts. Experienced programmers share their experience and answer the questions there. They discuss a lot of different subjects. It's very useful for beginners.
The third month – working with a mentor
We have already made a good progress in studying, but lack the practice of writing our own code. Not the one we wrote by tutorials but particularly our own. From the ground up to the working application on server. My study with a mentor on mkdev.me helped me here. This turned out to be the strongest contribution to my self-study. And this was the very code my employers looked at before inviting me for an interview. Good experience of writing proper code + learn to test. These studies took a month.
After the course I strongly recommend you to look through this (russian only) book "The World of Rails". It turned out to be very useful for me. The book is written for beginners in Rails and has an excellent presentation of the material.
If you are looking for an english book for very beginners, then grab our free bookSelf-education for Web developers
All in all, during the study, I recommend you to review the materials you read before because sometimes the moments you didn't understand become more clear.
The fourth month – getting a job
Now is the time to prepare a resume and send it to employers. Don't forget to add the link to GitHub with your project. I left responses + short transmittal messages to hh.ru vacancies. Not only junior vacancies but just Ruby on Rails vacancies. Believe me, a lot of employers need smart Junior Ruby developers, even without any business experience. You can also search for vacancies directly – on companies' websites.
I left responses in my town - Novosibirsk, and also in other towns, with a mark that I consider options of remote work.
From time to time vacancies for juniors appear in this Ruby on Rails google-group and on Ruby Jobs.
Now is the time to prepare for the interview and tighten up your theoretical knowledge. Google something like: "interview junior ruby" Make sure that you have a basic knowledge of: OOP paradigms; how networks work; HTTP, TCP, IP protocols; what DNS is; how relations in DBMS work, how to write simple SQL queries, how and what for indexes in DB work; what the basic data structures are – hash-tables, lists(arrays), graphs. Questions on all of these topics were in my interview.
Start reading engineering books:
Learn Ruby more deeply. The Ruby Programming Language — a great book from Ruby creator - Matz.
I also didn't mention that a programmer needs to know English. But I guess everyone already knows it. Here are some of the books I am reading right now:
- https://www.amazon.com/Refactoring-Ruby-Addison-Wesley-Professional/dp/0321984137
- http://www.confidentruby.com/
- https://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452
I started to receive invitations to interviews a week after I have left responses. One was by Skype in Moscow start-up, two – in the offices of large companies in Novosibirsk. I received one invitation in a couple of days, one in 10 days and one, after completing a test task - in 2 weeks.
I am sure that: after good self-study and work with a mentor you will soon be able to find a job as a junior ruby developer, Don't hesitate - go ahead, and may the luck be with you!