プロジェクトに取り組んでコードを書こう

――本を離れた質問をさせてください。独学プログラマーとして成功するためには何が必要だと思われますか。

アルソフ氏:とにかくプロジェクトをたくさんやることだと思います。私はいろんなプロジェクトに取り組んできました。一例ですが、Airbnbのサイトをスクレイピング(情報の抽出)して、米国内のどの町のどのような物件に投資するのが一番よいかを判断するプロジェクトなどです。これは個人で手がけたものですが、とてもおもしろい経験でしたね。興味を持ったプロジェクトをたくさんこなしながらコードをたくさん書くこと――。これが一番学びにつながるのではないかと思います。

――独学プログラマーのメリットとデメリットについてはどのようにお考えですか。

アルソフ氏:独学プログラマーの大きなメリットは、教育費用がかからないことです。米国では、大学の教育費用が高騰し、社会問題にもなっています。大学に行くことで数万米ドル(日本円で数百万円)のローンを抱えて卒業することがあるのです。独学することでこの費用がかからない、あるいはかなり安く済ませることができます。
 独学は時間の節約にもなります。大学では、プログラマーになるためには不必要なコースも取らざるを得ない場合があるからです。

独学プログラマーになるために必要なこと(画像)
[画像のクリックで拡大表示]

 さらに、独学することで「常に自分で考える」スタンスを学べるのではないかと思います。プログラマーになったときには、自ら問題を見つけて解決していく必要に迫られます。その姿勢を身に付ける準備として、独学はいい機会になるでしょう。
 一方のデメリットは、就職に関してです。大企業で特徴的なのですが、コンピューター科学やプログラミングの学位を持った人材を欲しがることが多く、そこでは独学プログラマーは選考外になってしまいます。ただ、最近はこうした傾向がどんどん変わってきており、これらの学位を持っていなくても、バックグラウンドを考慮して選考してくれることも多くなってきています。なので、不利な点はかなり薄れてきているのではないでしょうか。
 関連して付け加えると、コンピューター科学の勘所を自ら学ぶことはとても大事です。独学プログラマーだと、周りの学位を持っている人たちと競ったときに、コンピューター科学の領域の自らの知識が足りないのではと思いがちです。データ構造やアルゴリズムを基礎からきちんと学ぶことで、自分のスキルに自信が持てるようになるでしょう。

ジュンク堂書店池袋本店でトークセッションを開催
 ジュンク堂書店池袋本店にて2018年6月18日、本インタビューと同様にアルソフ氏と清水川氏、新木氏が参加して、来場者を対象にしたトークセッションが開催された。
 トークセッションでは、本インタビューの一部内容に加え、ソフトウェア・エンジニアとして働くことの意義や初心者にとって学びやすいPythonの魅力といった話題、さらには独学プログラマーとして継続してスキルアップしていくための方法などもアルソフ氏から語られた。具体的には、よきメンター(指導者、助言者)を得る、コードレビューをしてもらう、GitHubで実際のコードから学ぶ、ペアプログラミングを行う、という方法を紹介した。加えて、プログラミングを学ぶときには、まずは1つの言語に集中して取り組むことが習得の近道であると強調した。
 アルソフ氏はまた、オススメのプログラミング本として、「新装版 達人プログラマー 職人から名匠への道」(オーム社、2016年)、「退屈なことはPythonにやらせよう――ノンプログラマーにもできる自動化処理プログラミング」(オライリー・ジャパン、2017年)を挙げた。
独学プログラマーになるために必要なこと(画像)
[画像のクリックで拡大表示]

プログラマーになるためのスキル全般を独学できる本

本書は「Pythonだけ」を学ぶ本ではありません。Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。Pythonプログラミングの基本に加え、必要なスキル(シェル、正規表現、パッケージ管理、バージョン管理、データ構造、アルゴリズム、仕事の始め方・やり方)もひと通り学べるのが特徴です。