Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20代に送るエンジニアとしての生存戦略 / Strategy_of_survival_as_an_engineer_for_send_to_twenties_.pdf

sapi_kawahara
February 04, 2019

20代に送るエンジニアとしての生存戦略 / Strategy_of_survival_as_an_engineer_for_send_to_twenties_.pdf

sapi_kawahara

February 04, 2019
Tweet

More Decks by sapi_kawahara

Other Decks in Business

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. 仕事に関すること 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

    View Slide

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

    View Slide

  15. 開発言語習得に関する話

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide