2019/4/28
プログラミング学習2日目です!
思いのほか疲労もなく、精神的にも特に変化なく2日目を迎えました。1日目とは打って変わって天気も良く、道にも迷わず足取りが軽かったです!(笑)
■イナズマコースの一日のスケジュール
11:00 イナズマ朝礼
11:30 学習開始
21:00 終礼
1日目とは打って変わってスッキリとしたスケジュールですね(笑)
イナズマ朝礼
1日目はオリエンテーションもあったので、ワークなどやらされたんだろうな~。という印象でしたが、2日目も学習の振り返りのようなイメージで隣の人とペアになってワークをやらされました。
ワークは2人1組になって行います。あるテーマについて2分程度考え、片方が先生役になってもう片方の人に説明する。説明を受けた方は、内容を聞いて補足があれば返すというものです。
テーマは、「変数とは何か?そのメリットは?」「メソッドの返り値はどのようなものか?」「(画面に表示)このコードで表していることは何か?」という内容で、どれも前日に学習した内容でした。
全部で4問くらいやって、正直めんどくさいな~。という感想だったのですが、頭が一気に学習モードに切り替わったのである意味効果はバツグンです。
学習開始
1日目の続きから入ってもよかったのですが、イナズマ朝礼のワークでやっぱり復習も大切だなと感じたので、自分で以下のように簡単なスケジュールを立てました。
■僕のスケジュール
11:30~12:30 1日目までの内容の振り返り
12:30~13:00 1日目途中で終わってた練習問題の残り
13:00~13:30 お弁当タイム
13:30~21:00 2日目の学習
1日目の振り返り
1日目に学習したことを振り返ってみました。
テキストを軽く読み返して、登場した言葉やその意味に改めて触れるという簡単なものでしたが、それだけでも理解が少し深まる気がしました。1ミリでも前進です。
簡単にまとめるのこんな内容です。
■1日目の学習内容
・if 条件分岐
・to_iメソッド
・while文 ループ処理
・自己代入演算子
・exit メソッド
・配列オブジェクト 配列オブジェクト = [] posts = []
・変数のスコープ
・引数
さすがにこれだけインプットして、翌日からすぐにアウトプットするのは難しいですね。プログラミング「言語」というだけあって、英語学習と同じで反復して覚える。『覚えるより慣れる』という類なのでしょう。やはり定期的に触れる機会を作らないと前に進まないな、と感じました。
2日目に学習したこと
そうは言いながらも、今日は今日でまた学習しないといけないわけです。
今日学習した内容はこちら。
■2日目の学習内容
・クラスとインスタンス
・newメソッド
・クラスメソッドとインスタンスメソッド
・クラス変数とインスタンス変数
・initializeメソッド
・クラスの承継
・HTMLとCSS
Ruby初学者が誰しもがつまづくと言われ、覚悟してのぞんだ「クラスとインスタンス」ですが、未だに理解が追い付いてません。。。
3日目はこの振り返りからしっかり進めたいと考えています。実はボリューム的には「HTMLとCSS」の方が大きいのですが、僕は以前から勉強していて、テキストを見ながら自分で簡単で貧相なサイトを作ったりしていたので馴染みがありました。
ですのでHTMLとCSSの学習自体はスムーズでした。
と、言いたい所ですが、最後の最後で詰まりました。学習しながらサイトを実際にコーディングしていくのですが、どうしてもページが上手く表示されないのです。
すぐにメンターに助けを求めてもよかったのですが、その不具合が起こっている理由の仮設が、自分で立てられるうちは自力でやろうと決めているので、試せることを色々とやっていました。
が、それでも直らずギブアップ。メンターさんに助けを求めました。
状況を説明して、どこかのコーディングが間違えているはずなのだが、そこが見つけられないことを伝えました。すると。
「ここが怪しいですね。。。」と即答。
やはり当事者よりも第三者の客観的な視点はありがたいです。
結論として、1ヵ所</div>が誤って</dib>になっていたことが原因でした。
何度も見返したつもりが、煮詰まった本人の頭だとそう簡単には見つけられないものなのですね。
1つのミスで表示が大きく崩れてしまうのはコーディングの難しい所です。
しかし、「自分はこういうミスをするんだと」という気づきが得られたことは1ミリ前進したと言っていいでしょう。
2日目を終えて
「クラスとインスタンス」という壁にぶつかってはいますが、モチベーションは下がっていませんでまた3日目からトライです。
「たくさんメンターに質問する人の方が成長が早い」という風に、初日に言われるのですが正直僕はそうは思っていません。恐らく、それが適する人とそうでない人に分かれるからだと思います。
「適する人」と「適さない人」というのは性格的な問題ではなくて、プログラミング的な学習方法にある程度慣れているかどうか、ということです。
「プログラミング的」というのは、いずれは常に自分で問題をクリアしていく、「解決力」のことです。
今は学習者として用意された答えのある問題を解き進めていますが、この学習が終わって自分でサービスを構築したりする時には、今のように答えは用意されていません。
そうなると、「なぜ上手く動作しないんだろう?」という壁にぶち当たった時に、「ここが悪いんじゃないか?」「もしかしたらここかも?」という仮説を立てて問題解決に取り組む習慣が力量として現れると考えているからです。
僕はイナズマコースを受講する前から独学でHTMLとCSSを勉強したこともあり、「上手くいかないことに慣れている」ところがあるため今はそのようなスタンスです。
ただ、これも意地になってメンターを頼らないわけではありません。問題解決に向けて、すぐに1個も仮説が浮かばない、自分が「ピンと来ない」状況であればすぐにメンターを呼んだり、先に解答を見ます。ここはスピード重視です。
そのため、プログラミングの学習スタンスに気づいたのであれば、反射的にメンターさんを呼ばずにまずは自身で一度考えてみた方が良いという考えです。
自分は鍛えられます。3日目もがんばります。
TECH::CAMPの即戦力エンジニア養成プログラム【TECH::EXPERT】
コメント