相談フォーム信頼の「飲んだくれマーク」をご確認下さい。質問・悩み相談の回答です。質問ScalaとKotlin関連の記事でこのブログを見つけ、転職やSIer話なども楽しく拝見させていだきました。私も転職することとなり、その中で生じた疑問を質問したいと思います。現在23歳でSIerからゲーム業界に転職します。ゲーム業界志望でゲーム系の専門学校に入学したのですがゲーム会社相手の就活に疲れてシステム開発を行う会社に今年の4月に新卒で入社しました。当初はプログラムが書ければいいやと思っていたのですが、周囲のプログラムに対するモチベの低さや、エクセル、ソース管理さえ行っていない低レベルな開発環境に嫌気がさしてきました。他のSIerに入る気はないし、勉強してWeb系の会社に転職しようなんてことをゲーム業界に就職した友人に話していたら、その友人にゲーム会社の社長を紹介され12月にゲーム会社に勤務することになりました。転職自体は嬉しいのですが、SIerという環境が嫌で勢い任せで飛び出した感じもあり、少しは計画を立てたほうがよかったかなと後悔しました。これを機にエンジニアとして、どういったキャリアを形成したいか、というものを考えてみようと思ったのですが、考えていくうちに何が何だか良く分からなくなってしまいました。キャリアを考える上で、まずは目標を決めようと思い『転職できるだけのスキルを常に持つ』ということを掲げました。これは今の会社に勤め続けたいたら5年後に転職できる気がしないなぁと思ったことが会社をやめるという決意をさせたことから決めました。会社とは契約を結んで労働力を提供する場であり、頼ることも依存することも行うべきではなく、会社が倒れたからと言って私が倒れたくないと思っているからです。転職を行うためには労働市場における需要と供給を考える必要があります。今のゲーム業界を考えるとスマートフォンのゲームが一大勢力を築いています。その中ではゲームエンジン(代表的なものはUnity)と呼ばれる、ゲームを作るための巨大なフレームワークに習熟した人間が求められているのですが私はこの技術があまり好きではありません。Unityが嫌いというよりも巨大なフレームワークの上で何かを構築していくという作業をあまり楽しめないので、好きじゃないのです。Webフレームワークで言うとDjangoよりもFlaskのようなフレームワークが好きです。中学2年生頃からプログラミングを初めて、それ以来楽しく継続してきました。何かを作りたくて初めたというよりもプログラミング自体に興味があって初めたということもあってか、〇〇を誰でも簡単に実現できる環境というものにあまり興味がありません。誰でも簡単にできるなら、わざわざ私が取り組む必要はないと思ってしまいます。プログラミングが簡単に行え、修正が簡単なので本質的な問題に取り組めるのがゲームエンジンの利点として挙げられますが。私はプログラマであり、私が取り組むべき本質的な問題はプログラミングにある、と思っているので取り除かれたらやることが無いなぁと感じます。エンジンの幅広い知識よりも、クリティカルな部分を解決するのがプログラマが取り組むべき本質的な問題だと考えます。転職するということだけ考えるのならゴチャゴチャ言わずにニーズの高そうな技術を学べば良いのでしょうが、人によって好みもあります。別に仕事で使うのなら良いのですが、イマイチ好きになれない技術をプライベートの時間を使って学ぶという気にはなれません。待遇の面を考えると、人より良い待遇で迎え入れられたいのなら他の人と差をつけることが重要だと思っています。他人と代えがたい差があるのだから良い条件を提示されるわけで、多くの人と同じならば並かそれ以下の待遇で受け入れられるというわけです。好きになれない技術をニーズが高いからと学ぶ私が優れた差を作れる気がしません。なんてことをゴチャゴチャと考えているうちによく訳が分からなくなってしまい、そもそも転職できるだけのスキルを常に持つという目標設定が間違っていたのだろうかと思い始めました。具体的にこういう役職に就きたいとか、こういうサービスでどうこうしたいのほうが良かったのだろうかなど。私はプログラミングが好きで、与えられた課題への解決に向けてプログラマの立場から協力したいのであって、別にこういう素敵なサービスを運営したいとかは無いのです。そもそも、そういうアイデアが有るなら起業してやるべきだと考えています。私より長くプログラマとして勤めてきた方の意見がほしいのですが知り合いには同年代しかおらず、今回相談させていただきました。お時間が有るときで良いので、なにかご意見をよろしくおねがいします。私もそんなに多くの世界を見てきたわけでないので的確なアドバイスができるか不安ですが、可能な限りで回答いたします。そもそも転職できるだけのスキルを常に持つという目標設定が間違っていたのだろうかと思い始めました。具体的にこういう役職に就きたいとか、こういうサービスでどうこうしたいのほうが良かったのだろうかなど。ご質問は、このあたりの「働いていく上で自分の志向や気持ちを踏まえつつどういうスキルを付けるのが良いのか(どういう戦略で生きていくのが良いのか)」ということですね。それを念頭に置きつつ、頭から質問を拝見して思ったことを書いていきます。ゲーム業界志望でゲーム系の専門学校に入学したのですがゲーム会社相手の就活に疲れてシステム開発を行う会社に今年の4月に新卒で入社しました。当初はプログラムが書ければいいやと思っていたのですが、周囲のプログラムに対するモチベの低さや、エクセル、ソース管理さえ行っていない低レベルな開発環境に嫌気がさしてきました。他のSIerに入る気はないし、勉強してWeb系の会社に転職しようなんてことをゲーム業界に就職した友人に話していたら、その友人にゲーム会社の社長を紹介され12月にゲーム会社に勤務することになりました。やりたいことが決まっているというのは一つの強みだと思います。大体どんな分野でもトップクラスの知識や技術を有する人は、自分が取り組んでいる仕事のことを好きであることが多いです。その好きなことに取り組む時期が早いほど、そして長くやり続けている人ほど、その傾向は強いです。何かの分野で成功したいならば、好きな分野を選んで一つのことをやり続けるのが最も簡単と思います。「思います」と書きましたが、同様のことは方々の人から聞きますし、一つの真理とさえ言ってもいいと思います。キャリアを考える上で、まずは目標を決めようと思い『転職できるだけのスキルを常に持つ』ということを掲げました。会社とは契約を結んで労働力を提供する場であり、頼ることも依存することも行うべきではなく、会社が倒れたからと言って私が倒れたくないと思っているからです。これは間違いなく正しいと思います。悲惨なのは外でつぶしの効く技術も得られず、現在の会社でそれなりのポストのまま、転職することも辞めることもできず硬直してしまうという状態です。最近はブラック企業に務める人に対して「社畜」という言葉が用いられますが、「畜」の意味的には個人的には前述のような状態の社員こそ「社畜」と呼ぶべきと思いますね。ここで言う「社畜」が必ずしも悪ではなくて、幸せな状態も少なからずあるとも思ってますが話がそれるので省略します。その中ではゲームエンジン(代表的なものはUnity)と呼ばれる、ゲームを作るための巨大なフレームワークに習熟した人間が求められているのですが私はこの技術があまり好きではありません。Unityが嫌いというよりも巨大なフレームワークの上で何かを構築していくという作業をあまり楽しめないので、好きじゃないのです。Webフレームワークで言うとDjangoよりもFlaskのようなフレームワークが好きです。この気持は私も分かります。フレームワークは生産性を劇的に向上させますが、あるフレームワークについての詳細な知識は他のフレームワークではあまり役に立ちません。「フレームワークを使ってもフレームワークとは結婚するな」という格言的な物があったかとおもいますが、それはこういうことだと思います。『転職できるだけのスキルを常に持つ』ということにも反するところがある程度あります。あるフレームワークに極端に強くなってしまうと、全てそれでこなそうとしてしまって柔軟な考え方ができなくなってしまいますし、求人によっては「XXXXというフレームワークでの開発経験」とまで要求されるようなところもありますから、特定のフレームワークに依存するのは危険と言えます。いって幅広いスキルを付けていっても「この人ではXXXXというフレームワークに関しては経験が無い」という低い評価をされる可能性も高いです。結局、特定のスキルが高いことをアピールするのは簡単なのですが、幅広いスキルが高いことをアピールするのは難しいという点も悩ましいところです。〇〇を誰でも簡単に実現できる環境というものにあまり興味がありません。誰でも簡単にできるなら、わざわざ私が取り組む必要はないと思ってしまいます。これは私もすごく共感できる考えです。その昔、私は自分でPerlを使ってブログ的なシステムを自分のWebサイトに構築していました。ブログやCMSを使うのはかなり抵抗がありました(今もそうです)。プログラミングが簡単に行え、修正が簡単なので本質的な問題に取り組めるのがゲームエンジンの利点として挙げられますが。私はプログラマであり、私が取り組むべき本質的な問題はプログラミングにある、と思っているので取り除かれたらやることが無いなぁと感じます転職するということだけ考えるのならゴチャゴチャ言わずにニーズの高そうな技術を学べば良いのでしょうが、人によって好みもあります。別に仕事で使うのなら良いのですが、イマイチ好きになれない技術をプライベートの時間を使って学ぶという気にはなれません。待遇の面を考えると、人より良い待遇で迎え入れられたいのなら他の人と差をつけることが重要だと思っています。他人と代えがたい差があるのだから良い条件を提示されるわけで、多くの人と同じならば並かそれ以下の待遇で受け入れられるというわけです。このあたりもすごくよく分かります。具体的にこういう役職に就きたいとか、こういうサービスでどうこうしたいのほうが良かったのだろうか個人的にはそのように考える必要はないと思います。