SlideShare uma empresa Scribd logo
1 de 52
今日は「C#のマスコット」
って言って参加してるくせに
C#ですらない話をして帰る
マスコット参加っつっただろ
※
※ 縁起物として会場の隅っこに置いておくもの
意訳: 最近忙しいから勘弁して
でも何か話すことに
• ここが筑波大で、学生参加者が多いから
• かつライブ配信なしだから
自己紹介
C#でググれ
以上。
つまり…
普段、経歴も所属も含めて、
身の上話をほとんど話さない
話すこと
• 今日は身の上話も少ししようかと
要点:
• ビジョンを持って、ぶれない主軸を作る
• たまたま来る機会を逃さない
• いいと思ったものに誰よりも早く手を出す
• 10年も続ければ何でも板につく
経歴関連
スライド12枚ほど
検閲削除
つまり
謎は謎のまま
あの日、皆が見たのは
幻だったのでしょう
で、
ここ以降の話は
初心者とは…
知識との出会いが
まだないだけの人
のことであって
懇切丁寧に教えなきゃ
わかってくれない人のこと
じゃない
と思っている人間が
初心者向け勉強会に
呼ばれた結果
大事なのは
知識との出会い
知識を得るきっかけ
というお話
++C++;
C#によるプログラミング入門
経歴、個人・コミュニティ編
今や仕事みたいなものだけど
きっかけ
• 授業の課題だった
• 課題が出た時にちょうど、C#が発表された
• 2000年のPDC
• 当初は、MSの発表資料の単なる和訳みたいなレベル
• MSKKよりも早かったがために、超有名に
• 院試勉強用資料だった
• 研究室の同期相手に電磁気学とかを教えるのに使っ
た資料をそのままHTML化して公開
どうしてC#に興味を?
• C#の仕様書を見た瞬間に一目ぼれ
「これはすごい」と思った
• 当時、主にC++使ってて、Javaも少し
• この辺りに感じていた不満が解消されていた
• 他も、割と言語マニアでいろいろ見てたけど
• C#以上に「すごい」と思ったものはなかった
どうすごい
しばらくC#のよさを
語る時間になります
少しくらいC#マスコットの債務をまっとう
全体のバランス
• バランスいい
• 書きやすさと読みやすさ
• できる人の楽さと、できない人の間違いにくさ
• パフォーマンスと生産性
• IDEまで含めたトータル設計
• 開発運用面の考慮も
• ヘッダー要らない
(パスとか依存順とかも気にしなくていい)
• ビルド超速い
値型
• Java最大の鬼門
• Javaはintとかのプリミティブだけ特別扱い
• やつらオブジェクトじゃない
• Pureオブジェクト指向言語のくせに
• 性能面
• 間接参照削減
• GC削減
デリゲート
• 出た当時は主にイベント用に活躍してたけども
• いまや
• LINQ
• Parallel、Task.Run
• 関数型っぽいプログラミング スタイル
ジェネリック
• 真の(型情報が残る)ジェネリック
• リフレクションでも使える
• 高性能
• 値型と合わせて、間接参照、GC、ボックス化削減
• これがないと、LINQもいまいち
アセンブリ
• Win32時代ほどDLL地獄にはまらない
• C++みたいにライブラリを参照するだけで1日
仕事だったりしない
• Javaみたいに、物理パスがちょっと変わっただ
けで動かなくなったりしない
AppDomain
• プラグインとかでセキュリティ確保するには分
離が必要
• かといってプロセス分離は重たすぎてつらい
• プロセス内で、ソフトウェア的に分離・セキュリ
ティ確保
標準化
• C#は結構初期からオープン路線
• JavaはずっとSUNだけで仕様決めてた
• 当時からJavaはひどいって言われてたからね、ちゃ
んと調べれば
• SUNの認定試験必須、標準化されたのはかなり後
• 「アンチMS」期待で担ぎ上げられ過ぎた
• 「標準化したら結局MSの意見が混じって、MSには勝て
ない」なんて言われてた(所詮噂話)
相互運用
• 多言語対応
• ネイティブ相互運用
• 既存資産を無にしない
• なんでもは.NETだけでやろうとしない
• JavaはPure JavaとRun anywhereを狙いすぎた
• そのくせ、漏れるんだわ、仕様って
• ランタイムの実装変わっても動くフレームワーク書
ける人は案外限られる
これは2000年ごろの話
• C#が出た直後ですらこのくらいの差があった
(ジェネリックだけは2.0の話、他は1.0)
• いまや
• LINQ
• dynamic
• async/await
そしてそれからの十数年
• 部分部分、よりよい言語はいくつも出てきた
• でも、全体のバランスで見て「惚れる」ものに
はお目にかかってない
• C#という言語だけでなく、.NET全体、ライブラリ
やVisual Studioも含めてで
• 目先の便利さだけ求めてちゃダメ、考えなきゃいけ
ないことはほんと多い
これまでの教訓
単に自分語りしにきたんじゃなくて
ここからが本題
人とのつながり、大事
• 経歴を見ての通り、就職活動したことない
• 顔パス、コネ、出戻り
• 原稿仕事の依頼も ufcpp.net 経由
• 「原稿だけでは食えない」って時にも友達に
拾ってもらってる
• 大学の価値
• ufcpp.net の価値
• コミュニティ活動の価値
検閲削除
特にいまどき、コミュニティ
• とりあえず飛び込んでいけ
• いろんな会社の人が
• 勉強会にも出てるし
• Facebookメッセージとか意外と答えてもらえるし
• みんな後継者探しに苦労してる
• 自分1人だけだと仕事がスケールしない
ビジョン、大事
• 自分のビジョンと合致する仕事を
• 長続きしなかった専攻・仕事はビジョンが違った
• 検閲削除とかちょっと…
• ガラケーとかちょっと…
• 今の時代にスマホから外れるとかちょっと…
• 見つかるまで探せばいいと思う
• それまで別に他のことしながらでも割と平気
• しっかりしたビジョンを持ち続けてたら、機会を
持ってきてもらえることがある
やりたいことやる
• それができる人は限られるけど
• できる人くらいはやるべき
• でないと夢がない
• 子供が・後輩が、なりたい・やりたいと思える、
夢持てる仕事しなきゃ
やりたいことやれてるのは最
近
• 実際に思い通りやれるようになってきたのは割
と最近
• 誰になんていわれようと10年続けてたのが実って
る
• サーバー・クライアント両方C#とか、5年くらい前からや
りたかったことが、今ようやくできてる
• 割とみんなそうなると思う
• 大企業に入っても、部下付けて裁量権任されるよう
になるのがそれくらい
• フリーランスやってくにしても仕事取れるようにな
るのは
余裕、大事
• お金も
• 無職でも数年生きれる算段なかったら冒険的な生活
してない
• スキルも
• 仕事に余裕があるから新しい技術を調べられる
• 調べた分が次の仕事になる
• バックアップ プランも
• 「いつでもやめれる」 = 普通の人が取れないリス
クを取っても平気
バックアップ プラン
• C#な人だけど、C#に100%賭けてたりしない
• 設計力に自信あるからたぶんどんな言語でもでき
る、そっち売りにできる
• Win8/WP8の伸びがいまいちなら
• Xamarin推せばいいじゃない
• iOS上でC#使えばいいじゃない
• 開発だけじゃなくて
• 原稿仕事
• ufcpp.net の広告収入
主軸、大事
• バックアップはバックアップ
• 主軸がないと自信や余裕につながりにくい
• 自分の土俵があれば勝負は要らない
• 土俵に乗ってもらえるかどうかでほぼ決まる
• 全部1人でやるわけじゃない
• 自分の得意なところを提供して、
不得意なところは人から提供してもらう
• 自分が提供できるものは何か、常に考える
主軸さえぶれなきゃ
• ふらふらと落ち着かない人生やってきてるけど
大筋で見ると割と想像通り
• 理系の手に職で食ってるだろう
• .NETで何かやってるだろう
• ネット関連の何かやってるだろう
• 主軸がしっかりしてたんだと思う
• 数学できれば理系のどこ行っても通じる
• .NETはいいものだ
• 「人と人とのつながり」が大事
主軸1
• 数学できれば大抵の理系科目できる
• 十代のころはこれが自信と余裕の源だった
ちなみに、元々一番得意なのはITよりも数学
• それも理論物理方面で使うような数学
• 関数解析とか
• IT系で使う要素なにもない
主軸2
• 情報科学・情報工学の基礎がしっかりある
• C#がダメでも他もできる
• 今の流行に惑わされる必要ない
• いいと思ったものに、数年先まで見た投資できる
細かいところは気にしない
• 例えば、昔は所詮無知な学生で…
MSも、ダメな製品
はすぐに切る
オープンソース
とか知らない
ほんと
サポート長すぎ
知らないで
すまないだろ
若い頃の無知の例:
細かいところは気にしない
• たぶん、こんな人生 主軸
主軸の向きだけあってれば、
細かい間違いは誤差
タイミング、大事
• タイミング逃すな
• 万全期したうえでも、最終的には「なんかタイミン
グがよかった」でしかない
• 逆に、数少ないそのタイミングが来た時につかめる
ように、常に心構えを
ほんと、たまたま
• 元々、物理に強い
• 情報系に
• C#のサイト始める
• 今や、C#でスマホ ゲーム作り
高校の物理の先生がプログラミングもセミプロ
ちょうどサイト作ろうって時にC#の発表
二十歳前後のいい時期
任期、知人の紹介、etc.
誰よりも早く
• C#のサイト作ったは本当に何よりタイミング
がよかった
• 他に日本語サイトが全くなかった
• MSKK公式よりも和訳早かった
• そういうタイミングがたまたま来た
• そういうたまたまの時に
• サイト作る余裕があった
• ある程度、人への説明文章が書けた
そんな「たまたま」の中
• 主軸を考えるにあたって
• 個人の転機は割と来る
• 集団の転機はなかなか来ない
• 人数が多いほど、統計通りの動きにしかならない
• 特に、リーダーシップも取りずらい、組織をまたい
だ集団心理は
人口統計に基づく予想はかなりあたる
統計的な予想はあたる
• 避けられない未来
• 歴史は繰り返す
• 例えば「ケータイ市場、いつの間にかiPhoneと
Garaxyだらけに」
• 人口構造的に中韓に勝てない
• 安価な労働力、若い情熱の不足
• アメリカでのテレビ市場と一緒
• 経済成長期の日本に市場を取られる
統計的な予想はあたる
• 避けられない未来
• 歴史は繰り返す
• 例えば「ケータイ市場、いつの間にかiPhoneと
Garaxyだらけに」
• 人口構造的に中韓に勝てない
• 安価な労働力、若い情熱の不足
• アメリカでのテレビ市場と一緒
• 経済成長期の日本に市場を取られる
2000年頃にはもう言われてた
• 日本の携帯電話市場やばい
• (具体的にどの会社が覇権取るとか
までは誰にもわからなかったけど)
• そういう話は聞こえてくる
• 当時、一介の学生だった身にも
• いろいろな話をちゃんと聞いておくべき
• 後からしみじみと思い当たることも
だからといって
• そういう将来に気づいてる人は大体どこで何を
やっても平気
• ガラケー全盛期を作った人ら、
元からガラケーの専門家なわけない
• 世代的には「トランジスタでラジオ作ってた」みたいな
人らが責任者
• 専門は変わる、転身はできる
• もちろん常に学びを
最近の話題でいうと
• SIerからソシャゲ方面への転職とかむちゃく
ちゃ多いけど
• なんとなく「SIやばそうなので」じゃダメ
• なんとなく「バブルな業界に行きたい」でもだめ
• 何がどうダメで、じゃあこれからはどうあるべきか
• とか考えれれば、残っても、出ていっても、たぶん平気
まとめ?
• 人とのつながり、大事
• ビジョン、大事
• 余裕、大事
• 主軸、大事
• タイミング、大事

Mais conteúdo relacionado

Destaque

20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門Shinichi Hirauchi
 
Java9新機能概要
Java9新機能概要Java9新機能概要
Java9新機能概要HonMarkHunt
 
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。なおき きしだ
 
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)Yuuki Fukuda
 
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!bitter_fox
 

Destaque (9)

20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門20分でできる!Xamarin.Forms入門
20分でできる!Xamarin.Forms入門
 
WPF4.5入門
WPF4.5入門WPF4.5入門
WPF4.5入門
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
 
Java9新機能概要
Java9新機能概要Java9新機能概要
Java9新機能概要
 
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
 
XAML入門
XAML入門XAML入門
XAML入門
 
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
 
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
 
Xamarin.forms入門
Xamarin.forms入門Xamarin.forms入門
Xamarin.forms入門
 

Semelhante a C#マスコット(公開用)

第0回プログラミング講座
第0回プログラミング講座第0回プログラミング講座
第0回プログラミング講座happo31
 
ゲームデザインについて
ゲームデザインについてゲームデザインについて
ゲームデザインについてmeyco
 
WordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼンWordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼンmiccweb
 
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#ssusera3d157
 
プレゼンテーションの作り方
プレゼンテーションの作り方プレゼンテーションの作り方
プレゼンテーションの作り方Junya Sato
 
CVPR2017 参加報告 速報版 本会議3日目
CVPR2017 参加報告 速報版 本会議3日目CVPR2017 参加報告 速報版 本会議3日目
CVPR2017 参加報告 速報版 本会議3日目Atsushi Hashimoto
 
Introduction to DEEPstation the GUI Deep learning environment for chainer
Introduction to DEEPstation the GUI Deep learning environment for chainerIntroduction to DEEPstation the GUI Deep learning environment for chainer
Introduction to DEEPstation the GUI Deep learning environment for chainerRyo Shimizu
 
How to enjoy GDC for AI and GD?
How to enjoy GDC for AI and GD?How to enjoy GDC for AI and GD?
How to enjoy GDC for AI and GD?Kenji Ono
 
シス研下級生向け
シス研下級生向けシス研下級生向け
シス研下級生向けKunisada Ryouta
 

Semelhante a C#マスコット(公開用) (10)

第0回プログラミング講座
第0回プログラミング講座第0回プログラミング講座
第0回プログラミング講座
 
ゲームデザインについて
ゲームデザインについてゲームデザインについて
ゲームデザインについて
 
WordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼンWordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼン
 
(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#(超初心者向け)オブジェクト指向とC#
(超初心者向け)オブジェクト指向とC#
 
プレゼンテーションの作り方
プレゼンテーションの作り方プレゼンテーションの作り方
プレゼンテーションの作り方
 
CVPR2017 参加報告 速報版 本会議3日目
CVPR2017 参加報告 速報版 本会議3日目CVPR2017 参加報告 速報版 本会議3日目
CVPR2017 参加報告 速報版 本会議3日目
 
C#への招待
C#への招待C#への招待
C#への招待
 
Introduction to DEEPstation the GUI Deep learning environment for chainer
Introduction to DEEPstation the GUI Deep learning environment for chainerIntroduction to DEEPstation the GUI Deep learning environment for chainer
Introduction to DEEPstation the GUI Deep learning environment for chainer
 
How to enjoy GDC for AI and GD?
How to enjoy GDC for AI and GD?How to enjoy GDC for AI and GD?
How to enjoy GDC for AI and GD?
 
シス研下級生向け
シス研下級生向けシス研下級生向け
シス研下級生向け
 

Mais de 信之 岩永

YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話信之 岩永
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話信之 岩永
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理信之 岩永
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型信之 岩永
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)信之 岩永
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#信之 岩永
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方信之 岩永
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6信之 岩永
 
それっぽく、適当に
それっぽく、適当にそれっぽく、適当に
それっぽく、適当に信之 岩永
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform信之 岩永
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3信之 岩永
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4信之 岩永
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略信之 岩永
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略信之 岩永
 
C# design note sep 2014
C# design note sep 2014C# design note sep 2014
C# design note sep 2014信之 岩永
 

Mais de 信之 岩永 (20)

YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話
 
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
 
それっぽく、適当に
それっぽく、適当にそれっぽく、適当に
それっぽく、適当に
 
Modern .NET
Modern .NETModern .NET
Modern .NET
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
C# design note sep 2014
C# design note sep 2014C# design note sep 2014
C# design note sep 2014
 

C#マスコット(公開用)