プログラマーという職業はみな終わらない旅の途中にいるようなもので、今回、話を訊いたキャリア20年のベテランプログラマーですら「ゴールはないですよね。新しい技術がどんどん出てくるので、常に学び続けないとフェードしてしまう」と、自らを戒めています。向上心のない人には厳しい世界である反面、独学で学ぶことのできる間口の広さがあるのも事実です。プログラマーになるために要する期間は約1000時間と言われており、プログラミングがなかなか理解できなくとも、少なくとも3カ月続けてみるという一応の目安があります。もちろんIT業界に興味があることは大前提として、学ぶうえでまず注意すべき点は手を動かし、とりあえず動くものを作るということです。
手を動かして作ってみること
「受験勉強みたいに本ばかり読むのではなく、パソコンを使って実際にプログラムを組んでみる。そうすると作ったものに対するフィードバックが得られるので、次に向かうモチベーションになる。その積み重ねだと思います」
独学を実りあるものにするには、目標を定め、それに向かって学んでいくのが一番の早道とも言えます。例えば、自己紹介のWebサイトを制作(後にポートフォリオとして役立つこともあります)はおすすめです。また、『ラズベリーパイ(ARMプロフェッサを搭載したシングルボードコンピューター)』を用いた電子工作は最初の一歩としても最適です。
「LEDを光らせるとか、温度・湿度を測るようなものでもいいんですよ。本体と電子工作の部品入れても1万円かからない。プログラミングで動かすことができるようになったら、趣味としても楽しいですよ」
プログラム言語はどれがいい?
プログラムを組むために使われているさまざまな言語のなかでも、Webの目に見える部分を司る「css」と「html」、見える部分を動かす「JavaScript」、見えない部分/後ろ側(フロントエンド)を作るための「Ruby」をセットで学ぶのは、おすすめです。また、学ぼうとする言語のオフィシャルサイトのドキュメントにはほとんどの答えが記載されている、最高の資料と呼べるものです。その他にもネットには言語ごとのまとめサイトや入門サイトが存在していますが、ひとつのサイトにこだわるこことなくあらゆる情報を入手するといいでしょう。
最新情報にはヒントが隠れている
日本人が開発しているRubyを例に挙げると、関連する有名な書籍の著者や開発者のSNSをフォローすることで、鮮度の高い情報を得ることができます。例のベテランプログラマーにてしも情報が「気づき」になったことが多々あり、「情報収集能力はなくてもいいんですけど」と前置きしたうえで「垂れ流しでもいいから、いろんな情報を浴びることに慣れていた方がいいですね。それが脳の片隅にでも残っていれば、何かの時にそれがきっかけになるし」と、教えてくれました。
ゴールを定める
ネット上にさまざまなプログラム(ソース)が転がっていて、自分が使いたいものをコピー&ペーストするだけでも何かを動かすことかできます。しかし、それを繰り返すだけの学習方法では何も身に着きません。
「コピペをするなとは言いませんが、スタッフにも『これはどういう動きをしているものなのかをよく理解してから貼り付けないとね』と言っています。そうしないと論理的な考え方が身につきません。」
「いろんな段階があると思うんですよ。ギターで言えば「Fコード」
が押さえられないようなもので、プログラミングだったらまず変数の意味がわからないという、かなり初歩的なところから挫折が始まるんです。プログラミングを生業としている人ならば挫折してる暇はないと思います。プログラミングというアプローチだけじゃなくて、たとえば「Scratch」というソフトは、マウスを使って画面上でプログラムを作ることができます。ゴールに向けて色々なアプローチを取り入れていくことは有りだと思います。」
同士を作って、モチベーションを高く。
独学するうえでの一番の敵はモチベーションと断言できます。ちょっとした息抜きは必要不可欠で、プログラミングについて語り合える仲間が周囲にいれば大きな力になります。
「独学しながら学校に通うのもいいし、勉強会に参加するのでもいいと思います。あと、SNSを通して自分が住んでいる地域でプログラミングを学んでいる人とつながる。いざという時に会うこともできますからね。やっぱり人は一人では生きていけないので、同志を探すことが大事です」
まとめ
冒頭でベテランプログラマーが「プログラマーにゴールはない」と断言していたのは、「世の中には知らないことがいっぱいある」という単純な想いに基づいたものに他なりません。独学で学ぶために必要なのは、もっと知りたいという好奇心、モチベーション、仲間という3つの要素。あとは目標に向かって突き進むだけです。