(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]

もっと気楽にプログラマーやったっていいじゃない【雑記】


このエントリーをはてなブックマークに追加

はじめに

ここ数日、以下のようなプログラマーやプログラミングの話がネットを賑わせてるようです。




どちらの記事もためになる話だし、共感出来る事も多々あるのですが、

正直言うと、ちょっと(良い意味で!)意識が高すぎるじゃないかなと思いました。


トップレベルのプログラマーを目指す人に対しては、これでも全然問題ないのですが、

そこまでじゃない人、特にこれからプログラミングを始める人に対しては、

やたらと敷居を上げてしまうんじゃないかと危惧したり。


僕自身も最近は(もちろん良い意味で!)意識高くプログラミングをやるようになった

と自負していますが、それまでは今思うとかなりいい加減にやってたので、

「もっと気楽にプログラマーやったっていいじゃない(特に最初の頃は)」

と思い、筆をとった次第です。


特にこれからプログラミングを始めるような方に「そんなに気張らずにやっても良いんだ!」

「こんな感じにやってる人でもプログラマーでご飯食べれてるんだ!」

みたいに思って頂けば幸いです。


なお、厳密に言うと僕は自称ゲームクリエイターなので、

純粋なプログラマーの話ではありませんが、そこはご愛嬌という事で一つ。


超電導カッコいいから高専へ!そこで初プログラミング!でも楽しくない!

よく凄いプログラマーは子供の頃からプログラミングをやってたみたいな話がありますが、

もちろん僕にそんな経験はなく、高専での授業が初プログラミングでした。


入ったのは一関高専(岩手)の電気情報工学科という所で、入った理由は以下のような感じ。

  • 寮がある(実家から出たかった。ちなみに定員オーバーで入れなかった)
  • 硬式テニス部がある(岩手は軟式しかない高校がほとんどだから)
  • 超電導カッコいい!(体験入学でちょっと見ただけ)


そう、まさかのプログラミングは全く関係なく入学したのです!

それどころか、体験入学までは「機械とかよく分からんし、化学科にしとこ」ぐらいに思ってました。

ちなみに入学時点ではパソコンはひらがな入力でした。(そもそもローマ字が怪しかったような……)


あと、高専というと一部の人からは「凄い人が行く(いる)学校」と思われる事もあるようですが、

極稀に物凄い学生がいるぐらいで、当たり前ですが僕も含めて後は"普通の高専生"です。


実はその「極稀にいる物凄い学生」ってのが同学年、しかも同じ学科にいたのですが、

その彼(PFNの現CTO)がとあるインタビューでこんな話をしていました。

(期せずしてプログラミングを始めた理由の記事だったり)

「ここに達するには、プログラムを書いた結果、“自動化されて嬉しい”という体験が必要です。それが逆に、“紙のテストでプログラミング・コードを書かせられる”みたいな授業を受けると、トラウマになる。なぜこれをやるのかが本当にわからないから楽しくないのです。自動化っていうのは本来楽しくなるためにやるのに、そうならない授業をするのは絶対やめてほしいなと思います」


まさしくこの「“紙のテストでプログラミング・コードを書かせられる”みたいな授業」

というのが、僕の初プログラミングでした。

何が言いたいかと言えば「初のプログラミングは全く楽しくなかった」のです。

今でこそプログラミングをする毎日ですが、始まりは最悪でした。


画像処理の研究室に入ってみた!だけどほとんどコピペ!!

その後もプログラミング系の授業はいくつかあったのですが、

特に楽しいとも思わず他の授業同様なんとなくでやっていました。


その後、研究室配属の時期になり、

画像処理をやっている研究室に入ったのですが、その理由が以下のような感じ。

  • 電気系はやりたくない(大きく分けて電気系と情報系の研究室があった)
  • 先生が良い感じ(高専4,5年の担任でわりと気が知れてた)
  • 先輩がいない(専攻科の先輩がいる研究室もある)


またもやプログラミングは全く関係なかったのです!

まぁ全くと言うと言い過ぎなのですが、

電気系より情報系(プログラミング)の方がマシぐらいのレベルでした。


ここでコードをガリガリ書きまくってたかと言うと、全然そんな事はなく

OpenCVの機能を調べて、ひたすらコピペしてたような気がします。

あとは家にパソコンがなかったのでネットサーフィンしたり、

PSP(アーマードコアとかモンハンとか)で遊んでたりしました。(先生ごめんなさい!!)


ただ、少なくとも初プログラミングの時よりかは楽しかった気はします。

が、プログラミングを独学でやろう!これを仕事にしよう!となるほどではありませんでした。


ちなみにこの時点でブラインドタッチ(タッチタイピング)は出来ませんでした。

(高専卒業後の春休みに出来るようになったよ!)


働きたくないから大学へ進学〜さらには大学院へ〜

高専は就職率の良さ、さらには就職先の良さが尋常じゃないので、

大半の人は就職するのですが、僕は働きたくなかったので大学へ編入(進学)しました。


その編入先も最初は東北大を考えていたのですが、編入試験の過去問を一瞥して即諦めました。

そして実際に行ったのが高専生御用達(8割以上が高専からの編入)の長岡技術科学大学です。


この大学の何が良いって、なんと推薦入学なら試験はおろか面接すらなかったのです!

つまり、入るのが楽だから入学を決めました。

ちなみに大学院の進学も他大学よりかなり楽でした。(これは学科によるかも)


学科は経営情報システム工学過程、通称"経情"です。

ちなみに電気電子情報工学課程という、僕がいた学科とほぼ同系列の学科もあるのですが、

電気をやりたくなかったのと、経情がめっちゃ楽だという話で決めました。(実際めっちゃ楽だった)


ようは、とにかく楽な方へ流れていったわけです。

この時点ではプログラミングの事なんてこれっぽっちも考えてなかったはずです。


幸運にもゲーム開発の楽しみに気付いてしまった

詳しくは以前に記事にしたのですが、この楽がしたくて流れていった場所で

幸運にも、ゲーム開発の楽しみに気付く機会に恵まれました。



ざっくり言うと、

  • プログラミングの授業でゲーム作るぜ!
  • プログラミングを褒められる!(情報系出身の学生が少ないので)
  • オレスゲー!もっと頑張る!もっと褒められる!
  • ゲーム作るの楽しい!プログラミング楽しい!


みたいな感じ。

我ながら超単純な動機とは(だから良かったとも)思いますが、

これが本当にラッキーで結果的にその後ゲームを作り続ける原体験になりました。


ただし、プログラミングという観点から言うと

大学(院)在学中は「動けばいいや」の精神で雑にやっていたので、まだ意識は低かったです。


真人間になろうと研究室に入るも即解散?!

この辺りから将来の事もちゃんと考えるようになってきたのか、

「入ると真人間になれる」と噂の厳しい研究室に入りました。


実際、確かに研究室は大変で、後悔をしてたりもしたのですが

なんと配属から数ヶ月後、研究室のボスの他大学への転勤(?)が決まり、

研究室が解散と相成りました。(稀によくある)


本当に触りだけCUDA(GPGPU)をやったりもしたのですが、

プログラミング能力や意識には全く影響はなかったです。


ちなみに次の研究室は先生が優しそう(実際優しかった)、飲み会が楽しそう(実際楽しかった)

という理由で配属を決めました。

また研究内容的に、ほとんどプログラミングはやりませんでした。


就活のプログラミング試験で普通に落ちる

ゲーム作りに目覚めてから、在学中に28本ものアプリを作ったので、

傍から見るとプログラミングも凄い出来るようになったと思うかもしれませんが、

全然そんな事はなく、就活のプログラミング試験で普通に落ちたりもしました。


ただ、3年も続けてアプリ開発を続けて、28本も出したというのがウケが良く

就職先自体は難なく決まりました。

ちなみに就職を決めた先の理由は「給料が良かったから」で、

就職先の企業には、ほとんど興味がありませんでした。


Gitも使えないけど、エンジニア研修!

入社後、エンジニアの研修の前に

「こういう事を研修でやりますよ〜こんな技術使いますよ〜」的なプリントが配られました。


それを見て他の同期は「〇〇使ったことないんだよね」「△△は使わないのかな?」

みたいな話をしてる中、僕は「そもそも〇〇とか△△とか聞いたこともないんだが?」と思ってました。


分かりやすく言うと「ギリギリGitは知ってるけど、使った事はないよ!」

という情報系の院卒としては、かなり厳しいレベルでした。


周りに助けられてなんとか研修は乗り切りましたが、

Gitをちょっと使えるようになったぐらいで他の事はさっぱり覚えてません。

というより、あんまり興味がなかったので覚える気がなかった気がします。


配属先の希望が全て通らない……!

研修後、配属先を7つの候補から第5希望までの出す感じだったのですが、

特に行きたい所もやりたい事もなく、激務と噂の2つを抜いた残り5つを希望し、

「どれか一つぐらい引っかかるやろ」と思ってたら全部落ちました。


まぁ配属されてみると激務ではなかったのですが、

仕事は全然楽しくなかったですし、やる気も全くなかったです。


ただ、そこで先輩に「リーダブルコードって知ってる?」と言われて

「あぁこれは、コードをもっとちゃんと書けって事だな。怒られるようになる前に勉強しとこ」と思い、

初めてコードをちゃんと書くように意識し始めたのは良かったです。


コネで転職!圧倒的成長!!

前述の通り、仕事が楽しくなかったので、なんと入社後5ヶ月で転職しました。

転職先は学生時代からやっていたアプリ開発関連のコネです。


一応、Unityが使えるエンジニアとして入ったのですが、

転職時点ではほとんど使えないと言っても過言じゃないレベルでした。

ちなみにこのブログ定期更新を始めたのもその頃(2014/11)頃なので、

記事を見てもらうと、なんとなくレベルが分かるかもしれません。


ただ、仕事がわりと楽しかったのもあいまって、ここから意識がどんどん高くなり、

やっと本気でプログラミングをし始めました。


この転職先には2年ちょっといたのですが、プログラミング能力及び

Unityエンジニア的には、ここが一番伸びた気がします。


続かない前提の独立?

元々は就職して貯金して、ある程度貯まったら独立して、

その貯金がなくなったらまた就職して、という続かない前提の独立を考えていたのですが、

その独立しようかと言うタイミングに

偶然スキップモアさんに声をかけてもらって一緒にゲームを作るようになりました。





しかも、ありがたい事にそのゲーム(特に神巫女)がヒットして、今に至ります。


Nintendo Switch向けのゲームを個人で作ってるというと、

なんだか凄いプログラマーみたいな感じがしないでもないですが、大部分はUnityのおかげで、

プログラマーとしての能力は(本当に謙遜とかではなく)まだまだ鍛えてる途中だったりします。


おわりに

いつもはカッコつけて意識の高い事、調子の良いことばかり言ってる気がしますが、

今回は赤裸々に綴ってみました。冷静に見返してみると普通に恥ずかしいですね。


まぁ「運が良かったから上手くいっただけ」と言えばそれまでなんですが、

そこまで気負わずとも、プログラミングをそれなりに続けていれば、

就職して食うに困る事自体はそんなに無いのかな〜と思ったりしてます。

(精神的、肉体的な辛さは就職先によってピンキリですが)


最後に、先の記事で「これだけはちょっと違うんじゃないかな」と強く思っことだけ挙げておきます。

たぶん業界で活躍しているようなエンジニアはほとんどが「気がついたらプログラミングしていた」タイプの人だと思う。彼らが人の何倍も手を動かしているのは間違いないが、彼らはそれを「努力」だとは思っていないだろう。一方、「努力してプログラミングしている」人たちは、彼らの領域に至るまでにさらなる精神的な追い込みをかけなければならない。

文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai|note


「仕事などの何か理由があってプログラミングを始めたけど、優秀なプログラマー」

がいるというのは当然ですが、

そもそも初めは「気がついたら」の人であっても、その後も努力を努力と思わずに(1から10まで楽しんで)

やり続けられている人なんて、ほとんどいないのではないじゃないでしょうか。

見えない所で努力してる人だっていますし、カッコつけて辛いとは言わない人だっているんですから。


もちろん、ごく一部にもそういう人はいるのかもしれませんが、大半はそうじゃないですし、

なにより「自分は過程が辛いからプロになれないんだ」となっちゃうのはもったいないと思います。

(1から10までつまらないとなるとキツイかもしれませんが……)


色々と長くなりましたが、実際言いたい事は一つだけです。

タイトルの通り「もっと気楽にプログラマーやったっていいじゃない」それだけです。