ハル研ブログ BLOG

スキルアップ
執筆者:田子谷 タグ: プログラマー

ハル研クリエイターの勉強方法 プログラマー編

こんにちは!プログラマーの田子谷です。

今回のブログでは、私がハル研のプログラマーとしてどのような勉強方法を使っているか?についてご紹介したいと思います。
本題に入る前に、まずは私が普段どんな仕事をしているかについて簡単に紹介させていただきます。

私はこれまでWebブラウザアプリの開発、ゲームフレームワークの開発、ゲームアプリの開発などに携わり、現在は開発環境の仕事をしています。

「開発環境」といわれても、「いったい何をするの?」と思われるのではないでしょうか。
ゲームのプログラマーというとゲームを動かすプログラムをガシガシ作っているイメージがあるかと思いますが、それだけだとなかなか効率的に良いゲームを作っていくことはできません。
例えば「データをゲームに組み込むのに時間がかかって、他のものを作る時間がとれない!」とか、「開発を進めるうちにゲームが重くなってきて、まともに遊べなくなってしまった!」といったことは、ゲーム作りではよくあることです。
このような問題を取り除いて健全に開発を進めていくためには、効率化のための様々な仕組みを用意する必要があります。
そういった仕組みを考え、作っていくのが開発環境の仕事です。
例えば私の最近の仕事でいうと、ゲームの処理負荷を自動的に計測して問題がある部分を見つける仕組みを作ったり、ゲームをテストする機能をゲームプログラマーが簡単に追加・利用できるようなツールを作ったりしました。

私のような開発環境を担当するプログラマーと、ゲームプログラマーとはどんなところが違うかといいますと、いろいろありますが、個人的には「広い分野の知識と技術に関われる」という点が大きな違いだと感じています。
開発環境の仕事では開発の効率化に役立つものであれば何でも使うので、小さなアプリ作りからWebサービス作りの技術、ゲームエンジンや社外Webサービスの知識、またそれらを連携させる技など様々な技術が必要になります。
私はもともと開発環境の仕事に興味があってこれに携わることになったのですが、いろんな技術に関わって自らのスキルアップにつなげることができるのも、この仕事の大きな魅力だと感じています。

さて、前置きが大変長くなってしまいましたが…
そんな仕事をするため、普段どのように勉強をしているかをご紹介したいと思います。

自分のやり方を振り返ってみたところ、3通りの方法を使っていると思ったので、それぞれご紹介します。

1. 実践する

いきなりですが実践、つまり「実際に動くものを作ってみる」という方法です。
「こういうことをやりたい!」という具体的な目的がある時に特に有効な方法かな、と思います。
プログラミング言語やツールなど「使う」タイプのものを習得する時にはこの方法を取ることが多いです。

実際に動かしながら何かをやろうとしてみると、思わぬところに落とし穴があったり、考えもしなかったところに難しさがあったりすることに気がつきます。
そうして試したり調べたりしながら動かしていくと、プログラムの動きを肌で感じながら学ぶことができるので、身につきやすさでは一番効率の良い方法だと思います。
また、できなかったことができるようになる、成長を実感できて嬉しくなるところもこの方法の良いところかなと思います。

実際の業務でも「こういうことしたい」という目的がきっかけになっていることが多く、自然とこの形式で技術が身につく、ということが多いように思います。

2. 書籍を読む

「実践する」はやりたいことが明確な時には、とても効果的な勉強方法だと思います。
自分がこれのやり方を知らないということがわかっているので、「やり方を調べれば良い」ということが明確なためです。
しかし、自分が何を知らないのかすらわかっていない時には、「実践」することができません。

書籍による勉強は、テーマさえある程度決まっていれば、本がどんな知識・話題・技術があるかを教えてくれるので、「自分の知らないことを知る」ということにおいては有効な勉強方法だと感じています。
例えば、「この分野のことは全然知らないけど、どんなことができるんだろう?」という時や、「このプログラミング言語はある程度は使えるけど、もっと洗練させたいなぁ」といった時はよく書籍を利用しています。
まとまった情報量があるので、詳細な情報まで得られやすいことも魅力だと思います。

3. ブログなどのWeb情報を読む

Web上には、各所からリリースされるニュースや一般のエンジニアの方が書いているブログなど、日々更新される情報が多くあります。
これらを読めばホットな話題や技術について知ることもできますし、歴史ある技術についてもブログの紹介などを通じてノウハウを獲得できたりします。
また、テクニックだけではなくエンジニアとしての考え方や経験談などが紹介されていることも多く、純粋に読み物として楽しめることもあります。

この方法は、技術を獲得するというより、知らなかったことについて「気づき」を得るのに役立っているかなと感じています。
(そういう意味では「書籍を読む」に近い勉強法と言えるかもしれないですね)
話題になる情報は普段全く触らない技術であることも多いので、ブログの紹介をきっかけに興味を持ったり調べてみたりすることもあります。

私は東京開発センター勤務なので、通勤で電車に乗る時間があるのですが、その時間を活用し、スマートフォンを使ってWebをチェックする、といった習慣がつきました。
ただ現在はコロナの影響で在宅勤務体制となっているため、お昼休みや買い物の帰りなど他の空き時間を使ってチェックをしています。
ちょっとした時に手軽に情報を得られたり、空き時間を有効活用できたりするのがこの方法の良いところですね。

以上、私の勉強方法をご紹介してみました。

開発環境の仕事は、勉強で学んだことを活かすチャンスも多いですし、知識や技術をどう開発環境に活かせるかを考えることもとても楽しいです。
これからもいろいろなことを学び、開発が便利で楽しくなるようなものを生み出していきたいなと思います。