hamablog

プログラミング学習についてのアウトプットと日記です

TECH::EXPERT 一週間目を終えての振り返り

○1日目

 事前学習で少しだけカリキュラムを進めていたため、RubyonRailsのmoooviというアプリの作成からスタート。主にスクレイピングを学習し、既存のアプリケージョンに様々な機能を実装したが、ずっと漠然とした違和感がつきまとっており、それがなくならない。

 その違和感は応用実装にはいった途端に現実として現れた。

RubyonRailsというものを理解していない!

今までの学習はただカリキュラムから指示をされたことをやっているだけで、理解はしていなかった。当然のように徐々に応用的な指示を受けるため、基礎を理解していないとカリキュラムの説明が理解できない。完全にそういう状況に陥っていた。

そこで学習終了。メンターの先生と相談し、Railsを最初からやり直すことに。

 

○2日目

 ひとつひとつの理解を慎重にとテーマを掲げ、Railsの2周目をスタート。

 まるで鮮やかな伏線回収のように「ああ、これはそういうことだったのか」の連続。プログラミング学習は2周目からこそ学習の本質が現れるのだと理解。

 ただ、細かいところをメンターの先生に質問し過ぎたせいで、予定より学習が進まず。ページネイションとヘルパーメソッドについて一時間半もメンターの先生に質問し、理解に至った。

 楽しく学習できたけど、学問としてのプログラミングを追いかけ過ぎたと反省。ここには実務的なスキルを身につけにきているのだから、あまり細かい理屈まで突き詰め過ぎないほうがいいのかもしれない。

 ただ、しつこい質問に付き合ってくださったメンターの先生には感謝。メンターの方のスキルにはおそらくかなりのばらつきがあるが、今日お世話になった先生は知識の量が半端じゃなく、おそらく将来有望なエンジニアの方なのかもしれない。

 

○3日目

 PictweetというTwitterの超簡易版のようなサービスをつくって学習を進めているが、そのツイート編集機能、ログイン機能、コメント機能の実装をフローにまとめるとかなり理解が深まった。処理の流れを線でおったので、ビュー、コントローラ、モデル、ルーディングのそれぞれの役割が結構しっかり理解できた。

 2周目の学習はやはり楽しい。しかしやはり進みが遅い。ややカリキュラムを進める上で関係のない質問が多い気もする。でも、疑問が解決され、より理解が深まった瞬間がなにより楽しい。

 

○4日目

 初日に理解できずに心が折れたmoooviの応用実装にやっと戻ってこられた。

 Pictweetを2周することでそれなりに力をつけた甲斐あって、全てがすんなり理解できる! 楽しい!

 ということで、初日の絶望が嘘だったかのように学習が進みました。

 ちなみに、初日にちゃんと理解できてなくカリキュラムの説明の意味がわからなくなった原因は、パスにあった。ここのボタンをクリックするとルーディングのこのURLから、ここのコントローラのアクションに行き、このビューファイルに変数が渡されて……みたいなことの理解が甘過ぎた。逆にそこがわかると、paramsの理解がやばいほど進んで、それから、form_tagとform_for、redirect_to、link_to、before_action、ネスト、binding-pryなどなどさまざまな要素がひとつのまとまりとして頭に入ってきた。

 もしかして、センスあるかも? と思った瞬間。

 中間テストで24点をとり、絶望するのは、また先の話……。

 

○5日目

 Railsにおいていろんな流れが見えてくると、失礼を承知で申し上げますが「Gemファイルきもい!」という思考に堕落していきました。

 なぜなら、便利すぎるからです。

 ここではdeviceというログイン機能を簡単に実装できるGemファイルをつかっていました。これは大変便利なもので、ファイル上には現れないところでいろんなことをします。ユーザー登録をしたり、削除したり。その処理の流れを追いたくても、「君は別に詳しいことは知らなくてもいいんだよ」といわんばかりに、隠されたところで処理がなされます。

「いやいや、理解できないことを前提で教えてよ」と、メンターの先生に質問しました。「それを知るためにはC言語とかの知識が必要だね。気になるならこの転職コースの楽手が終わったらまずはJavaから勉強してみたら?」とのことです。

 しばらくは便利なGemファイルにお世話になり、今後Javaを勉強します。

 

○6日目

 Railsに時間をかけ過ぎていたので、HTML/CSSの復習。

 はじめにやったときはサクサク進んだのに、これもこれで厄介でした。

 なぜこうなるのか? が全て説明できないのです。

 とりあえず「floatしたら浮く」とか「親要素の大きさは小要素の大きさに依存する」とか基本的なところをしっかり押さえて終了。

 

○7日目

 中間テストを受けたところ、なんと100点満点中24点。

 もう絶望です。Progateとあわせて100時間から150時間くらい勉強を続けているのに私の理解はこの程度でした。独学だったら多分勉強やめてたなと思うほどのショック。独学じゃなくてよかった。

 学校の定期テストでいうところの赤点で、とくに低得点だった細かい原因とかはなくただの実力不足だけど、あえていうならRubyがまったくできていなかった。カリキュラムのRubyが簡単に進んでいたせいで復習をおろそかにしていたと反省。

 また、Railsも理解しているつもりだっただけで、いざ「エラーを直せ!」と言われると全く手がでなかった。

 プログラミングは全く甘くないと実感。

 復習あるのみ。自分にはまったくセンスがないのではないかという不安を抱えながらも前に進むことを決意。

 

○まとめ

 プログラミング楽しい! は実務に向けての学習ではない。

 楽しいは大事だけど、辛いことを乗り越えてこそ立派なエンジニアになれるのかもしれない。スポ根っぽいけど。あと、メンターの先生は若いのになんでも知っているから普通に嫉妬という感情が湧いてきました。これからもよろしくお願いします。