“プログラミング言語”と“大学の第二外国語”は似ている? 緊急事態宣言下の大学生がプログラミング独学で感じた疑問
2月、緊急事態宣言下の春休みで、友人にも会えず、一日中読書をするほどの気力もなく困り果てていた筆者は、「プログラミングの勉強をしてみよう」と思い立った。別段、将来プログラマーになりたいわけでもなかったが、インターネットに頼り切った生活を送る中で、プログラミングの知識は役に立つことが多いだろう、と思わされたのが理由だった。
筆者が通う大学には、プログラミングを学べる授業がいくつか存在する。初心者には「プログラミング入門(Java)」や「プログラミング入門(Python)」といったものがあり、実は、JavaとRubyの入門・基礎コースに関してはそれぞれ半年間受講していた(JavaやRubyとはプログラミング言語の種類名で、言語によって難易度や活用しやすいサービスが違う)。しかし、言語の違いが意味するものさえ理解していなかった筆者は、教授が出す課題の意味が汲み取れず、質問できる同級生も居らずという状況で、プログラミング初心者を名乗れるほどの実力にすら辿り着けなかった。
大学のプログラミング授業の難点は、「わからないことがあったらネットで解決する」が主流のプログラミング学習において、課題に近い答えというものがうまく見つけられなかったことだ。つまり、自分は何が分かっていないのかすらわからず、課題で何を問われているのか理解できなかったのだ。そうしてなんとなくの憧れは打ち砕かれ、文系には無理だと一度は思い込んだ。しかし、「独学なら、自分が何が分かっていないのかを検索しやすいのでは」と根拠もなく思いなおし、「Progate」というプログラミング独学者のための学習サイトに手を出した。
・「Progate」とは
「Progate」は、ユーザー数100万人を超える初心者向けのプログラミング学習サイト。JavaScriptやPython、SQL、PHPなど多数のプログラミング言語のコースがあり、コース内のレッスンごとに「到達目標」が用意されている。2,3枚のスライドで説明を受けたら演習、演習をクリアしたらまたスライド、を繰り返していくことで1つのレッスンが構成されている。2014年のサービス開始以降、わかりやすい説明と続けやすさで、プログラマーにも定評を得てきた王道学習サイトだ。どんな目的でプログラミングを学習するのか、その目標にはどのプログラミング言語が最適か、何のコースから勉強すべきか、なども「学習ロードマップ」で説明されており、初心者への手厚いサポートに感激してしまう。
・問題は「目標がない」ことだった
「HTML初級編」や「Ruby基礎編」など、初歩レベルの18レッスンは無料会員に登録することで学習できるのも大きなメリットだ。当時、コラムにするつもりがないまま無料レッスンを受けた筆者は、全てクリアした後、続けられそうだと実感してそのまま有料会員(月額制のサブスクリプションで、税込1,078円/月)に登録した。「HTML&CSS」と「Ruby」「Java Script」「Java」は全コースクリアまで辿り着くことができ、プログラミング初心者を名乗れるくらいには上達した実感がある。問題は、自分の目的がはっきりしていないことにあった。
プログラミングの知識は役に立つだろう、となんとなく思ったことが学ぶきっかけだった筆者には、「Webサービスを開発する」や「自分のホームページを設立する」といった明確な目標が存在しなかった。そのため、なんのために自分はこの言語を勉強しているのだろう、と思ってしまうことも多かった。「Ruby」に関しては、発展的内容である「Ruby on Rails」コースで学習を放り投げてしまった。「Java Script」「HTML&CSS」の勉強はどうにか持続中だが、まずは目標設定の方が優先事項かもしれない。
それぞれのプログラミング言語が、サービス、そして社会のいろんな場面で活用されているため、いろんな言語を広く浅く学ぶメリットも大きいという。いまの時代、プログラミング言語は基礎教養であると言えるかもしれない。しかし、明確な目標を掲げないままにプログラミングを勉強するというのは、メリットをイメージするのが難しいせいで壁にぶつかりやすいのもたしかだ。役に立つと思って始めたにも関わらず、「プログラミングの勉強は、本当に必要だろうか」と悩むようになった。