I'm ganna be a Rails engineer

未経験からRailsエンジニアへの道のり

未経験から内定頂いたよ。- 本音の就活編 -

この記事のコンセプト

 

とにかく本音で書きました。

よくある就活必勝法だとか、面接テンプレートとかもう、うんざりですね。

まぁ、この記事もなんの参考にもならない人の方が多いかと思います。

こんな人もいるんだなの中に少しの共感があったら嬉しいです。

※いつの間にか内定を頂けた会社の虜にさせてしまうかも知れません。

 

 

 

お前は誰だ?

確かにそれ気になりますよね。

簡単に言うと、高卒元フリーター現ニートです。

よく言うと、意識、やる気MAX、顔は普通の所謂ぱっと見「好印象気味」な21歳です。

twitter.com

 

見飽きた就活必勝法と現実

「面接テンプレート」みたいなのはウンザリ。

志望動機は何ですか?

うちの社員としてどういった人になりたいですか??

前職ではどういった経験を??

.....知るか!!!

そんなもんは!!こっちは現実「この会社良さそう」な雰囲気から入ったんじゃ!!って思いません??

入る前からそんなもん分かったら今頃フリーターなんざやってないよ。明日の晩ご飯も分からん今日この頃なのに。って本気で思ってました。

本音で言えない自分も情けないですね。

 

何社受けたの??

数えてない。

数えてる???

時々Twitterで応募⚪︎⚪︎件、一次通過⚪︎⚪︎件、内定⚪︎⚪︎件です!を見かけるけど本当に凄いと思う。自己管理すごい。

自己管理できん奴めなんて思わないでください。きっと関係ないよそれとこれは。

 

面接対策は?

あんまりしてない。

特に面接で話す内容。

こう聞かれたらこう返す。正直言うと、本当にバカバカしくてやる気にもなれなかった。

もう、そういうスタイルの面接をする会社は合わない前提で逆に気楽に自分の素を出そう。と割り切って挑んでました。(案の定落ちる)

ゆういつ力を入れたことは、ホームページ、会社の記事、ブログには死ぬ気で目を通しました。

興味を持ったことは事実だし、話す内容をテンプレート化していない以上話すネタをたくさん持つことは最も良い必勝法だと思うからです。

要は、内定後のことが大事であって、無理に自分を作って入社できても素で仕事できないよねってこと。

 

じゃあ内定いただけた会社は??

良いことを聞いてくれた。(自分で書いてるんだけどね。。)

「衝撃を受けた」が第一印象でしたね。

理由はつあります

1.挨拶してくれるじゃん。。

2.面接フレンドライクミーじゃん。。

3.採用ガチじゃん。。

4.本気で世界1目指してるじゃん。。

意外とシンプルかも知れませんが僕にとっては衝撃でした。

まず挨拶。

するの当たり前だけど、当たり前のことできるってすごくない??

なんか気持ちいいよね。一次面接前にここに絶対入社するって誓った瞬間だった。

次に面接。

前振り散々したけど、一切堅苦しいことはしない。お互いの素を引き出す為に楽しいトークみたいな感じだった。話してて楽しかったし、素の自分で話せるからより良さをお互いに知ることができた。なんて良い会社なんだ。絶対入社してやるLv120。

次に採用のガチ度。

本採用までにエンジニアの場合、1次→2次→エンジニア選考(約1ヶ月)→最終面接

と本当に慎重にみる。要するに難易度も高くなるわけだ。

俄然やる気がでる。絶対入社してやるLv150。

次に本気で世界1を目指している。

掲げる想いと結果が伴っている。また最終面接の際の面接官が最後、

「本気で世界1を目指してるけどやれるか??」

と、本気の目で質問してきた。

動物園のライオンよりその瞬間は怖かったけど負けじと「やれます!!」といったね。

世界1位を目指す会社の一員で戦えるほど光栄なことはなくないか???

志望動機なんぞもうはっきりいってどうでもよくなっていたのかも知れません。

 

最後に

未経験から内定をもらうのは簡単ではありません。

でも、どこでも良いかと言われたらそうではありません。せっかく必死こいて勉強したんだからその想いを捧げる会社ぐらい自分で選んでやる。ぐらいの気持ちで挑んだ方が良いと思うのです。

楽しいものではありません。僕も大変で辛くて食べ過ぎて太りました。

自分を見失わず頑張ってください。

僕は応援してます。上からですいません。

 

会社概要

世界一になる会社。本気です。

www.ga-tech.co.jp

 

 

 

 

完全未経験から半年でRailsエンジニアとして内定を頂いた話(学習編)

はじめに

こんにちは山口聖也と申します。
2020年2月3日をもちまして晴れてエンジニアとして内定をいただく事ができました。
ここまでの道のりは正直過酷なものでした。「不安」「焦り」色々なものが襲ってきた半年間になりました。
そこで、どのような手順で内定まで行き着けたのか書いてみました。
疑問点、追加でもっと詳しく聞きたい方は僕のtwitterにDMをいただければ対応できますのでお気軽にお願いします。
twitter.com

対象者

僕と同じく未経験からWebエンジニアになりたい方、もしくは既に動き出している方に参考になると思います。
人それぞれ状況、ペースは違いますので一個人の意見として参考にしてもらえると幸いです。

前置き

僕自身プログラミングスクール(ポテパンキャンプ)に3ヶ月間通いました。しかし今回は、取り組んだ内容をまとめる為詳しくは触れません。
気になった方は是非調べてみてください。
camp.potepan.com
以下に僕の学習の流れを記載します。(後から詳しく説明していきます)

7月 ~ Progate & Rails Tutorial ~

一番はじめに手をつけたものは「Progate」です。
「解説スライド」とコードを打ち込む「演習」がセットになっている為、初心者にとってはプログラミングに触れるという点では非常に良いと思います。
僕が取り組んだ項目は以下になります。(Rubyの場合)

最低でもこの項目は一通り取り組むと良いかと思います。(後から役に立つ)
このProgateを取り組むにあたり重要なことは
やりすぎないこと」です。
やればやるほどわかった気になれます。ゲーム内レベルも上がります。しかし、やっていることはドラクエでいう永遠にスライムを倒してるだけにすぎないのでこんな感じでやるんだなと分かればそれで十分です。

次に取り組んだのは「Rails Tutorial」です。
スライムだけを倒していたあの頃と比べると比になりません。
そうです。なんでこんな難しいのって感じになります。
しかし安心してください。みんなそうですし、みんなクリアします。
ここで重要なことは
絶対に2週以上はする」「学習の間を空けない」ことです。
理由は1回じゃ流石に覚えられないし長いから早い事やらんと忘れる。(人間だもの)
ですので

  • 1週目
    • とにかく完走することを目指す(動画解説でも言ってる)。(理解度40%)
    • こんな感じで開発をしていくんだなと掴む
    • 分からん箇所は常に記録しておく(2週目で役立つ)
  • 2週目
    • 完走より理解することにフォーカスする(理解度80%)
    • 1週目で分からん箇所を潰していく
    • 開発者の気分でやる(気分だけでも)

この流れでやればやり切った後に、理解、達成感、さらなる向上心が獲得できます。
ちなみに、動画解説は高いけど本当におすすめです。挫折するよりまし。内定もらえないよりまし。なんでもいいので自分に理由つけて買いましょう。本当に買いましょう。
railstutorial.jp

さて、ここで一息ついてる時間はありません。
休んでる間にまた1人、未経験から内定を貰ってるかもしれない。先に進みましょう。

時間でまとめると
Progate(約2週間) + Rails Tutorial(約2週間) = 約4週間
となります。

8月 ~ インスタグラムクローン ~

次に取り組んだのは「インスタグラム」のクローン作成です。
目的は、Rails Tutorialで身につけた知識の実戦だと思ってください。
これがまあできないできないいざやってみると。。
まあ、最初はそんなもんだな。と自分に思い込ませましょう(気楽に気楽に)
見直しながら、苦戦しながら取り組むことでスピードも上がっていき
だんだんスラスラ書けるようになってきます。
ここで重要なことが
プラスの機能を追加する」ことです。
例えば、

  • Facebookログイン機能
  • パスワード更新機能

などなど。Rails Tutorialには無かった機能を自力で追加していく事で「ググる力」「自走する力」が付いてきます。

作成時間は2週間ほどです。

次はいよいよ自作アプリ(ポートフォリオ)作成です。
今まで得た知識を存分に発揮できるよう頑張りましょう。

8月後半~10月初旬 ~ ポートフォリオ作成 ~

ポートフォリオを作る上で重要だと感じた事は以下4点です。

  • Rails Tutorialの機能だけでなく+した機能を追加する
    • ぶっちゃけ誰でも作れてしまうし、この人やる気あるんかと思われがち
  • UX/UIを気に掛ける
    • 採用する側も人です。当然第一印象、使いやすさが大事
  • テストをできるだけ書く
    • やはり開発をする上で必要不可欠なこと
  • デプロイはAWS
    • herokuより「お??」と思ってもらえる。

以上4点を踏まえて一言で大切なことは
自走能力を証明」することです。
自分以外にもライバルがいる事常に頭の片隅においてください。挫折している暇はありません。(ちなみに100回ぐらいなりました。)

Rails Tutorialの機能だけでなく+した機能を追加する

Rails Tutorialに毛を生やした程度では、ガイドラインに沿ってコードを写経しているだけですので、自走能力を証明できません。
最低でも(投稿サイトの場合)

  • 記事一覧表示機能
  • 記事詳細表示機能
  • 記事投稿機能
  • 管理ユーザー登録機能
  • 管理ユーザーログイン機能
  • 画像投稿機能
  • DBテーブルのリレーション機能
  • DBトランザクションの制御機能
  • ページネーション機能
  • 単体テスト
  • 統合テスト

の機能+自分自身であったらいいなと思う機能を追加してみてください。
なんか知ったかぶり感が満載ですが、こちらの動画を参考にしております。
www.youtube.com

UX/UIを気に掛ける

採用側は、おそらく一人一人に割ける時間は多くはありません。
人の第一印象は0.3秒で決まる(確か)のと同じように、ポートフォリオにも「第一印象」があります。
そこで重要になるのがデザインと使いやすさです。
ぐちゃぐちゃな見た目は相手に一瞬でマイナス評価を与えますし、使いにくさも同様です。

  • みやすいデザイン
    • 各コンテンツの配置、色など
  • 操作性の良さ
    • ログイン機能もありつつゲストログイン機能も搭載など

意外に見落としがちなポイントですが、自分が採用側だったらどう思うか??
を意識することで解決に近づきます。

テストをできるだけ書く

開発をしていく上で大事なのはテストをかける事です。
完璧に書くのは未経験の時点では不可能です。自分もそうでしたし、きっと採用側もそう思っています。
大事なのは「こんなに頑張って書いたぞ!!」の誠意が見えるぐらいの質にしましょう。
Rails Tutorialではminitestを用いて記述しましたが、ポートフォリオRspecを用いましょう。
色々なサイトを参考にするのもいいですが僕がお勧めするのはこちらの電子書籍です。
leanpub.com
詳しく対象者がRails Tutorial修了者になっていますので、問題なく読めるかと思います。
こちらで学習を進めながら単体テスト、統合テストをできるだけ多く書くと良いと思います。

デプロイはAWS

herokuは大体の人が用います。
採用側からすると、herokuかとなる事もあります。(一部では)
そこで難易度は一気に上がりますが、AWSを用いてデプロイを行いましょう。
参考にしたサイトはこちらです。
qiita.com
デプロイまでの道のりは容易なものではありませんが大変わかりやすくまとめられています。
僕の場合ポートフォリオ制作で一番苦労した点がここでした。
一週間以上エラーで本番環境に画面が出力されませんでした。。
しかし、やればできます。やらなければできません。ただそれだけです。(今だからこそ言えてます。当時は絶望でした。)

参考まとめ

学習、ポートフォリオ制作にあたり参考、活用させていただいたコンテンツをいかにまとめておきます。

  • Progate

prog-8.com

railstutorial.jp

leanpub.com

  • AWSデプロイ

qiita.com

  • 参考YouTuber

www.youtube.com

  • オンラインサロン

kentakatsumata.net

最後に

今思い返せば、やってよかったなと思えますが、当時は本当になれるのか不安もあったし、挫折しそうにもなりました。
しかし、いつか絶対内定を勝ち取るんだという強い意志だけは持ち続けたことが大きな要因でした。
皆さんも、同じ状況、もしくは、これから始めるかただと思いますが、諦めず続けることができれば必ず達成できると思います。
思い返せば、いい思い出になります。頑張っていきましょう。

タピオカから学ぶオブジェクト指向プログラミング入門

あっという間に12月になりましたね。

今年に入りプログラミング学習、転職活動という事で凄まじいスピードで時が過ぎ去って行きますね。
あと1ヶ月気を抜いてはならん!!という事で今回は
オブジェクト指向プログラミング入門』をタピオカクラスを使って学習してみました!!!

はじめに

今回の学習にあたり我らが伊藤淳一さんの動画を参考にしました。(勝手に尊敬させていただいてます)

参考の動画と違う点は2つございます。
1・たい焼きではなくタピオカ(流行ってるからしただけ)
2・テストは書いてません(TDDの方がいいぞ)

へなちょこですので物足りない方はたい焼きの方がいいです。美味しいしね。

twitter.com

www.youtube.com

構成

今回はタピオカという事で注文時にありそうな物をクラスの中に入れてみます。

#タピオカ

#1・飲み物の種類

#2・トッピング
  #:種類によって値段変動

#3・サイズ(S, M, L)
  #:サイズによって値段変動

#4・氷 (少なめ、ふつう、多め)

#5・砂糖 (少なめ、ふつう、多め)

#6・合計料金

STEP1

タピオカクラスを作りインスタンス変数に必要な要素を入れます。

class Tapioca
  attr_reader :juice, :size, :topping, :ice, :suger
  def initialize(juice, size, topping, ice, suger)
    @juice = juice #飲み物の種類
    @size = size #サイズ
    @topping = topping #トッピング
    @ice = ice #氷の量
    @suger = suger #砂糖の量
  end
end

tapioca_1 = Tapioca.new('黒糖ミルクティー', 'S', 'ミルクフォーム', '少なめ', '多め')
puts tapioca_1
tapioca_2 = Tapioca.new('黒糖ほうじ茶ラテ', 'M', 'タピオカ倍増', '多め', 'ふつう')
puts tapioca_2

この時点で出力しようとしても

#<Tapioca:0x00007fe4868ab1b0>
#<Tapioca:0x00007fe4868aafa8>

このようにうまく出力されないので
to_sメソッドを上書きします!

STEP2

def to_s
    "飲み物: #{juice} | サイズ: #{size} | トッピング: #{topping} | 砂糖: #{suger} | 氷: #{ice} "
end

こんな感じにto_sメソッドを上書きすると

飲み物: 黒糖ミルクティー | サイズ: S | トッピング: ミルクフォーム | 砂糖: 多め | : 少なめ 
飲み物: 黒糖ほうじ茶ラテ | サイズ: M | トッピング: タピオカ倍増 | 砂糖: ふつう | : 多め 

受け取った情報を出力することができました!!

STEP3

次にトッピングやサイズによって値段を変更するプログラムを書いていきます。

  #ミルクフォーム  = +30円
  #タピオカ倍増   = +50円
  #コーヒーゼリー  = +70円

  def charge
    amount = 550
    if size  == "S"
      amount -= 150
    elsif size == "L"
      amount += 100
    end
    if @topping == "ミルクフォーム"
      amount += 30
    elsif @topping == "タピオカ倍増"
      amount += 50
    elsif @topping == "コーヒーゼリー"
      amount += 70
    end
    amount
  end

ふつうサイズのトッピング無しの値段を550円とします。
そしてif文で各サイズ、各トッピングの応じて値段を追加し最後にamountで出力させるようにします。

次に先ほどのto_sメソッドに料金を追加します。

飲み物: 黒糖ミルクティー | サイズ: S | トッピング: ミルクフォーム | 砂糖: 多め | : 少なめ | 合計:  430飲み物: 黒糖ほうじ茶ラテ | サイズ: M | トッピング: タピオカ倍増 | 砂糖: ふつう | : 多め | 合計:  600

どうでしょう。
このようにするとクラスの中のタピオカの『注文設計図』なるものから具体的な注文の内容を作り出すことが出来ました。

このようにクラスとは設計図みたいなもので、具体的な物を作る上でひいつようになってくる物なんですね。

最後に

今回は簡単に自分なりに作りながら学習しました。
1つ大事だと思うことはただ見て理解するだけで終わらず、少し変えるだけでもいいので自分で形ある物を作ってみると頭に残りいいインプットができると思います。
それではみなさんあと1ヶ月気を抜かず頑張りましょう!!

面接は技術よりも勘違いさせる力が重要かもね ~「イケメン」か「ブサイク」か~

お久しぶりです。
サボっていたわけではありませんと言いたいところですが少しサボっておりました。

と言うわけでタイトルにもある通り今回は
『面接においての勘違いさせる力とは』について書いていきます。
他の方達の面接対策とは少し違った視点なので参考になると思います。

前提

これは僕が最近読んだ
『人生は、運よりも実力よりも「勘違いさせる力」で決まっている』
と言う本を参考にさせて頂いております。
今回は面接に活かせるであろう事を自分なりに完結にまとめました。

人生は、運よりも実力よりも「勘違いさせる力」で決まっている

人生は、運よりも実力よりも「勘違いさせる力」で決まっている

錯覚資産て何よ?

結論から言いますとズバリ
『人々が自分に対して持っている、自分に都合のいい思考の錯覚』
及び、それを引き起こす事実のことです。
........よくわからんわ。ってなりますよね。

イケメンかブサイクか

さて先ほどの説明では理解出来なかったと思いますので、例をあげて説明していきます。
登場人物は2人です。

①清潔イケメンの人
②ブサイクな人

話している内容は全く同じ事にします。

この場合、圧倒的な確率でイケメンの人が面接に通るのです。
ここで重要なのが通った理由は単純な
イケメンだったから』ではないと言う事です。
じゃぁなんだよって思いますよね。

本当の理由は
イケメンだし清潔だしなんだか仕事出来そうだ』と思わせたからです。
つまり何が言いたいかと言うと、イケメン仕事ができるは全くもって繋がりがないのにも関わらず、たとえブサイクの人の方が仕事ができていてもそう勘違いされてしまうという事です。
これこそ『錯覚資産』なのです。

は???見た目が全てってことか??舐めてるのか??と思われてしまうかもしれませんがこれはいくら面接感の方がその仕組みを知っていたとしても無意識のうちに頭でそう解釈してしまうものだと、筆者は語っております。

結論

僕自身も含め未経験から今まさにエンジニアへ転職を目指す上での最後の難関は面接の場だと思っております。
そこまで学習してきた事、技術はもちろんとても重要です。
しかし、それ以上に大事なのは相手にいかに勘違いをさせるかが重要だと考えています。
これは嘘をついて騙し良いように見られろとは言っておりません。
技術の印象をより持たせるためにまずは
『お?????』『なんか仕事できそうだぞ???』と思わせることがとても重要だということ。
その上で、技術とか今までやってきた事を話す事でより高評価に繋がると思います。

最後に

なんか薄い内容になってしまった感は否めないですがこれは参考にさせていただいた書籍の1%ほどの内容です。

僕自身も未経験からエンジニアを目指しております!!
皆さんも一緒に頑張りましょう!!