プログラミングはいつ始めても遅くない

ゲームプログラマーになろう、と心に誓ったはいいけれど、さてどうすればなれるのだろう? 『文系だし、プログラムの「プ」の字も知らないし、なれるのだろうか』という方にこういう人物がいるということをはじめにご紹介しておきましょう。

若宮正子さん。1935年生まれで御年83歳(2018年現在)。長らく勤めた銀行を定年退職後、独学でプログラミングを学び、2017年、81歳のときにiPhoneアプリ「hinadan(ひなだん)」を公開しました。

同年6月、米国サンノゼで開催されたアップルのWWDC(The Apple Worldwide Developers Conference)に、サプライズスペシャルゲストとして招かれ、基調講演の中で、世界最年長のゲームアプリ開発者として紹介されたのです。IT業界のニュースとしてご覧になった方も多いことでしょう。

プログラマーになるのは恐るるにに足らず、されど侮るべからず

成せばなるのです。悲壮な決意も無用です。プログラミングで収入を得ることを目標とする以上、勉強すべきことはたくさんありますが、一歩ずつ進めばよいのです。専門知識がなくても、「ゲームが好き」、「作ってみたい」というモチベーションがあれば大丈夫です。

世界をアッ!といわせるゲームを開発する、ゲームプログラミングの世界でカリスマになる、というような目標を達成するには世界最高レベルのスキルとセンスが必要かもしれません。しかし、ゲーム産業内における標準的なプログラミングでは、極めて高度なスキルが必要とされるわけでもありません。

とはいえ、ゲームといえどもその多くはソフトウェア商品です。商品である以上高い品質が求められます。自分の書いたソースコードのミスでゲームの動作がおかしくなる、というのは避けたいものです。また、IT業界の進歩の早さは目が回るほど。新しい情報の収集や新技術の勉強にも手を抜くことはできません。

効率よくプログラミングを学ぶには?

できるだけ手っ取り早くプログラミングスキルを上げて早く稼ぎたい、と考えるのは誰しも同じですが、そこは「学問に王道なし」です。プログラミングの勉強も例外ではありません。でも、プログラミングを学ぶ環境は、コンピューターが普及した現在は普及前と比べるとパラダイスです。

例えばパソコンが普及する以前は、プログラミング言語の文法書と簡単なソースコードサンプル、あとはお手本とすべき実際のソースコードくらいしかありませんでした。インターネットはないし、そもそも実用レベルのプログラム実行環境を個人で手に入れること自体が困難でした。

今では、パソコンの価格は劇的に下がり、プログラミング言語や開発ツールの多くが無料で手に入ります。書店には文献があふれ、ネットを検索すればノウハウどころか高度なプログラムのソースコードまでが手に入ります。

プログラミングの勉強法についても、いろいろな方がいろいろな方法を紹介しています。ありがたいことではあるのですが、情報過多でどれがよいかわからない、というのが今の状況ではないでしょうか。

プログラミングの勉強法で「これしかない」という方法が確立されていれば、誰もがその方法で勉強するのでしょうが、現実はそうなってはいません。その証拠に、多くの初学者が、「このやり方でいいのだろうか?」と悩みます。

何を勉強するにも自分に合ったやり方というのがあるわけで、プログラミングについても、先人が工夫したさまざまなやり方の中から自分に合ったものを探し、そして組み合わせることが大事です。

そして、簡単なものでも、「動く」プログラムを作れるようになったら、そこから先は「経験」がものをいいます。経験の中で貴重なのは「失敗」です。動かない、遅いなどは序の口で、思いもよらないことがいろいろ起こります。集中する日々が続くと、自分自身が人間実行環境になって夢にまで見ます。

そこでまた勉強です。これを繰り返すことで気づかぬうちにベテランプログラマーになっていることでしょう。

それでは以降で具体的なプログラミングの勉強法をご紹介していきます。

インターンシップで現役エンジニアと交流

現在学生で、将来プログラミングを仕事にしたい人であれば、企業が開催する、プログラミングを学べるインターンシップに応募するという手があります。

企業がインターンシップを行うのは、自社の魅力をアピールして学生に気に入ってもらい、将来、戦力となりそうな人材を採用するためです。

当然、企業側も参加する学生の素質ややる気を見るので、冷やかしの応募はいけません。これは、と思う企業を探して応募し、インターンに採用されたら、真剣に取り組みましょう。

インターンシップでプログラミングを学べる、という場合、講師となるのはその企業の現役エンジニアです。プログラミングの実際を教えてもらえるだけでなく、実業務の面白さや苦労話も聞けるかもしれません。ぜひ有効に活用したいものです。

オープンソースコミュニティでお手本ソースコードを見つける

プログラマーを目指す人なら、オープンソースソフトウェア(OSS)という言葉を聞いたことがあることでしょう。

通常、ソフトウェアはパッケージ版にしろダウンロード版にしろ、ある特定のベンダー(例えばマイクロソフト)が開発したものの利用権(ライセンス)を購入するという形で手に入れます。手に入るのは実行形式のソフトウェアで、ソースコードは公開されていないのが普通です。

これに対してOSSは、ソースコードなどのソフトウェア資産は無償で公開して誰もが利用できるようにすべき、という考えを持つ人達が提供する無償ソフトウェアの総称です。代表的なものにLinux(unix系OS)、Apache(Webサーバー)、MySQL(リレーショナルデータベース)などがあります。

無償で手に入るソフトウェアといっても、フリーソフトが個人利用を想定したソフトウェアツール類などであるのに対し、OSSは企業利用を前提とした大規模なものであるということです。

著名なOSSにはコミュニティが存在し、再配布の際の条件を定めたり、ソフトウェアの改良、品質評価などを行ったりしています。

このコミュニティに参加しているのはOSSの理念に共感するボランティアエンジニアで、誰でも参加することができます。そして、このOSSコミュニティには初心者でも参加することができるのです。

OSSコミュニティというと、プログラム開発のエバンジェリストみたいな人達の集まりでハードルがやたらと高そうですが、コミュニティ内のプロジェクトには初心者向けのものもあるので、興味があるOSSコミュニティのサイトで「beginner」や「easy」などのラベルを探してみるとよいでしょう。

興味のある分野でコミュニティに参加すれば、お手本となるソースに触れる機会ができるだけでなく、世界中にプログラミングの仲間ができ、そして活動を続けていくうちに、いつしかプログラミングのスキルが上がっていることでしょう。

自分のレベルや目的に合った勉強会へ参加する

ネットで「プログラミング」と「勉強会」をキーワードに検索してみると実にたくさんの講座が開催されていることがわかります。無料のものから受講料十万円以上のものまであります。

主催者も、メーカー(ソフトウェアベンダー)、受託ソフトウェア開発会社、ソフトウェアやシステムのユーザ会、ボランティアなどさまざまです。前述のオープンソースコミュニティでもさまざまな勉強会が開かれています。

対象も、言語、Web制作、データベース、データ分析、AI関連(機械学習、ディープラーニング等)などよりどりみどり。勉強会の形式も、オンライン形式、講義形式から、ハンズオン(実際にPCで動かしてみる)、発表会形式など主催者がいろいろと工夫を凝らしています。

プログラマーを目指す人の多くが、本やWebサイトを用いて独学でプログラミングを勉強していると思いますが、独学だけでモチベーションを維持してスキルを上げるのはなかなか大変なことです。一人で悶々としていないで、外へ出て勉強会に参加してみることをおすすめします。

勉強会に参加すれば、新しい知識が得られ、わからなかったことを教えてもらえるなどのメリットがあるのはもちろん、同じ目的を持つ、あるいは同じ悩みを持つ仲間ができる、つまり仕事をするうえで最も大切な、人脈を形成できるというメリットがあります。

プログラミングというのは孤独な作業です。いかに大規模なプロジェクトといえども、隣で作業をしている人は異なる目的のプログラムを書いています。そしてプログラマーという人種はそう多くいるわけでもありません。

行き詰まったときに、仕事を離れて同じ土台(つまり同じ業界の言葉)で話ができる仲間がいるというのはとても大切なことです。プログラミングは孤独な作業であるがゆえに仲間の存在というのはかけがえのないものなのです。

では、勉強会に参加することのデメリットはないか考えてみましょう。

まず、その勉強会のレベルと内容が自分に合っているかどうかは、参加してみなければわからないということがあります。「初心者向け」をうたっていても、そこそこの予備知識があることが前提だったり、勉強会のタイトルと中身が違っていたり、ということがないとはいえません。

講師の質も参加してみなければわからないことの一つです。また、勉強会に参加したからといって、その日のうちにスキルが上がるわけでもありません。次から次へと勉強会ばかりに参加して勉強したつもりになってしまう、いうのも考えものです。

とはいえ、デメリットに注意して勉強会に参加すれば何かしら得るものがあると思います。まずは、無料の勉強会の中から興味が持てそうなものに参加してみることをおすすめします。

書籍、Webでプログラミングの独学はできる?

最後に、プログラミングを勉強しようと考える人の大半が採用すると思われる、文献とWebについて考えてみましょう。

専門書を置いている規模の書店であれば、専門書コーナーのかなりのスペースをコンピューター関連の書籍がしめています。プログラミング関連の書籍はその中でも多いほうでしょう。

C、C++、C#、Java、JavaScript、PHP、Python、Pearl、Ruby、Scala、Swift、R、Kotlinなどなど、実にたくさんのプログラミング言語があるものです。隅のほうにはFORTRANやCOBOLなどの古語もあるかもしれません。

さらには、Unity、Unreal Engine、Eclipse、NetBeansといった統合開発環境やHTMLなどのWeb系の書籍もあることでしょう。

本を読む。要点や疑問点をノートに書き写す。書物で学ぶというのは、プログラミングに限らず、どの分野についても学習の開始には最も手軽な方法であり、そして王道でもあります。

ネットの口コミを参考にし、必ず自分で手にとって全体をざっと眺めてみましょう。座右の書と出会うことができれば幸せというものです。

ところで、文系出身だからとプログラミングの学習に不安を感じている人には(全ての人に当てはまるとはいえないのですが)、文系ならではのメリットがあります。それは英語。英語が得意とか、少なくとも英文を読むのに苦痛を感じない、というのであればしめたものです。

コンピューターの世界においては、最先端情報の大半は英語で発信されています。専門用語さえ覚えてしまえば最新情報はネットで検索していくらでも出てきます。前に書いたオープンソースコミュニティへの参加も英語で書き込みができれば世界は大きく広がることでしょう。

まとめ

誰でも最初は初心者です。世界中のプログラマーから崇められるカリスマだってそうです。コンピューターは全てのプログラマーに対して平等です。初心者が作ったプログラムだからといってバカにするなんてことはありえません(今のところ)。

プログラミングは楽しい作業です。自分の書いたコード通りにコンピューターが動いてくれたときは感動ものです。そして、ゲームプログラミングというのは、自分の書いたプログラムで多くの人を楽しませることができるという夢のある作業です。それを仕事にできるのならいうことなしではありませんか。

プログラミングの勉強を始めたばかりの頃は、用語はちんぷんかんぷん、ツールの使い方すらよくわからない、コードを書いて実行させてもあえなくエラーで弾かれる。きっと挫折の連続です。でもこれは皆が通る道。一歩一歩進んである日後ろを振り返れば、ずいぶん高いところにいることに気がつくものです。

自分に合ったやり方を探してプログラマーの仲間入りを果たしてみませんか。ゲームのプログラミングを基礎から応用まで学べるテックスタジアムは、費用がかからずUnreal Engine4の使い方やC++の基礎が受講できます。基本的なITリテラシーと初歩的なプログラミングスキルがあれば受講可能で、卒業後はすぐにゲームプログラマー・ゲームクリエイターとして活躍が期待できます。