30日目の状況(+34日目に最終課題完了するところまで)

30日。

techcampが始まってちょうど30日がたった。
ということはRubyRailsの勉強を始めてしてちょうど30日か。
30日一心不乱に勉強してしっかり身につけました!と、胸を張って言えるほどの知識量を得たのかはわからない。一心不乱にやったのかと聞かれるとそうだったときとそうじゃなかったときもあるし…

でも教材が後半になってきて、ほとんど自分で手を動かしていくフェーズになってからものすごく楽しい。その前も楽しかったけどやっぱりせっせとコード書いてあれやこれやとやってるのは楽しい。

別に楽しさを得るために勉強を始めたわけではないが、自分のモチベーションや集中力やその他諸々勉強に必要そうな気持ちはすべて楽しいとか明るいとか嬉しいとかポジティブ感情によって強く影響されるっていうのは改めてわかったので、楽しいに越したことはない。
そう、楽しい。
これがやりたかった。ずっと勉強でもいい。
そういうわけにも行かないんだけど…

現状の自分見つめ直す系記事。

切りが良いので30日目の勉強の状況や気持ちを書き残しておく。
というか、正直言うと、最終課題は機能ごとにコードレビューを受けないといけないのだが、昨日依頼をだした分のフィードバックがまだ返ってこない。

Gitを使った開発疑似体験で機能ごとに一人でブランチ切って実装進めていて、コードレビューOKでないとマージできない。
今次の機能を実装しようとして新たにmasterからブランチ切ると今コードレビュー依頼出している分と激しくコンフリクトが起きてしまう…
ということで二の足を踏んでいる。

一昨日まではレビュー依頼して30分くらいで返ってきてたのになあ…せっかくやる気あったのに…
コンフリクト覚悟でやるか、逆にディレクトリごとコピーして追加したやつだけ置き換えするとか、手はあるかもしれないが、どうもそれらをする気が起きない。

だからこれを書き残す時間にする。今の自分見つめる系記事。

(ちなみに同じチームの方は私とおんなじくらいのタイミングでレビュー依頼出しまくったそうだが普通に20分くらいで返ってきているらしい。私が出したコードはそんなに時間かかるほどやべーやつなんだろうか?笑)

tech campに関わる取り組み

勉強時間で言えば、シンプルに人生で今一番勉強していると言ってもいいくらいしている。逆に今までがしていなかったのか?
決められた時間割が10:00~20:00。それ以外でも8時とか9時くらいからは何らかのtechcampの勉強とかしている。20時以降は何もしていないが。
週末も近所のスタバに7時半くらいにMacをかついでいそいそと通い、AirPods(風のパチもんイヤホン)で思い切りイキり倒している。ただし真剣に勉強に取り組んでいるかは別(ANNとか聴いてる)

教材は進み具合で基礎→応用→発展→最終課題とフェーズ分けされていて、各フェーズをいつまでにやりましょうというスケジュールが決まっている。もちろん巻きでやってもOK。自分はとりあえず巻ける分は巻いとこうという感じで予定よりは2週間早く最終課題フェーズまで来た。
ただしもっと高速で進んでる方もいるので、スピード感でいうとそこまで早い感じでも無いかもしれない。

基礎〜発展までは主に何かしらの小さいwebアプリを作りながらrubyrailsを勉強していく。途中からはほぼrailsかな。rubyは基本をおさえただけって感じ。それが主軸の教材という感じで、それ以外にも副菜というか読み物コンテンツ的な感じでセキュリティとか、SQLとか、開発体制とかもさらっとかじれるようにはなっている。
さらっとだから自分でちゃんと勉強はしないといけない。

ただ、スクールがカリキュラムとしてそのあたりも含んでいることを示している以上、それも「勉強しました」っていうことにはなるので、足りないと思うなら自分でどうにかしないといけない。当たり前だけど、やっぱりコードが書けるだけじゃ仕事はできない…そりゃそうだ。

最終課題完了しました。

ここまで書いたところで、どうにも自分の出したレビュー依頼がロストしている?か、無視されている?か、とりあえず何らかの理由で依頼を出してないことになっている気がして(ちゃんとまじで送信ボタン押したのは確認した)、しれっともう一度出してみたら普通に20分くらいで返ってきた。
なので、そのまま作業を継続して、その4日後、34日目に最終課題の機能実装は完了しました。とりあえず嬉しい。
ちょっと前まではチームでメルカリクローンを作ろうみたいな課題だったらしい?ですが、今は個人実装になっている。メルカリクローンと言えるほどの機能も無いフリマ的アプリ。

とはいえ、実際のところフロントの実装はほぼ全ページHTMLとCSSがすでにいい感じに組まれていて、各機能(商品出品とか購入とか情報編集とか)サーバーサイドの処理を今までカリキュラムで作り倒してきたものを今一度作ろうという感じでした。
うん。作るのに1周間はかかっているのでチョロかったとかそういうなめたことはまだまだとても言えないような知識レベルだけど、これを転職活動のポートフォリオにいれたらあかんというのはわかる。そこはこれから考えよう。

よかったところ

最終課題の取り組みでよかったところ。

①最初から最後まで楽しい気持ちでできた。

自分にとってはすごく重要なことなのでいちばんに書きました

②やりたいことを実現するために調査する力

こういう処理を書きたい、こういうふうに表示させたい、それらのやり方がわからない。でもきっと便利なメソッドとかrailsのしくみとかなにかあるはず。探そう。
最終課題とか、おそらく今後作るであろうものたちもそうだけど、だいたいの取り組みはこれに尽きるのじゃないかと思う。今だったら、教材で探すのもそうだしネットでググるのも同じ。今までやってきたこと全部全て頭にいれるのは難しいし、今後も新しいことはどんどん増えていく世界だから、自分の知識が100%になることは永遠にない。だから、必要な方法を見つけるとか、新しい情報をキャッチアップ?的なことをしていく力が大事なんじゃないかと思えた。
ちなみに「調査する力(どや)」とかいってさも身についたみたいな書き方しているが、まだ全然。もっと継続が必要。でもそれに気づけたからまずはOKっしょ

③安定したメンタル

エラーが出ても慌てない。動じない。悲しまない。怒らない。
エラーを解決してすぐ次のエラーが出てもはらわた煮えくり返さない。
正直、そこまであの赤いエラー画面としょっちゅう出会ったという感じではなかった。どちらかといえば、粛々と処理は動き、画面も遷移するんだけど、期待通りの動きをしていない、なんかおかしいぞ、みたいな方が多かった。
そんなときも、落ち込まない。いろいろ調べたり、ああだこうだ試したり、そういうのを暗い気持ちや怒りの気持ちでやらない。
マイナス感情で溢れてしまうとますます注意力が散漫になってドツボにはまる。
今回はそういう気持ちのマネジメントというか、気持ちの持っていき方がうまく行った1週間だった。
①とそんなかわらないか。

④スケジュールより早めに終了できた

スケジュールだと最終課題提出は12/18締切なので、ある程度余裕を持ってここまで来られた。逆に言うとこのあとの時間をどうするか?は結構自分に委ねられている感はある。期間が70日なので、およそあと半分。

⑤なるべくシンプルで読みやすく書けた

そもそもそんな複雑なことをしていないというのもあるし、rubyrailsが便利なメソッドとか色々あるのも相まっての結果ではあるが、今見ても割と見やすいコードが書けた。
なりふり構わず希望の処理結果を得るために書くような無茶苦茶なコードもないし、インデントとかコメントもちゃんとやったつもり。
当たり前のことなんだけど、今後もちゃんと意識してやる。

よくなかったところ

①公式ドキュメントと友だちになれなかった

顔見知りくらいにはなれた???
うーん。。。
教材でもそう言われているので、とりあえず調べ物するときはまず公式ドキュメントにあたるようにした。前よりは多少読みやすくというか、とっつきやすくというか、慣れてきた気がしなくもないが、それだけを見てハイじゃあこれですねコードを書きましょう。というふうになるのはまだまだ難しい。
とにかく1発目は公式にあたるということを今後も徹底して、慣れていくしかない。

②首をめっちゃ痛めた

今も痛いから書いておくけどめっちゃ痛い

③「同じ処理の記述をしているところが複数箇所ある」→「じゃあ切り出そう!」という考えがない

何回かコードレビューで指摘をいただいた。
切り出したほうが、可読性?とか、保守性?のためにはいいんだろう(専門用語ぽくていいね。)やったほうがいい。
そもそもそれを思いつくというか、そういう発想がまったくない。どうやったらそういう発想がある人になれるんだろう?
これも「慣れるしかない」と書けばそれまでなんだろうけど、すべての課題を「慣れ」という解決策に頼っても仕方がない。自発的にどういうことができるか…うーん。
ある程度いろんな機能の処理を書きすすめたら、おんなじようなところがないかチェックするようにしたらいいのかなあ。

④herokuにデプロイしたアプリのDBの中身見る方法がよくわからない

一回調べたんだけどちょっとよくわからなかった。もっかい調べよう。


よくなかったところはよかったとこより少なめにしておこう。


今後

次やることとしては、今作ったフリマのアプリに追加実装をするか、新しくオリジナルアプリを作るかという道があって、オリジナルの方だと、メンターに質問もできないしコードレビューも受け付けてもらえないらしい。
質問は正直ほぼ使っていないのでいいけど、レビューもしてもらえないのか。まあ、個々で違うの作るから大変か。
とりあえずtechcampの感想は全部終わって色々振り返ってから書くとして、明日から何をするか?

たぶんオリジナルアプリをやるんだろう。
でもその前にボーナスカリキュラム(笑)というか、追加実装とかで参考にしてくださいみたいな教材がいくつかあるのでとりあえずそれをこなしつつオリジナルのブツの方を考えないといけない。
むしろここからが本番、いまスタートラインにようやく立ちかけているのではないか。

きっと今後のほうがバンバンエラーにぶつかるだろうからバンバン残そう。