新卒で自社開発企業にエンジニア就職

【2週目】テックキャンプ (エンジニア転職)の記録 【精神崩壊】

ノロ

どうも、テックキャンプ (エンジニア転職)卒業生のノロ(@noronoro_yurupoです。
記事の内容
・【2週目】テックキャンプ (エンジニア転職)の記録 【精神崩壊】
今回は2週目の振り返りをしてみたいと思います。
前提
・❶:コースは「エンジニア転職」。
・❷:フリーランスコースとエンジニア転職コースのカリキュラム内容は同じ。チーム開発のメンバーになることもある。
どのコースを選ぼうか関係なく、テックキャンプ (エンジニア転職)に通うか迷っている人、通って間もない人の参考になると思います。

前置きが長くなりましたね。では、早速みていきましょう。

ちなみに1週目の記事は以下です。気になる方は読んでみてください。
【1周目】テックキャンプ(エンジニア転職)記録 【スパルタ】

TECH::EXPERTは3月下旬からテックキャンプ(エンジニア転職)」という名称に変わりました。カリキュラム内容に変更はありません。




テックキャンプ (エンジニア転職)2週目のスケジュールを公開

まずはざっくりとスケジュールから公開します。以下をご覧ください。

8日目 本試験合格&Github
9日目 Chat-SpaceのDB設計
10日目 Chat-Spaceのトップページビュー実装
11日目 昨日の続き&ユーザー管理機能の実装
12日目 グループ機能の実装&送信機能の実装
13日目 単体テスト
14日目 非同期通信化&インクリメンタルサーチ機能の基礎

こんな感じす。かなり爆速で駆け抜けてきた気がします。

応用カリキュラムに入ってからは難易度がかなり上がり大変でしたが、基礎カリキュラムをそれなりにやり込んでいたのでなんとかなりましたね。

しかしそうはいっても応用カリキュラムは難しかったです。
これから応用カリキュラムの人、そしてテックキャンプ (エンジニア転職)参加を考えている人は少しだけ覚悟するのがいいのかなあと。

ビビらせているわけじゃないですよ。笑 ダラけながら終わらせられるほど簡単じゃないということです。

・8日目:本試験合格&Github

僕は2週目の1日目に本試験を合格しました。

本来は14日目に本試験があるのですが、僕は早く応用カリキュラムに進みたかったのでかなり前倒しで試験を受けましたね。

試験はそこまで難しくなかったです。内容は以下の通りでした。

・❶:Rubyのアルゴリズム問題
・❷:HTML&CSSの簡単なサイト設計問題
・❸:Railsエラー問題
・❹:ちょっとした語句問題
テックキャンプ (エンジニア転職)に通えばわかるのですが、本試験を受ける前に中間テストってのがあります。合否関係ないテストですね。

ぶっちゃけ本試験よりも中間テストの方が難しいです。なので、中間テストで悲惨な点数叩きだしても問題ないんですよね。

ノロ

僕は中間テスト10点でしたが本試験は88点取ることができました。70点のラインは危なげなく超えることができてホッとしています。
メンターさんやライフコーチはやたらと焦らせてきますが、自分のペースで学習するのがいいですよ。基礎さえ押さえれば確実に合格できるので、しっかり基礎カリキュラムを回転させてください。

Githubで精神崩壊しました

応用カリキュラムに入ったらすぐにGithubというコード共有ツールに登録します。そして実際に使用していきます。

Githubとはどういうものかというと

ソースコード管理サービス。
つまり、自分が書いたコードや、人が書いたコードを事細かく管理してくれるわけです。

初めのうちはそのありがたみがマジでわかりませんが、使っていくうちに利便性がわかってきます(実務でも余裕で使います)。

ただ、最初は登録するだけで一苦労なんですよね。エラーでまくりで何度萎えたかわかりませんね。

ノロ

僕の同期もそれなりに苦労してましたよ。
この1日はGithubに溶かされたといっても過言ではありません。ほんときつかったです。
MEMO
8日目はgithubで時間を消耗。

・9日目:Chat-SpaceのDB設計

9日目からChat-Space(応用カリキュラムで作るチャットアプリ)のDB設計をやりました。

DB設計ってなんのこっちゃわからないと思うので、実際に僕がやったDB設計をお見せしますね。

こんな感じのものをやります。

これはChat-Spaceに限った話ではありませんが、アプリを作る上でDB設計はかなり重要です。

しかし当然のことながら

慣れないうちはDB設計を自分1人でするのは結構難しいです。
僕は3時間くらいかかりました。中には7時間くらいかかった人もいたので、好き嫌いがはっきり分かれるところだなあと思いましたね。

ノロ

コードは書かない分かなり頭を使うからしんどいですね。
ただ何度もいいますが、アプリ作成を行って行く上でDB設計はかなり重要なんですよ。

ガバガバなDB設計をしてしまうと、後からテーブルやカラムを何個も追加するハメになるので、ここは慎重にやるべきです。

MEMO
9日目はDB設計をし、DBに関連する記事を読み漁りました。

・10日目:Chat-Spaceのトップページビュー実装

10日目はトップページのビューを作成。

トップページっていうのはサイトの顔ですね。有名なアプリ・サービスとかだと以下のような感じです。


メルカリ


クックパッド

こう見ると「なんかむずそうだな、ほんとに作れんの?」と思うかもしれませんが、大丈夫ですよ。心配しなくてOKです。

最初は萎えますがやっていくと案外スイスイ進みます。ただ、完成までに「1日」は見ておいたほうがいいです。

理由はいくつかあります。

・理由❶:erbではなくhamlを使用するから
・理由❷:この段階ではビュー作成の技術がまだまだ未熟だから
とはいえこのくらいですかね。

注意すべきは「haml 」を使わないといけないこと。hamlは慣れないうちは結構難しくて詰まります。

ただ心配しなくてもOK。1時間もすれば慣れます。それに、慣れるどころか記述量の少なさに感動してきます。

MEMO
10日目はトップページ作成で1日が終了。

・11日目:昨日の続き&ユーザー管理機能の実装

11日目はトップページの続きを行い、午後からはユーザー管理機能を実装しました。

ユーザー管理機能を実装する上で具体的にしたことは以下。

・❶:deviseというgemを導入
・❷:名前を登録できるように「nickname」等のカラムを追加
・❸:サインアウト、サインインの機能を可視化
・❹:フラッシュメッセージ機能の実装
こんな感じ。

ここは結構時間かかりました。大体6時間くらいですかね。わりかししんどかったです。

具体的に僕が詰まったところはフラュシュメッセージを導入するところです。

configのlocalesファイルをいじりすぎたせいで、フラッシュメッセージが不可思議な動きをするようになったんですね。はい。

ノロ

デフォルトのファイル内容をいじりすぎたのが原因でしたね。
とはいえど、ここはgemというスーパー便利なライブラリを使うので悩みすぎることもないと思います。ログインの基本的な機能はdeviseが行ってくれるので。
MEMO
11日目はユーザー管理機能で消耗。

・12日目:グループ機能の実装&送信機能の実装

12日目は覚醒しました。

それなりに難解と言われる機能を1日で2つ実装することができたので個人的に大満足でした。ただ、結構苦戦しました。

やったこととしては

・❶:グループ(LINEのグループみたいな)を追加できるロジックを組む
・❷:メッセージ(LINEのメッセージみたいな)を送信できるロジックを組む
ここはMVCの流れをそれなりに理解できていないときついです。

「ルーティングはこうあるからコントローラーはこう動くんだな。だからこの変数を使えばいいんだな」みたいな。

MVCを完璧に把握する必要はこの段階ではないですが、ごり押しで理解もせずここまで進んできた人は苦労すると思います。

ノロ

僕の同期は理解が浅かったせいか、頭こんがらがって放心状態になってました
しかし「焦ってさっさと終わらせよう」と考えるのは禁物なんですよ。ここは「基礎を構築できるいい訓練場所」なので時間をかけるべきです。

ここらへんで手に入れた知識や経験は、個人アプリ、最終課題につながっていくので。

MEMO
12日目はグループ機能の実装&送信機能を実装。

・13日目:単体テスト

13日目は単体テストをやりました。

単体テストは「組んだコードにバグがないか確かめる作業」のこと。
カリキュラムでは「rspec」というgemを使用しテストを行いました。

このテストはなにかと曲者で、僕自身いまだにこのテストの必要性について理解していません(現在:2020/04/06はきちんと理解しております)。。

今でもデプロイ環境で動けば単体テストってやらなくていいんじゃないの?と思っています。

ノロ

多分、というか絶対この考えは間違ってるでしょうね。単体テストの重要性はかなり高いはずです。
おそらく実際に現場に入ってコードを書かないと単体テストの必要性はわからないのかなあと(実際その通りでした)。

それくらい「意味あんの?」と思いましたね。しかし、単体テストを経験できてよかったです。最低限やることはわかったので。

MEMO
13日目は単体テストと今までの復習をやりました。

・14日目:非同期通信化&インクリメンタルサーチ機能の基礎

2週目の最終日は非同期化通信を本格的に行いました。

非同期通信っていうのは簡単に言うと、グーグルマップのような画面遷移のないページ切り替えのことです。
なんのこっちゃわけわかんないと思いますが、実際にコードを書いていけばなんとなく理解できるようになります。

ここはかなりきつかったです。理解度は4割程度くらいで実装しきりました。実装完了時間は4時間くらいですかね。

なので「もう一度実装してみろ」と言われると実装できる自信がそこまでないです。

ノロ

カリキュラム通りにやっていたらなんとか実装できたっていう感じでした。あれ?なんかうまくいった。みたいな終わり方でした。
非同期通信はカリキュラム内で初めて「これ無理じゃない?」と感じた瞬間だったんですよね。

優秀な人はすぐに理解して実装するのでしょうが、僕を含めほとんどの人は結構苦戦してましたからね。2日かける人も中にはいると思います。

MEMO
14日目は非同期通信化を行い、インクリメンタルサーチの基礎に入りました。

・2週目は教室には完全に慣れて余裕も出てきた

2週目は同期ともかなり仲良くなり、教室の雰囲気にも完全に慣れたので、学習がかなり捗りました。

10時間以上学習しても全然余裕だなあっていう感じですね。

ただ、こういう精神状態で居られるのは同期がみんな優しくて、メンターの人のホスピタリティーが高いからだと思います。

ノロ

感謝です。では、引き続きコードを書いていきます。

3周目の記事はこちら(10周あります)

【3週目】テックキャンプ (エンジニア転職)の記録 【楽しい】

追記:テックキャンプ (エンジニア転職)の口コミを羅列し、卒業生の僕が意見した記事です

テックエキスパートの口コミを羅列してみた【卒業生の記事です】

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA