Slide 1

Slide 1 text

20代に送る エンジニアとしての 生存戦略 2019/02/04(Mon) 川原 英明

Slide 2

Slide 2 text

アジェンダ ● 自己紹介 ● 仕事に関すること ○ ゲーム開発時代 ○ IT業界時代 ● 開発言語習得に関する話 ● エンジニアとして生きていく道 ○ プログラミングマネージャー ○ シニアマネージャー ● アウトプットしよう

Slide 3

Slide 3 text

川原 英明について 自己紹介 基本情報 ● 本日誕生日です、50歳になりました ● Twitter @sapi_kawahara ● 東京板橋区で誕生、妻の実家川越に住んでます、娘二人(6歳、1歳11ヶ月)居ます ● 業界歴30年 ● ファミコンゲームからプレイステーションまでゲーム開発して、IT業界にジョブチェンジ ● 開発時に心がけていること「10年後の自分が見て恥ずかしくないコードを書くこと」 ● 開発以外では、ブログ読む、ブログ書く、技術書典に行く ● 勉強会に参加する、勉強会で登壇する、勉強会を運営する 3

Slide 4

Slide 4 text

川原 英明について 自己紹介 仕事を始める前までの経歴 生い立ち ● 1969年(昭和44年)2月4日生まれ ● 10歳ぐらいに、NEC PC−8001やシャープ MZ-80CでBASICを独学で始める ● 都立向丘高校(文京区)に物理部という「天文部」「パソコン部」「アマチュア無線部」を一 つにまとめた部があり、この部活動にてアセンブラ言語(6809)を習得する ● プログラムを作って雑誌投稿をすることにより、高校時代にはパソコン2台を購入する ● 高校時代にパソコン通信にハマり大学進学を断念、専門学校に行きつつゲーム会社でアルバイ トを始める 4

Slide 5

Slide 5 text

仕事に関すること ゲーム開発時代

Slide 6

Slide 6 text

仕事に関すること ゲーム開発時代 ゲーム開発時代のMVV ビジョン ● 「変化の激しいゲーム業界において、自己成長とともに業界に生き残る」 ● 成長戦略として、激しい変化に追従することを主題とした ミッション ● 「新しいアーキテクチャーを習得し続ける」 ● 常に新しいゲーム機が出る業界、新しいアーキテクチャーを習得することが必要不可欠です バリュー ● 「10年後も第1戦で活躍できる知識と経験を重ねる」 ● ゲームの作り方に興味を持ち、それを学び、そしてソフトを出すことにより継続的に知識と経 験を重ねていきます

Slide 7

Slide 7 text

仕事に関すること ゲーム開発時代 ゲーム開発職歴概略(未発売を含む) ゲーム開発時代 ● アセンブラ言語を使って開発 ○ ファミコン、アクションゲーム2本 ○ ゲームボーイ、アクションゲーム1本 ○ スーパーファミコン、RPG1本、シミュレーションゲーム1本 ○ PCエンジン、RPG3本 ○ メガドライブ、釣りゲー1本 ● C言語を使って開発 ○ プレイステーション(アセンブラ言語を若干使用)、ギャルゲー1本、シミュレーション ゲーム2本 ○ セガサターン、シミュレーションゲーム1本

Slide 8

Slide 8 text

仕事に関すること ゲーム開発時代 ゲーム開発時代のスキル(学生、バイト時代は除く) アセンブラ言語 ● 6502(ファミコン 8bits) ● GB80(ゲームボーイ 8bits) ● Hu65(PCエンジン 8bits) ● 68000(メガドライブ 16bits) ● 65816(スーパーファミコン 16bits) ● R3000(プレイステーション 32bits) C言語 ● Microsoft C(セガサターン 32bits) ● GCC(プレイステーション 32bits)

Slide 9

Slide 9 text

仕事に関すること ゲーム開発時代 ゲーム開発時代のまとめ ● 11年間で、アセンブラ言語6つ、ゲーム機のアーキテクチャーを8つ習得する ● 新しいゲーム機の開発ノウハウは世間に無いので、チャレンジ精神で開発してました ● ゲームで遊んでいると、気になるシーンがあるときは、ゲームを解析しまくっていました ● このようにゲーム開発は能動的にいかないと取り残されます ● 後輩育成は、プログラムのソースコードを読めでした ● ついていけない人は辞めるか、音信不通になりました ● プログラムのソースコードは動作速度最優先で、1年前のは自分でも読めない

Slide 10

Slide 10 text

仕事に関すること IT業界時代

Slide 11

Slide 11 text

仕事に関すること IT業界時代 IT業界時代のMVV ビジョン ● 「変化の激しいIT業界において、自己成長とともに業界に生き残る」 ● 成長戦略として、激しい変化に追従することを主題とした、ゲーム開発時代と同じです ミッション ● 「新しいアーキテクチャーを習得し続ける」 ● 常に新しい開発方法が出る業界、新しいアーキテクチャーを習得することが必要不可欠です、 ゲーム開発時代と同じです バリュー ● 「10年後も第1戦で活躍できる知識と経験を重ねる」 ● 新しい開発方法に興味を持ち、それを学び、そしてソフトを出すことにより継続的に知識と経 験を重ねていきます、ゲーム開発時代と同じです

Slide 12

Slide 12 text

仕事に関すること IT業界時代 IT業界時代の職歴 起業時代 ● iモードサービス初期の頃のサイト開発及び運営(権利譲渡済み、かつサービス終了済み) ● クーポン配布サイト開発及び運営(2018年サービス終了) ● ドロップシッピングサイト開発及び運営(サービスして半年て消滅) SIer時代 ● NTTコミュニケーションズにて画像共有サービス開発及び運営(2016年サービス終了) ● ヤフーにて検索エンジン移行時の広告表示の対応 ● 楽天にてメルマガ配信システム開発及び運営、またそのメール配信システムを使った広告配信 サービス開発及び運営 ● その他、各会社にて開発などを担当

Slide 13

Slide 13 text

仕事に関すること IT業界時代 IT業界時代のスキル 開発言語 ● Perl Version5系、自作フレームワーク ● PHP Version4,5,7系、自作フレームワーク、Mojavi、CodeIgniter、CakePHP2、 CakePHP3 ● Java Version5,7,8系、Seasar2、Spring Framework ● Python Version3系、自作フレームワーク、Django ● React Native その他 ● オンプレミス ● AWS

Slide 14

Slide 14 text

仕事に関すること IT業界時代 IT業界時代のまとめ ● 相変わらずのチャレンジ精神で、現在も新しい言語の習得をし続けている ● ゲーム開発時代と異なるのは、リリースしたら終わりではなく、開発し続ける必要があるた め、その場しのぎの開発はしなくなりました ● まともなドキュメント、まともなソースコードを書くようになりました ● SIer時代なので、後輩に教えることは無くなりましたが、現場では他社の人でもあっても積極 的に教えるようになりました ● 新しいトレンドを求めて社外に出るようになりました

Slide 15

Slide 15 text

開発言語習得に関する話

Slide 16

Slide 16 text

開発言語習得に関する話 常に新しい開発言語をやる意味 ● IT業界はLAMP時代から、JavaのApache StrutsやRuby on Railsなど、最近などはReact Native やLaravel + Vue.jsなどトレンドがどんどん変化 しております ● 30年仕事していますが、 2年でトレンドが変わり 、5年で求められるスキルが変わり 、10年で業界の勢 力図が変わります ● 「10年後も第1戦で活躍できる知識と経験を重ねる」ためには、新しい言語を習得し続けるの が得策です ● 何を習得すれば良いか?投機的実行のように、外れても良いから自分の感覚を信じて習得する のがお勧めです ● 実際に、自分はPerlを習得するとき、ついでにPythonもやっており、当時はトレンドの中心に ならなかったけど、15年の時を経てトレンドになりました

Slide 17

Slide 17 text

開発言語習得に関する話 現在の開発スタイル ● 一つの開発言語を習得していれば、どんな開発言語でも雰囲気で習得可能です ● まずは、新しい開発言語に慣れるために、チュートリアルでも良いから動かす ● 少しでも慣れたら、実際の開発に入ってしまいましょう! ● 優秀なIDEがあれば、IDEが教えてくれます ● IntelliJ IDEAがお勧めですが、Visual Studio Codeもお勧め、テキストエディタは捨てよう! ● 座学で3ヶ月やるなら、チュートリアル1週間の後に開発の方が習得スピードが早いです

Slide 18

Slide 18 text

開発言語習得に関する話 挫折について ● そんな開発言語大好きな自分でも挫折はあります ● 順風満帆にスキルを伸ばしていたが、IT業界に入ってから1度挫折をしています ● ゲーム開発時代の動作速度優先のプログラムから、メンテナンス重視のプログラムに変わって いきます ● 最初は、人にプログラムのソースコードを見せるなんて苦痛でした ● ひと月ぐらい、苦痛のあまり考えることができない時がありました ● しかし、変化する時代に自ら対応すると決心し、人見せることができるプログラムのソース コードを書くように変化しました ● 人に見せれば質も上がります、どんどん見せよう!

Slide 19

Slide 19 text

エンジニアとして生きていく道

Slide 20

Slide 20 text

エンジニアとして生きていく道 エンジニア35歳定年説について ● 自分は35歳から15年経過しているが、開発は継続しています ● フリーランスの人で、35歳を過ぎている人は珍しく無いです ● 上記のことから、35歳はエンジニア定年では無いです ● 頑張り続ければ、いつまでもエンジニアで居られます ● エンジニアから、マネージャーの方に進む人も居ます ○ 会社における地位により、自然とマネージャーになる人 ○ マネジメントスキルを求めて、自らマネジャーになる人 ● エンジニアが進み道は、フリーランス、マネージャー、プログラミングマネージャー、シニア マネージャー、CTO(技術責任者)、VPoE(マネジメント責任者)など色々あります

Slide 21

Slide 21 text

エンジニアとして生きていく道 各役職の区分け ● 個人的な考えですが以下のようだと思います ○ エンジニア→プログラミングマネージャー→CTO(技術責任者) ○ エンジニア→マネージャー→シニアマネージャー→VPoE(マネジメント責任者) ● この2つの道は、似ているようで大きく異なります

Slide 22

Slide 22 text

エンジニアとして生きていく道 プログラミングマネージャー ● プロダクトマネージャーというところもあります ● 人や組織をマネジメントするのは少しでよく、技術や製品に対して責務を負うのがメインの役 職です ● 技術に特化している人なので、スキルや知見は高いものを要求されます ● そのスキルを会社の内外に広く公開し、会社の地位向上と、エンジニア全体の地位向上に寄与 します ● なお、CTOは、プログラミングマネージャーの役職に、経営面での技術的な意思決定 が加わり ます

Slide 23

Slide 23 text

エンジニアとして生きていく道 シニアマネージャー ● エンジニア組織をマネジメントする役職です ● エンジニア全員が100%の力を発揮させるため組織運営がメインの役職です ● 技術に特化してなくても良いが、エンジニア全員の信頼を得るためには、一定レベルの技術レ ベルと知見が要求されます ● 昔は、マネジメントの一括りにされていましたが、最近はエンジニア組織論を語る本が出るよ うになりました ● なお、VPoEは、シニアマネージャーの役職に、経営面での意思決定が追加されます

Slide 24

Slide 24 text

みなさんは、どちらに進みます?

Slide 25

Slide 25 text

アウトプットしよう どちらの道でも、必要とされる共通のスキルがある ● エンジニアとして生きていくならばアウトプットをしよう ブログ ● ブログやっていますか?今日の感想をブログに書くのも良いです 技術書 ● 最近は、組織論の本や、技術書典 https://techbookfest.org/ など商業誌以外の技術書を購入 して読むようになりました ○ 合同誌ですが、本の出版もやりました(冬コミにて販売) ○ 新たな合同誌、及び個人誌も計画中! 勉強会 ● 勉強会に参加したら、次は登壇しましょう!

Slide 26

Slide 26 text

アウトプットしよう エンジニアの登壇を応援する会 ● 『全てのエンジニアに成長と幸福をもたらす』をビジョンに活動してます ○ エンジニアの登壇を応援する会 https://engineers.connpass.com/ ○ 技術を学ぶ会による学び ○ 勉強会やカンファレンスでの登壇 ○ Slcakもやってます、興味があればご参加ください http://bit.ly/elt-slack ● 定期的に勉強会を開催してます ● 2月は「真冬こそ激アツの自由研究 LT大会」 https://engineers.connpass.com/event/112688/ ○ もう既に枠は全てうまってますね・・・ ○ 3月にも勉強会の予定 があります、興味があればご参加ください

Slide 27

Slide 27 text

まとめ ● ゲーム開発時代、IT業界時代も、MVVは一緒で「自己成長とともに業界に生き残る」ために努 力をしている ● 開発言語は投機的実行により、興味がある開発言語を選択し習得して行く ● 開発言語の習得は、習うより慣れろで、チュートリアルを少しやったら実際に組む ● ソースコードは人に見せられるものを書く ● エンジニアとしての道で行き着く先は、CTOの道か、VPoEの道かの選択です ● 行き着く先が、どっちになろうが、エンジニアとしてアウトプットをする ● アウトプットするのはブログでも登壇でも執筆でも良い、どんどんしよう!

Slide 28

Slide 28 text

ご静聴ありがとうございました