見出し画像

テックキャンプ2週目振り返り


*長々書きましたが一番大事なのは6の雑感の部分かと思います。

こんにちは。sakaです。
テックキャンプも2週目が終わりました。この土日でカリキュラムを進めるもよし、だとは思うんですが、僕は進めずに色々整理したいと思っています。
というのも、平日にカリキュラムを進めている時って、やはり「カリキュラム進めたいな」という思いもあるので、気になった所をとことん深堀りするってことができないんですよね。その行動にどこまでも意味があるのかも図かねている中で、どこまでも時間を投下していくことに抵抗があるというか。
なのでそうして流して行った部分を整理する時間に当てたいなあと。
それも一つの学びだと思うし、新しいものをインプットする学びよりはストレスが少ないので、メンタル面のバランスにもいいなあと思うんですよね。
僕は気分屋なので常に「いかに自分の気を損なわないか」に気をつけて学ぶ様にしています。

技術的なことでまとめたいことは基本Qiitaに書いていこうかなと思うので、このnoteは日記兼思考の振り返りという形で使って行ければなあと思っています。


1.この1週間の進捗

・データベース設計
・Haml,Saasとは
・チャットアプリの開発
・テストコードについて
・SQLとは
・正規表現とは

という感じでした。新しい概念多数も多数ですね。そりゃパンクするわ。
なんか結局手を動かす以上の学びがないので、概念をカリキュラムで理解して流した後に、カリキュラムでやったやつのパクリアプリみたいの自分で設計して作ってみるってのが効率いいのかなって気がし初めてます。
ポートフォリオはカリキュラムによらず全然違うもの作ろうと思ってルンですが、あんまり身についてない感から一度似たの作って感覚掴んだ方がいいのかなーと。まあ時間的制約もあるので悩みますが。

ピックアップしたい箇所について簡潔に振り返っていきます。

2.データベース設計

圧倒的に一番楽しかったです。(できるとは言ってない)
いや、なんていうんですかね。理詰め感というか。そして言語を使うわけじゃないのでコードになれてなくても十分考えれる内容というか。
個人的に多対多のアソシエーションの作り方が感動しました笑
中間テーブルという概念が出てきて、「カッコ良すぎじゃん」というか。そんな解決方法があったのかというか。
なんか綺麗に決められるとかっこいいなあ〜ってなって興味湧きますよね。

概念を理解した気になっても、意外と自分で組もうとすると混乱するなという感覚です。実際練習問題のデータベース設計多分まだ自力で解けないし。
色んなパターンを学習・経験していく必要がありますね。公式を使った計算問題を沢山解いて公式の使い方を身につける、みたいな感じで学んでいけばいいのかなと思っています。

3.Haml,Saasについて

便宜上まとめちゃいましたが全然違う話ですよね。

①Hamlについて

苦手。超苦手。
多分そもそもhtmlやerbになれてない中でHamlで書いてしまっているから、なのかとは思いますが苦手ですね。
(あとそもそもRubyのためというのが汎用性なさそうで、、という思いもあり)
Hamlの見方がわからなく、Syntaxエラーの理由にどうしても気づけずもがき、メンターさんに5秒で指摘された時は嬉しさ半分悔しさ半分という感じでした。


     .Message-details__who
       = message.user.name
         .Message-details__when
           = message.created_at

チャットアプリにおいて、メッセージを表示するビューにおいて上記の様なコードを書きSyntaxエラーになってました。
これ、erbに書き直せば多分一発でわかったんですよね。
= message.user.nameというRuby言語の子要素に、.Message-details__whenというクラスのブロックが入れ子されてしまっているという。
このRuby言語の部分は元々適当なテキストを入れ、ビューを作っていたので構造を変えた結果ビューも崩れました。なんかメンターさんが一瞬で直してくれてしまったんですが自分でやると時間かかりそうだったんで自分でも一度そういう修正やっときたいなという思いはあります。

インデントで要素の配置を指定するの、慣れればとても便利なんでしょうが、慣れるまで見ても構造を理解できないので辛いですね。SyntaxErrorが出てきたらerbの姿でとらまえることでしばらくは読み解いていきたいと思います。

②Saasについて

好き。便利。
対称的な感想です。いやCSSやってる時から「入れ子でかけりゃいいのに」って思ってたからこの便利さはわかります。
あとは関数や変数の様な取り扱いができるというところが魅力的なんですが、まだ使いこなせてないですね。
「これは繰り返し出るよな」みたいな感覚がまだ自分の中に殆どないからだと思います。フロントエンドに関してはひたすら数だなーという風に感じています。

元々フロントエンド嫌いやーってずっと言ってるんですが、数やる内に確実に前よりできる様になってるのと、色んな可能性を根気強く総当たりしていくとなんとかなる確率が段々上がってきているので前よりは楽しくなってきました。
あとビュー崩れから原因を特定する力が段々身についてきてるのも嬉しい。
この感覚をより多く、より早くって感じなんだと思います。

4.テストコードについて

これも書き方違うんすね。というのとまだ途中までしかやっていなく、「なぜ書くか」と、「基礎的な書き方」しか学んでないので正直まだあんまりピンときてないです。
チャットアプリのテストコード作成をこれからやっていくので、そこである程度感覚を掴みたいと思っています。

5.SQLとは

基礎的な概念と簡単な使い方の話でした。本当にさくっとって感じ。
Progateでも触っていたのでささーっと流してしまった感じ。
ですが個人的にはもっと深く理解したいなと思っています。(なんというか、エンジニアかどうかではなく、事業会社で働いていくならデータの扱いとか統計学とかそこらへんの基礎的な能力は必要かなという思いがあります)
元々僕がビッグデータとかAIに興味あるのも関係してるとは思いますが、漠然と「データと仲良くなりたい」という思いが最初からあるんですよね笑

なのでSQLに関しては、適宜Udemyや本で学んで行こうかなーと思っています。

6.カリキュラムや学習法についての雑感

個人的にこの部分の振り返りが一番大事だと思っています。学ぶことは前提として、学び方の土台も僕はまだプログラミングに関してはないので。
作っていく作業ですね。
以下の様なことを気にしながらやる様にしています。

①情報はなるべく一次情報に触れる
基本英語なんで嫌ですけどね。読むしかないですよね。
Qiitaの記事、嘘が書いているわけではなく、バージョンが古いが故に今やると間違っている、みたいなことが多々あるんですよね。
あとそもそも使い方の説明がちゃんとできていても、「なぜそうなのか」の部分の記載が若干誤っているものもあったり。
なのでなるべく公式ドキュメントを読んだ上で、Qiitaのそれっぽい記事で捕捉してく様にしようと思っています。
もうちょい英語読み慣れないと遅すぎて業務で死ぬ可能性超高いし。

②メンターへの質問は自分の思考の流れを聞いてもらう
応用カリキュラムに入って、対応していただけるメンターの方々が素晴らしい諸先輩方ばかりだなあと感じています。
なので僕はつまったり悩んだりした時、それが調べて解決したとしても「思考の過程が間違っていないか」を確認するためにメンターさんへの質問をする様にしています。(あと受講生をモチベートすることに徹底してくれていて、質問への抵抗感を全くなくしてくれていることも素晴らしいスタンスだなと感じています)

「こう調べた結果、ここにエラーが出たのでアクションが問題だと思いました。bindin.pryを使った結果ここまでは処理が通っているので、ここの挙動でエラーが起きているとわかり、このメソッドについて調べて出てきた記載を記載したら解決しました。この記載により裏で〜〜と行った処理がなされる様になった、という認識で間違ってないでしょうか?」
大体こういう聞き方をしてます。逆に何がわかってないのかわかってない時の質問とかほんますいませんって思ってます。
あとは自分で気付いた時も、なんで気付いたかを考えて、それがカリキュラムに書いてあったからとかの理由だった場合「こういう時どうやったらここに問題があると気付けるんですかね?」とかなるべく聞く様にしてますね。
みなさん丁寧に教えてくれます。「そもそもまずこういう見方をしますね僕なら」みたいな回答とかがめちゃくちゃためになるのでメモって実践する様にしてます。

③Progateは後からでもやっといた方がいい
テックキャンプは実践的です。基礎的な概念や考え方を説明した後、どんどんと応用的な概念を投入していきます。
対してProgateは言ってしまえば泥臭いです。基礎中の基礎の考え方を体に覚えさせるために、便利なメソッドを多様せずMVCを手を動かして学ばせることにかなり長けていると思います(特にRailsは泥臭い。そのおかげでMVCの考え方がある程度自分に身についていると感じてます)
個人的にはテックキャンプ✖️Progateの効果を凄く感じているので、まだやってない受講生の人もぜひやるべきかと思っています。掛け合わせるとどちらもより効果的に作用すると感じています。
僕はこの週末まだProgateで未修だったJSとJQueryに触れてから来週以降のカリキュラムに臨みたいと思っています。

④わからない時は一つずつ考えていく
これが一番大事だなあと。如何せんまだプログラミング慣れてないので、「あってるかわからないところ」が二つ以上あるとすぐ訳わかんなくなります。
なので、binding.pryで止めたり、一行ずつコメントアウトして挙動を見て見たりして、「ここは間違ってない」「ここで止まる」等を確認していくべきなのだなと。
一つずつ丁寧に紐解いていく感じですね。
さっきのProgateの話にも繋がるんですが、MVCの流れというか動きを理解しておくと、「どこの挙動が問題かわからない」ことが減るんですよね。
原因の箇所を特定するのが早くなるというか。
まあエラーメッセージが一番効果的なんですけどね。ただし万能ではないので。何個もある不明点から問題の核を洗い出す作業をしていくイメージです。

長くなりましたが2週目の感想はこんな感じです。最近あんま寝れないので今日は軽めに勉強して頑張って爆睡したいと思います笑

この記事が気に入ったらサポートをしてみませんか?