[RAILS] Story from inexperienced x self-study to becoming an engineer of a web-based in-house development company

Introduction

After graduating from university, I worked for an automobile parts company for 2.5 years as a mold designer. I started self-study in April 2020, and about 6 months later, I was able to get a job offer from a web-based in-house development company. We will share the learning situation up to the job offer and the experience of changing jobs. Low deviation value University, useful skills or no qualifications, even I with a turnover period of 15 months was quite good, so I hope it will be helpful for those who are starting to study or who are in the process of changing jobs.

table of contents

  1. Why did you aim to be an engineer?
  2. Goals set at the start of learning
  3. Skill set when changing jobs
  4. Information gathering method
  5. Learning materials & amount
  6. Learning & career change activities
  7. Reflections
  8. Summary

1. Why did you aim to be an engineer?

I think this part is the most important. I had no goals in my previous job, and I retired because I somehow became a major player. I think that everyone has the feeling that they can earn money individually and that they can work remotely, but if you start only for that reason, you are more likely to be frustrated or have a hard time changing jobs. There are many other things you can do if you just want to make money in your free space and time. I think the original idea is to decide the goal (or ideal lifestyle) you want to achieve in your life and select a company as a means.

In my case, I got the following three points.

  1. You can create a service that can support people who change jobs or take on new challenges.
  2. You can provide the value you have created to many people through the Internet.
  3. You can go around with more choices in the future.

Between the ages of 1: 23 and 24, I was keenly aware that the options I didn't choose now may not be the next moment, and I was able to significantly update my values. This experience has made me want to help those who take the next step. 2: My previous job was to think that few people were aware of the parts I created from among the tens of thousands of automobile parts, and I wanted to be involved in software products that can be delivered to many people. 3: The merit of Web engineers is just right. Demand, skill portability, work style flexibility etc ... (strongly influenced by my first experience)

The most rational and realistic option to achieve these was to change jobs to a web engineer.

2. Goals set at the start of learning

I planned to make Portfolio by referring to this video. The following are specific languages and technologies.

・ Basic knowledge about IT, Linux, SQL ・ HTML5 / CSS3 (Sass) / Bootstrap markup ・ JavaScript (Jquery) front end ・ Ruby / Rails backend ・ AWS (VPC / EC2 / RDS / Route53 / ACM / ALB) infrastructure ・ Docker / docker-compose environment construction ・ CircleCI (CI) automatic test

Before learning, I didn't know much about AWS, Docker, and CircleCI. I found it difficult to understand the benefits and learning costs from this stage, so I started running by incorporating it into the plan for the time being.

3. Skill set when changing jobs

In addition to the above, I learned the following from lack of knowledge. Git/Github、Vue.js

For job change activities, I used two points, Portfolio (Rails) and SPA (Vue) for self-introduction.

4. Information gathering method

Twitter (for engineers) YouTube (Kenta Katsumata, Web Manya, Kohei Kurokawa, etc.) Google (Qiita, Teratail, Stackoverflow, etc.) Omnivore online salon

Information gathering is very important, so we recommend using Twitter or an online salon. If you can connect, you will be less likely to be frustrated, and you may be able to evaluate the sponsorship and participation of the Mokumokukai at the time of selection.

5. Learning materials & amount

I referred to this video.

Progate (4 months x 1000 yen) Dot install (1 month x 1000 yen) Udemy (Rails: 1200 yen, AWS: 1200 yen, Docker: 4500 yen, Vue.js: 1200 yen) Rails tutorial (free) Youtube (free) Paiza (Free * Coding test measures) AWS (2 months x 2000 yen) Online salon (3 months x 1000 yen) Wantedly Premium (1 month x 3200 yen) MENTA (2 months x 10,000 yen) Kitami style illustration IT school basic information engineer (1000 yen) Linux standard textbook (1200 yen) Introduction to JavaScript "super" to acquire certain power ("super" introductory series to acquire certain power) (1000 yen)

I forgot about the consumption tax and details, but the total cost was about 46,500 yen.

I felt that the most efficient way was to hold down the basics with Progate and dig deep with Udemy. I used to google for the parts I didn't understand and use books instead of dictionaries. Udemy frequently sells 90%, so it's a good idea to buy it at that time. Books can be bought second hand at Mercari. Technical books are reasonably priced.

Schools cost hundreds of thousands, so I feel that the low cost is an advantage. There are services like MENTA now, and I think you can look for a mentor on Twitter etc. It's better to spend some money (I think my amount is higher) as it will be inefficient if you do it completely alone.

6. Learning & career change activities

April it basic knowledge, linux, html5/css3、javascript I skimmed the Kitami-style illustration IT school and Linux standard textbooks with the intention of suppressing the basics, and proceeded with two books in a week. I thought that it was super fun to proceed with progate as the center and HTML and CSS. I still remember the excitement when the code I wrote for the first time was displayed in the browser. I was frustrated by the JavaScript I studied after that. .. ..

May ruby/rails、git、sql I also learned Progate week by week and did the classic Rails tutorial for a week. Git and SQL were fine, but Rails jumped in difficulty. I remember rubbing my sleepy eyes and making progress. From around this time, I became accustomed to writing Qiita and tried to deepen my understanding through the output.

June portfolio creation started At this stage, all the input was completed, so I started creating Portfolio in Cloud9. I made a community creation service. See Github for details. Refer to here We designed the service definition to release with Cacoo. (I haven't designed Controller, Model, Gem) For some reason, I was confident that I could create the service that I wanted. .. ..

There are many things that do not go as planned once you actually start creating services! !! Lol Anyway, it was a repetition of trials and errors. Often I don't know what I don't understand. I keep writing code crazy, and when I notice it, it's morning. I finally started to actually deploy the completed Portfolio (the real hell was from here ...)

July aws/Study docker, build portfolio infrastructure I've experienced how to proceed with Heroku and Xserver, but the current trend is to use the cloud. I'll deploy it right away! I started studying with enthusiasm, but I had a hard time understanding what to do when I saw various books, articles, and videos. Udemy's this video somehow made me understand, this article I started to deploy my service on a large AWS land, referring to (: //qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce).

However, the reality is not so sweet, and even though it should have been created with the correct operation, only an error screen is displayed. .. .. It was not uncommon for a day to pass without any progress.

I made a hypothesis from the ruthless error sentence that was displayed, and steadily repeated searching and re-studying to solve it. No matter how much I moved my hand, I ended up solving it with just one operation. However, I felt that the only way to get there was to spend a huge amount of good time.

I managed to access Https with my own domain, and next I tried to install Docker. At first, it was a pain, but once I understood how to use it and its merits, I found it very convenient because I could manage the environment with code.

Also, my unemployment period was so long that my relationship with my parents began to get messed up, which made studying at home awkward and I was in Gust almost every day in July. Lol From 9:00 to 23:00, I thought that I was a really annoying guest in the Corona disaster, and I am full of gratitude and apology. The rice was the best.

Late August Start of job change activities With that, I used Docker for the development / production environment, carried Portfolio that became accessible to Https with my own domain, and started job change activities at Wantedly. The details of the application are as follows.

** Apply for 70 companies → Reply for 10 companies (Pray for 7 companies, interview with 3 companies or screen documents) **

Only two companies proceeded to the interview, and both the primary interview and the skill check failed. I thought it would be bad as it was, so I decided to improve Portfolio and correct Wantedly's text.

September circleci, portfolio new features added We suspended job change activities and strengthened Portfolio. Addition of CircleCI and functions (administrator user, notification function, Rubocop, test addition) In addition, we changed the text of Wantedly after receiving advice from a person who received an offer from an in-house developed company and an active engineer.

Late September Vue.Study js, create self-introduction SPA


 In parallel with studying Vue.js, I resumed job change activities.
 Create a SPA by referring to [this teaching material](https://www.udemy.com/course/vue-js-complete-guide/learn/lecture/15371624?start=15#content). It took 2 days to study, 6 days to produce, and a total of about 8 days.
 This is the [SPA for self-introduction](https://my-portfolio-998ce.web.app/) created.

```First half of October```
 From the companies that applied at the end of September, we received a job offer from an in-house developed company.
 The application results after the portfolio improvement are as follows, and it was effective to some extent.

 ** 115 companies applied (5 companies directly applied) → 35 companies replied (20 companies prayed, 13 companies interviewed or document screening, 2 companies replied directly (missing documents)) **

 Due to the hardships so far, I think that no company can be wasted, so be sure to read the company's website before the interview or interview, summarize the company's business and culture on A4 paper, and make a preliminary statement. I prepared a question for you.
 In particular, at the final interview, I read the company's blog and thoroughly investigated it.
 In the reverse question, I chose the words to convey what I had prepared in advance. Since it takes a lot of time, please allow me to make some calculations within a range that is not unnatural. Lol

 Also, during the interview, I was careful not to have a one-sided conversation as much as possible. If you are a company that has studied a lot and is motivated to join the company, you will talk too enthusiastically, but if you leave a margin, the other person will ask you questions. I thought that the important thing was to guide the other person to what he wanted to talk about (it is also compatible with the other person, so that is flexible).

 For the interview, I referred to [this video](https://www.youtube.com/watch?v=b1_v0PkprC8).
 The companies that were finally offered an offer were evaluated for the following points.
 ・ Attitude toward technology
 ・ Communication skills
 ・ Reading 5 books a month
 ・ Continuous output to Twitter and Qiita
 ・ Ability to study abroad after leaving work, host and participate in Mokumokukai, etc.

 Looking at Portfolio of other people who are changing jobs or those who have already changed jobs, works with functions and uniqueness that can be operated as an actual service, Capistrano, ECS / ECR, and even Terraform are implemented Some people are doing it. .. ..
 I was able to change jobs at my level, but the engineer job became popular, and I felt that the difficulty of changing jobs was quite high in combination with Corona.
 I think I was lucky to get a job offer.

## 7. Reflections
 Looking back on self-study / reincarnation, I thought I should have done it.

 ――Create a highly unique Portfolio
 It is best if it is a service that can find and solve problems.
 This is a trade-off because the service you like is more motivated.

 -Insist on the Top design of Portfolio
 The first look can make a big difference. Let's imitate a cool design with Piterest etc.
 If you're not good at CSS, you'll have a hard time, but if it looks different, you'll be motivated.
 If possible, we recommend using something other than Bootstrap.
 If it is a CSS framework, I think it would be best if the front could be configured with Vue or Nuxt such as Bulma.

 -Create a portfolio
 As you can see from the response rate in the first and second half, the higher the portfolio level, the better.
 I made it to some extent on a due date basis and proceeded to the next step, but I recommend that you make it until you are satisfied.
 There is also a balance with time, so the area is well-balanced.

 ――Do not do multiple difficult things at the same time
 For example, you can install Docker and deploy AWS at the same time.
 Even if you study with reference books and articles, the prerequisites (OS, language / FW version, Gem, etc.) are different, so there is a high probability that unexpected situations will occur.
 It will be difficult to identify the problem, so it is safe to prevent it to a size that can be solved.

 ――Be aware of team development and use GitHub's pull request appropriately
 The Rails tutorial won't tell you, but let's develop with practicality in mind.
 It seems that the past history is also seen as surprising. It will take a lot of work, but I think it is cost-effective.
 You may recruit friends on Twitter or online salon to develop a team.

 --Invent the Wantedly text
 It is not a spec-pride tournament. Show what the benefits of hiring yourself are.
 Also, I've heard that companies with many applicants only see one document for about 10 seconds.
 I think it is effective for you to be interested in writing technical keywords that show what you have studied and eye-catching material at the beginning.

 --Prepare for coding test
 There are a certain number of companies (more than half of the experience).
 If you don't get used to Paiza or Letcode, you will get stuck.

## 8. Summary
 It's been a long time, but it's been my half year.
 I don't know how many times my heart broke and tried to give up on becoming an engineer.
 Even so, I think I was able to continue because there was something I really wanted to do ahead of the engineer.

 It's hard to say that anyone can become an engineer by studying.
 ** However, I think I could prove that it is possible to become an engineer "if I can complete it with a determined determination and a correct learning process." ** **
 Of course, this is not the goal, but I want to work positively on everything with the feeling that I have finally reached the starting line.

 I love people who are proud of what they are doing and are working towards their goals, not just engineers!
 We sincerely support those who are starting to study, those who are working hard in portfolio making and job change activities!
 I hope this article helps you a little.

 Since I decided to become an engineer, I have been supported by many people so far.
 I'm really thankful to you! !!

 I also do [Twitter](https://twitter.com/Fumy72676433), so I would appreciate it if you could follow me.


Recommended Posts

Story from inexperienced x self-study to becoming an engineer of a web-based in-house development company
27-year-old story of becoming a development engineer from inexperienced programming
What an inexperienced self-taught engineer felt after working part-time for two months at a web-based in-house development company
Story from inexperienced x self-study to becoming an engineer of a web-based in-house development company
From inexperienced, I was able to change jobs to an in-house developed company even with Corona
A story about a 28-year-old local government employee who succeeded in changing jobs to a web-based in-house development company 8.5 months after starting programming
I am studying to change jobs from inexperienced to a web engineer.
A story about changing jobs from a Christian minister (apprentice) to a web engineer
Job change from SIer to Web engineer
How to get an arbitrary digit from a number of 2 or more digits! !!
From inexperienced, I was able to change jobs to an in-house developed company even with Corona
A story about a 28-year-old local government employee who succeeded in changing jobs to a web-based in-house development company 8.5 months after starting programming
A story of connecting to a CentOS 8 server with an old Ansible
It's been a month since I became an engineer from inexperienced ...
I am studying to change jobs from inexperienced to a web engineer.
A story about changing jobs from a Christian minister (apprentice) to a web engineer
Study memo that got a job at an IT company from inexperienced
I will expose the fucking app that I made hard to get a job as an engineer from inexperienced.
How to get an arbitrary digit from a number of 2 or more digits! !!
[Note] What I learned in half a year from inexperienced (Java)
[Note] What I learned in half a year from inexperienced (Java) (1)
[Note] What I learned in half a year from inexperienced (Java) (3)
28th day of an engineer who will become a full-fledged person in 100 days
27-year-old story of becoming a development engineer from inexperienced programming
Story from inexperienced x self-study to becoming an engineer of a web-based in-house development company
It's been a month since I became an engineer from inexperienced ...
Stuck in an enum in front of a blacksmith
A fledgling engineer learned JUnit from the basics
A quick review of Java learned in class
Summary of what I learned in Spring Batch
A quick review of Java learned in class part4
What I learned when building a server in Java
A quick review of Java learned in class part3
A quick review of Java learned in class part2
A story addicted to EntityNotFoundException of getOne of JpaRepository