プログラマーもサイヤ人のように瀕死からの復活で能力がUPする

2015年2月10日に投稿 → に更新

3048d9357ad1f4488e0d2ba7826be67b
漫画ドラゴンボールの設定でサイヤ人が瀕死の状態から復活すると戦闘力が大幅にアップするというものがあります。

この性質を利用してベジータはクリリンに自分を半殺しさせた後、仙豆を食べることによって大幅に戦闘力をアップさせました。

プログラマーの世界にも同じようなことがあります。ある時「そういえば俺って前よりもプログラミング能力上がったな」と思うことってありますよね?

プログラマーも瀕死(難しい仕事)を乗り越えると戦闘力(プログラミング能力)がアップするのです。

私の体験談を交えて、プログラミング能力が上がる仕組みについて紹介します。

サーバサイド技術者からゲームクライアント技術者への転身で感じた苦労

私は10数年ほど業務系システムをJavaで開発する仕事をしていましたが、ふとしたことからゲーム開発を趣味で行うようになりました。基礎的スキルが身につけていくつかのゲーム開発企業に応募したところ、ゲーム開発職に就くことができました。去年の6月のことです。

Unityを使ってスマホゲームを開発する仕事なのですが、趣味で開発してたよりもずっと難しく、「うわぁ、この仕事出来るかなぁ。やり方がまったく見えない…」という連続でした。それでも、分かるところから手を付けていって詳しく見ていく内に、「こうやればいいのかな!」というのが見えてきて、どうしても分からない時は、チームのメンバーに質問して解決することが出来ました。

そんな苦労の連続ですが、ゲーム開発の方が業務系システム開発よりもずっと面白くやりがいを感じました。

ゲームクライアントの複雑さ

images (1)

サーバーサイドのプログラムは処理の流れがリクエスト→レスポンスなので、とてもシンプルですが、ゲームクライアントは

  • 状態変数が多い
  • タイミングに依存する処理が多く、バグの原因究明が難しい
  • Prefabをちょっといじったら動かなくなることがあって怖い(これはゲームクライアントというようりUnity特有の問題)

のように、サーバサイドにはない難しさがあります。

また、座標計算やグラフィカルな表示処理になれていないので、いつも手探り状態でした。

私はUnityによるゲーム開発のプロジェクトをこれまでに2社で経験しているのですが、会社によってコードの組み方の差が大きいと感じました。

Unity自体がフレームワークですが、Unityでどうプログラムを書くかについてWebアプリケーションフレームワークに比べると定型化されていません。

ですから、1つ目のプロジェクトで覚えたやり方と次のプロジェクトで作り方が大きく違い戸惑いました。

この他にも

  • エンジニアによってコードの書き方がバラバラで分かりにくい
  • 仕様のバージョンアップが繰り返されてコードがかなり煩雑化していてごちゃごちゃしている

という問題もありました。

そんなわけで、不慣れなゲームクライアントプログラミングに加えて、統一感がなく、煩雑化したコードという二重苦だったんです。

「今思えばサーバサイドはクライアントに比べてロジックがシンプルで簡単だったな、サーバサイドに戻れば楽だ、この際、業務系システムの開発に戻れば一番楽だ、戻って楽になりたい…?」

とまで思うようになっていました。ゲーム開発を始めたころは、ゲーム作る方がずっと楽しい、業務系になんて絶対戻りたくないと思っていたにも関わらずです。

そんな悶々とした日々を過ごしていたある日、あることに気が付きました。

「なんか最近、以前より仕事が簡単に感じるな!」と。

難しい仕事を乗り越えるとエンジニアとしてのレベルが上がる

学習曲線はある瞬間、急上昇します。

例えば英会話の場合、全然聞き取れない状態がずっと続いていても、勉強をコツコツ続けていくとある時急に外国人がしゃべってることが分かる瞬間が来るそうです。

プログラミングも同じです。

「Unityしんどい、ゲーム開発しんどい」と感じながらも、一つ一つ仕事をクリアしていきました。その度に「しんどいなー、サーバサイドは楽だったなぁ」、「いつまでこの苦しい仕事をしなきゃいけないんだろう」とも思っていました。

これは学習曲線が停滞している時期だったのでしょう。そして、その時期をある時抜けたのでしょう。

つまり、閾値を超えるまでやり続けることが大事なんです。苦しい時をやり過ごしながら、なんとか続けていければ閾値を超えて一気に楽になるんです。

ですから、このことを認識した上で苦しい時期を過ごせば、「今は停滞する時期だけど続けていけば必ず閾値を超える日が来るから頑張ろう」という気持ちになって乗り越えられると思います。

難しさを感じなくなったら、次のステージへ移るべし

仕事が以前よりも簡単になってきたと感じたら、それは次のステージへ移るべき時期なのだと思います。

今思えば、業務系システム開発をしていた頃の私は、とっくの昔に簡単になっている仕事をずっと続けていたように思います。

ここでいう簡単とは難易度という意味で簡単というだけで、簡単だけどめんどくさいことはたくさんありました。

ただ、めんどくささと難しさを混同してはいけません。面倒なことをいくらしても、エンジニアとしてレベルアップすることは出来ません。難しいことにこそチャレンジすべきです。

なぜ、ずっと同じことをしているとレベルアップしないのか?

「瀕死の状態にならないから」なのでしょう。ここでやっと冒頭のサイヤ人が瀕死の状態から回復すると戦闘力が上がる話に繋がります。

同じことをしていると既知のことばかりなので、知識や経験が増えませんし、頭をフルに働かせる必要がありません。それではレベルは上がりません。

レベルが上がると視点が高くなる

images

苦しい時期に感じていたプロジェクトによってプログラムの組み方が違うとか、エンジニアによってコードの書き方が違うということも、今はそれほど感じなくなりました。

おそらく視点が高くなったからでしょう。

例えばネコと犬を知っている人は動物という概念が分かりますが、ネコしか知らない人は動物という一つ上の概念を理解することが出来ません。知識を多く持つことで物事を俯瞰し抽象化してとらえることが出来るようになるということです。

ゲーム開発の経験が少なかった頃の私は抽象化して捉える能力がなかったため、会社やエンジニアによってプログラムの組み方が違うと感じたのでしょう。経験が増えるに従って視点の抽象度が上がって、今まで自分がやってきたこととの共通点を見いだせるようになったのだと思います。

努力は必ず報われる?

AKB48の高橋みなみが言った「努力は必ず報われる」の本当の意味は

「努力は (閾値を超えるまで続ければ) 必ず報われる」

ということなのでしょう!

その時に、努力しがいのある環境が必要です。以前の私のように、やりたくもない仕事を惰性で続けているという方は、ぜひ勇気を持って、一歩踏み出してみてください!

転職活動はやってみるとかんたん!

私自身3回ほど転職してるんですが、思ってたよりかんたんで、転職エージェントを使ったらあっという間でした。

エージェントが応募先候補の選出から、面接の日程調整までやってくれるので、こちらから動かなくても半分くらい自動的に進む感じで楽でした。しかも今は好景気で売り手市場なので転職するのにちょうど良い時期です。

レバテックキャリアっていうエージェントがおすすめです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

あとホームページ見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

なので、レバテックキャリアのホームページ見てみてください。「ホントだ、美人じゃん♪」ってきっと思うはずです笑

職務経歴書の作り方がわからないという方は、私の使っているテンプレートを使ってみて下さい。

地方在住の人にも使える転職エージェントがある!

レバテックキャリアは東京・大阪近郊向けサービスなので、地方在住の方には全国の求人を扱っているワークポートがおすすめです。利用者の評判がめっちゃいいのでホームページ是非見てみてください。

人脈がなくてもフリーランスになれる!

フリーランスになりたい方にはギークスジョブがおすすめです。人脈がなくてもギークスジョブに登録するだけで案件を紹介してもらえます。案件の希望(どんな技術を使っているか、残業が少ないこと)等も聞いてくれるので、やりたい仕事が出来ます。対象地域は東京・大阪・名古屋・福岡近郊です。

「派遣社員」なら正社員とフリーランスのいいどこ取り!

フリーランスになりたいけど、確定申告とかめんどくさいなという方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員ならやりたい仕事を選べて、給料も悪くないですし、確定申告や年金、健康保険も派遣会社が入ってくれるのでいいと思います。

私の先輩でフリーランスになった後、派遣社員になった人がいるんですが「自由かつ煩わしい手続きがなくて最高」って言ってました!リクルートITスタッフィングに登録するだけでかんたんに派遣社員になれます。

私(やまろう)への相談メールも募集中

転職や仕事術、勉強法等について質問や相談がありましたら、以下のメールフォームからぜひご連絡ください。
経験者ならかんたんに解決できる相談って多いのでお気軽にどうぞ!こう書いてもなかなかメールくれる人って少ないのでホント気軽にメールしてくれると嬉しいです。

メールアドレス (必須)

相談内容

たまに間違ったメールアドレスを入力されていて返信できない場合があります。一週間経っても返信がない場合、メールアドレスを確認の上、再度送信をお願いします。

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

ホームページを見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはワークポートというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『ワークポート』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、ワークポートは未経験者を支援し転職を成功させています。

未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

『派遣社員』なら正社員とフリーランスの『良いとこ取り』!

  • 「フリーランスになりたいけど、確定申告とかめんどくさいな」
  • 「定時帰りできる職場や、時短勤務がしたい」

という方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員なら

  • 時給が高く、給料も悪くない
  • やりたい仕事を選べる
  • 確定申告不要(派遣会社がやってくれる)
  • 厚生年金、健康保険も派遣会社が入ってくれる

ので、正社員とフリーランスのいいとこ取りな、とてもいい選択なんです。

 - 能力開発