agedbeginner’s diary

プログラミング・IT業界、シングルマザーの経済的自立に関することその他について発信

プログラミング学校を卒業して思うこと その2 〜進度について(続き)

 学校の想定の1.5倍の時間を投入しても追いつかないと前回書いたが、簡単に進度の概略を振り返ってみたい。

事前学習

 入学の申し込みをした後、入学日が決まるが、その2週間前から教材をネットで読むことができるようになり、それを事前学習と呼んでいる。(現在はなくなっているらしい)

 

 私は、ここの進度を舐めていたこともあって、事前学習にすぐに目一杯取り組んだわけではなく、色々日常のことをしながら気が向いた時に教材を読む感じだった。

最初はHTML/CSS

 最初の方は、勉強に対する心構えや、PCの簡単な使い方、開発環境の構築、質問システムの使い方の説明などに割かれており、プログラミングの勉強そのものとしては、HTML/CSSの説明から。

 

 学校側の想定する標準学習時間(学校側は「所要時間」とか「目安」としている)は、前にも書いたように4時間程度であり、それに引き続いて演習問題のようなものが10時間の目安に設定されている(進度表では、これがなぜか1.5時間とされている)ものの、そこでやっているのはごくありきたりな1枚ペラのテキスト中心のページを、指示書に従ってマークアップするものだった。

 

 もちろん、こういうマークアップから初めて徐々に高度なマークアップに進んでいけばそれでいうことはないが、なぜかHTML/CSSの学習はここで終わり(後半の応用カリキュラムというところで改めてやるが)。

 すぐに次の単元に移ってしまい、拍子抜けしたことを覚えている。

 

 もとより、このコースはエンジニアコースであり、Webデザインのコースではないから、フロントデザインをみっちりやる必要はないが、ほとんど入門編で終わったことに不安感を覚えたこともまた事実だ。

Rubyに入る

 そして、次の単元がお待ちかね日本発のプログラミング言語Ruby」。

 

 Rubyの学習時間の目安はなんと10時間(他に目安5時間の練習問題が設定されている)。進度表では、12時間プラス練習問題分で5時間の17時間。

 

 念の為注意しておくと、この時間を普通の学校の授業時間と単純に置き換えることはできない。

 と言うのも、学校の授業であれば、1回あたりせいぜい2時間で、そのあとは自宅などで復習したり定着のための時間を取れるわけであるが、ブログの「その1」で述べたように、私は投入できる目一杯の時間を学校で使い切っており、自宅に帰って復習する時間はない。

 

 つまり、この17時間で全て理解しなければならず、読み終わったらすぐに次の単元に移らなければ追いつかない。実際、進度表ではわずか2日間で終わるものと設定されていた。

 

 全てのプログラミングの基礎となるコンピュータ言語の学習が、わずか2日間で一丁上がりというのは、にわかには信じがたい。この程度の学習であれば、ネット教材での完全独習でもくじけずに十分にこなせる量だ。

 Rubyの学習内容

 ついでにここでどの程度の内容を学習したかについて触れると、最初にターミナルやlinuxコマンドなどの説明があり、文字列・数値・メソッド・演算子・変数・定数などを簡単にやって、あとはターミナルベースのアプリの開発へと進んでいく。

 

 習うメソッドは、ここではlength、to_s、四則と%(剰余)、比較演算、notくらいなもの。

 アプリとしては、特定のテーマについて感想を書き、その感想ごとにハッシュを作成して配列で保存し、個別あるいは一覧で取り出すというもので、データベースは使わない簡易なものである。

 

 このアプリを作成する過程で、アプリのファイルを作成したり、アプリのコーディングをして次のような項目を学習する。すなわち、文字列で改行するバックスラッシュ記法、変数の使い方、式展開、getsメソッド、chompメソッド、ハッシュ、シンボル、if条件分岐、to_iメソッド、メソッドの定義と呼び出し方法、whileとexit、アルゴリズム、自己代入演算子、配列、<<(push)メソッド、変数のスコープ、引数・仮引数、return、eachメソッドなどである。

クラスとインスタンスについては

 このあと「クラスとインスタンス」というオブジェクト指向プログラミングに関係する説明があった。

 オブジェクトについてとか、属性と属性値、newメソッド、クラスメソッド、インスタンスメソッド、クラス変数、インスタンス変数、initializeメソッド、クラスの継承、モデリングなどの概念を学習したあと、映画のチケット発券システムアプリ(これもWebアプリでなくターミナルベースのもの)の開発を学ぶ。

 

 そして、この開発の中でゲッター、セッター、requireメソッド、Dateクラス、self、attr_accessor、リファクタリングなどの項目を学んでいくのであるが、肝心のオブジェクト指向がらみの説明は、人や動物になぞらえるありふれたもので、プロの卵に対するものであるとは思えない。