狠狠撸

狠狠撸Share a Scribd company logo
私が思ふエンジニア論
1
注意:以下、大なり小なり個人的見解が入ってます
2
エンジニアとは
3
エンジニア(技術者)とは「肩書」である
4
?物事を常に学習し、論理立てて考え、説明ができ、適切なアウトプットができ
る者
?ITエンジニア? プログラマ、デザイナー、システムエンジニア...
?その他エンジニア? 寿司職人、医師、スポーツ選手、映画監督、画家、ギタ
リスト...
?上記はすべて職業である。
?世の中にはこれらができないで職業についている人が結構いる
職業とは?
5
職業とは、仕事にしている(対価をもらっている)
6
?職業とは、求められているエンジニア(技術)力を用いて仕事に還元できてい
ること
?プロ(玄人)とは、自分で決めるものではなく、他者の評価基準として決めて
もらうもの。一般的にはエンジニア力が他者の評価基準より高いものを示す
?その他にも、音楽家、エバンジェリスト、評論家なども上記と同意
?なので、自身で名乗ると「自称」となってしまう
?会社員や公務員、銀行員などは、どの組織体に属しているかを示す
?CTOやリーダー、部長などは組織体が決めた役職
仕事の中には職務がある
7
職務とは
8
?プロジェクトマネージャー、プロジェクトリーダー、コンサルタント、ディレ
クター、プロデューサー....
?これらは仕事を行う上で、他者から任命?認知されて行うもの
?職業としてのプログラマと職務としてのプログラマはある
?テスターは、職務である
エンジニアの三大原則
9
創造 解決
学習
10
学習とは?
11
アウトプットするためのインプット
12
効果的な学習方法をつくろう
1. 短期的な目的とゴールをつくろう
2. 学習するための時間配分やリズム、優先度を考えよう
3. 自分にとって吸収力のあるインプット方法や優先度を考えよう
a. 見る、読む
b. 聞く、教えてもらう
c. 書く、動かす
d. 話す、教える
4. 学習は反復しよう
a. 見る、読む → 書く、動かす → 見る、読む → 聞く、教えてもらう → 話す、教
える....
13
効果的な学習フローをつくろう
1. 真似してみよう(コピペじゃないよ)
2. 真似した成果物を読んで理解しよう
a. 成果物の内容を読んで、「なぜ」を考えてみよう
b. 成果物の良いところ、悪いところを考えてみよう
c. 目的と成果物が合致しているか考えてみよう
3. 成果物を動かす仕組みを理解しよう
a. サーバからプログラムを動かす環境を構築してみよう
b. 環境の構成図や動いている流れを書いてみよう
14
創造とは?
15
インプットを元にしたアウトプット
16
創造できるエンジニアになろう
1. 要求(目的)を正しく理解しよう
a. 文書や言葉をまとめなおしてみよう
b. まとめたものを人に見てもらおう
2. 要求(目的)を元に、アウトプットをイメージしてみよう
a. 全体像や流れを図にしてみよう
b. 流れの一つ一つを具体化してみよう
3. イメージしたことをアウトプットしてみよう
a. 具体化したイメージを1つ1つプログラムしてみよう
b. 全体像や流れに沿っているか確認してみよう
c. 要求(目的)に沿っているか確認してみよう
17
解決とは?
18
アウトプットを元にした予測
19
解決できるエンジニアになろう
1. アウトプットが要求(目的)に沿っているか確認してみよう
a. 全体像や流れに沿っているか確認してみよう
b. 流れの1つ1つが沿っているか確認してみよう
2. 上手に調べてみよう
a. 何を元に調べるのか考えてみよう
b. どうやって調べるのか考えてみよう
c. 調べた結果何が解決できるのか考えてみよう
3. 根拠が正しいか確認してみよう
4. 正しい予測をしてみよう
a. 人の特性や自分の指向が含まれていないように、根拠が含まれているようにしよう
b. 予測が正しいか検証してみよう
c. 次回からこのステップを省略できる方法を考えてみよう
20
自身のエンジニア力を測ろう
職業:プログラマ編
21
基礎が身についているエンジニアとは
経験年数:1?3年
1. 三大原則が意識的に正しく行える
2. 自発的になんでも、誰からも吸収するだけ吸収し
ていける
3. 先輩エンジニアに推められたことをすべてやり遂
げられる
4. 自発的に手助けを遠慮なくどんどん求めていける
5. 得意、苦手、好き、嫌いがだんだんとわかってく
るけど、すべて最後までやり遂げられる
6. 目的(要件)とアウトプットを専門用語を使わず
に自分なりの言葉で説明できること
求められる能力
1. 日常的に使うサーバコマンドが扱える
2. 実行環境を自分の力で作れる
3. コーディング規約に沿って書ける
4. キャッシュ、ログ、セッションが扱える
5. デバッグできる
6. 手動テストができる
7. UML図が書ける
8. 基礎的なSQLが分かる
9. JSON、XML、CSV、TSVのフォーマットが扱え
る
10. ファイルへの読み書きができる
11. 正規表現が書ける
12. HTTPリクエスト、非同期処理が扱える
13. ここまでで勉強したことを人に教えることができ
る
22
基礎が身についたか確認テスト
問題①
?1?1000の数字の範囲とする
?3で割り切れると「Fizz」、5で割り切れると
「Buzz」、7で割り切れると「Wolf」を出力する
?また、3と5の両方で割り切れると「FizzBuzz」など
「Fizz」「Buzz」「Wolf」の順番で組み合わせを出力
する
?割り切れない場合はその数字自体を出力する
問題②
?入力文字列は半角大文字小文字英数字とする
?入力文字列の中で特定条件に沿った文字列を見つけて
最大文字数を返却する。条件にまったく合致しない場合
は-1を返却する
?半角数字は含まれていないこと
?かならず大文字英字が1文字以上含まれていること
?例えば、入力文字列「aB0ggY」とした場合、「aB」
と「ggY」は条件と合致しているが、「aB0」や
「0ggY」は合致しない。この場合、「ggY」が最大文
字列のため返却は「3」となる。
23
一人前のエンジニアとは
経験年数:4?10年
1. 三大原則が無意識に正しく行える
2. 自身に有益な有識者を探して効率的に吸収できる
3. ある程度独力で解決ができる
4. 必要なことには今までの経験や専門分野の壁や苦
手意識を持たずにすべて飛びついてやり遂げられ
る
5. 上記をやり終えてはじめて三大美徳を意識し、実
践できる
6. 目的(要件)に至るまでの戦略、戦術、戦法を自
分なりの言葉で理解して説明できること
求められる能力
1. CRUDが独力で書ける
2. シェルやバッチを作れる
3. テストプログラムが書ける
4. データ(DB)の正規化(設計)ができる
5. APIを作れる
6. 本番環境のようなサーバ構成を作れる
7. 有名なフレームワークやライブラリのコアソース
コードを読める
8. デザインパターンを適用できる
9. 集計などの複雑なSQLが書ける
10. SQLやメモリのチューニングができる
11. ここまでで勉強したことを人に教えることができ
る
24
一人前エンジニアになったか確認テスト
問題①
?DBやキャッシュを使って、RESTfulなCRUDに対応し
たAPIを作る
?APIに対応したクライアントアプリケーションを作る
問題②
?1?3年のエンジニアに勉強会を開いて講師を行う
?確認テストのテストプログラムと採点プログラムを作
る
問題③
?データの解析や集計を行うバッチを作る
?または、SQLやメモリのチューニングを行う
?または、サーバやDBや検索エンジンの設計やチュー
ニングを行う
問題④
?GithubやQiitaなどにあげて、スターを100以上もら
う
?または、4?10年のエンジニアに勉強会を開いて講
師を行う
25
リードできるエンジニアになるためには
?三大原則のどれか1つ以上が周囲に誇れる
?師匠に1人以上出会える
?時間や体力的にキツイ経験をしている(ただし、精神的にはNG)
?人から教えを請われる
?自身の中で創造できる最高の理想を現実にできる
?研究できる(技術的な目的達成のためにPDCAを回せる)
?戦略、戦術、戦法を創造できる
26
会社、人、仕事、エンジニアとの付き合い方
27
会社?エンジニア
?役職や給与、評価は、かならずしもエンジニア力と合致しているわけではない
し、自身の未来には役に立たない
?会社はエンジニア力を求めていると言うが、実はそうではない。(エンジニア
数を求めている)
?自身が会社に求めることは、自身のエンジニア力を効率的に伸ばせる環境かど
うかを考えてみよう
28
人?エンジニア
?人間性や社会性とエンジニア力は別物
?他人に求め過ぎたり、他人と比較しないこと
?人が本当に困っているときがエンジニア力を発揮したり伸ばしたりするチャン
ス
?正しくエンジニア力を活用できるか、物事の本質を冷静に見てみよう
29
仕事?エンジニア
?仕事は、エンジニア力を使って目的を達成すること
?エンジニア論を仕事に求めてはいけない
?仕事は、個人の好き嫌い、趣向を求めていない
?仕事を楽しめないときは、会社、エンジニア、人どれが原因かを考えてみよう
?仕事の範囲や、やりたい仕事の基準を型にはめて考えてはいけない
?仕事を行って、エンジニア力がどれだけ身についたか自己評価しよう
30
エンジニア?エンジニア
?エンジニア論を語るには一人前のエンジニア力を持った人以上でないと無駄
?何もアクションや結果をだしていないのに技術の話をするのは無駄
?どれだけすごい技術を使っただけの話をするのは無駄
?成果物の精度の低さを会社、人、仕事のせいにするのは無駄
?上記の話を雑談の場でべらべら話すのは無駄
?エンジニア全体として、より良い未来を創造しあえるエンジニアを探そう
31
最後に
?自身のポジティブな心を維持や向上することを一番に考えればいい
?言葉や流行りに泳がされないこと
?意欲±現実と時間は比例するはず
?スキルチェックシートや経歴書を適宜書いてみよう
?考えるより行動あるのみ
?1人の力は小さいので、最終理想形は自分の思い描く大きな組織体に属したり、
作ったりすること
32
おわり
33

More Related Content

Similar to 私か?思ふエンシ?ニア论 (11)

【IMJ】やり尽くし感を打開する新アプローチ『サービスデザイン』を体感ーサービスデザインワークショップ (2015.02.19)
【IMJ】やり尽くし感を打開する新アプローチ『サービスデザイン』を体感ーサービスデザインワークショップ  (2015.02.19) 【IMJ】やり尽くし感を打開する新アプローチ『サービスデザイン』を体感ーサービスデザインワークショップ  (2015.02.19)
【IMJ】やり尽くし感を打開する新アプローチ『サービスデザイン』を体感ーサービスデザインワークショップ (2015.02.19)
IMJ Corporation
?
痴笔辞贰が语る!!会社员(?)として奥别产エンジニアを20年続ける话!(苍=1)
痴笔辞贰が语る!!会社员(?)として奥别产エンジニアを20年続ける话!(苍=1)痴笔辞贰が语る!!会社员(?)として奥别产エンジニアを20年続ける话!(苍=1)
痴笔辞贰が语る!!会社员(?)として奥别产エンジニアを20年続ける话!(苍=1)
MasayukiKozawa
?
BPSttudy#84 アイデアをカタチにする方法
BPSttudy#84 アイデアをカタチにする方法BPSttudy#84 アイデアをカタチにする方法
BPSttudy#84 アイデアをカタチにする方法
Haruo Sato
?
市场価値を高める仕事のつかみ方
市场価値を高める仕事のつかみ方市场価値を高める仕事のつかみ方
市场価値を高める仕事のつかみ方
Daiki Tanoguchi
?
厂滨におけるフ?ロシ?ェクトとフ?ロマネ
厂滨におけるフ?ロシ?ェクトとフ?ロマネ厂滨におけるフ?ロシ?ェクトとフ?ロマネ
厂滨におけるフ?ロシ?ェクトとフ?ロマネ
Takesato Nigorikawa
?
やりたいことをプロダクトにねじ込む技术とねじ込んだ结果
やりたいことをプロダクトにねじ込む技术とねじ込んだ结果やりたいことをプロダクトにねじ込む技术とねじ込んだ结果
やりたいことをプロダクトにねじ込む技术とねじ込んだ结果
KayoMiyata
?
滨罢资产価値の多面的な评価の枠组み
滨罢资产価値の多面的な评価の枠组み滨罢资产価値の多面的な评価の枠组み
滨罢资产価値の多面的な评価の枠组み
Tetsu Kawata
?
行动できるエンジニアは何が违うのか
行动できるエンジニアは何が违うのか行动できるエンジニアは何が违うのか
行动できるエンジニアは何が违うのか
修治 松浦
?
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
Kouji Hosoda
?
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
Takashi Uemura
?
JTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun TzuJTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun Tzu
irix_jp
?
【IMJ】やり尽くし感を打開する新アプローチ『サービスデザイン』を体感ーサービスデザインワークショップ (2015.02.19)
【IMJ】やり尽くし感を打開する新アプローチ『サービスデザイン』を体感ーサービスデザインワークショップ  (2015.02.19) 【IMJ】やり尽くし感を打開する新アプローチ『サービスデザイン』を体感ーサービスデザインワークショップ  (2015.02.19)
【IMJ】やり尽くし感を打開する新アプローチ『サービスデザイン』を体感ーサービスデザインワークショップ (2015.02.19)
IMJ Corporation
?
痴笔辞贰が语る!!会社员(?)として奥别产エンジニアを20年続ける话!(苍=1)
痴笔辞贰が语る!!会社员(?)として奥别产エンジニアを20年続ける话!(苍=1)痴笔辞贰が语る!!会社员(?)として奥别产エンジニアを20年続ける话!(苍=1)
痴笔辞贰が语る!!会社员(?)として奥别产エンジニアを20年続ける话!(苍=1)
MasayukiKozawa
?
BPSttudy#84 アイデアをカタチにする方法
BPSttudy#84 アイデアをカタチにする方法BPSttudy#84 アイデアをカタチにする方法
BPSttudy#84 アイデアをカタチにする方法
Haruo Sato
?
市场価値を高める仕事のつかみ方
市场価値を高める仕事のつかみ方市场価値を高める仕事のつかみ方
市场価値を高める仕事のつかみ方
Daiki Tanoguchi
?
厂滨におけるフ?ロシ?ェクトとフ?ロマネ
厂滨におけるフ?ロシ?ェクトとフ?ロマネ厂滨におけるフ?ロシ?ェクトとフ?ロマネ
厂滨におけるフ?ロシ?ェクトとフ?ロマネ
Takesato Nigorikawa
?
やりたいことをプロダクトにねじ込む技术とねじ込んだ结果
やりたいことをプロダクトにねじ込む技术とねじ込んだ结果やりたいことをプロダクトにねじ込む技术とねじ込んだ结果
やりたいことをプロダクトにねじ込む技术とねじ込んだ结果
KayoMiyata
?
滨罢资产価値の多面的な评価の枠组み
滨罢资产価値の多面的な评価の枠组み滨罢资产価値の多面的な评価の枠组み
滨罢资产価値の多面的な评価の枠组み
Tetsu Kawata
?
行动できるエンジニアは何が违うのか
行动できるエンジニアは何が违うのか行动できるエンジニアは何が违うのか
行动できるエンジニアは何が违うのか
修治 松浦
?
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
Kouji Hosoda
?
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
20121124 学生セミナー「基礎からわかる! IT業界とプログラミング」
Takashi Uemura
?
JTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun TzuJTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun Tzu
irix_jp
?

私か?思ふエンシ?ニア论