SlideShare a Scribd company logo
更なるAndroidアプリ開発の
学習のために
@akimicyu
講座内容について(振り返り)
• 最初は基礎を重視
• Androidに関しては黒本で基本的考え方を学習
• その前に、Javaとオブジェクト指向の入門的な学習
• 予習中心(本を読んで来て、講義中に理解を深める)
• 基礎が終わったら実践重視
• プログラマとして開発現場で働けることを重要視
→→済 済 済
黒本  の振り返り
• 基本的な構成要素(p.117)、ライフサイクル(p.123)
• その他の重要事項
• イベント駆動、Callbackメソッド、UIスレッド、ANR、
非同期処理(AsyncTask、Handler 等) ……
各種機能/ライブラリの学習
• Android SDKで提供される各種機能(GPS/センサ/通信……)
• 緑本   のようなレシピ本、ネット上の情報(Qiita等)
• 黒本の「はじめに (p.16-18)」にある参考情報
• 特に、公式の Android Developers (一次情報が大事)
• Android向けに提供される、各種FW/ライブラリ
• Volley、AndroidAnnotations、OrmLite、……
更なる上達のためには?
• 入門には良い入門書が大事だが、本を読んでいるだけでは

プログラミングスキルは身につかない
1. とにかく、自分より上手な人間のコードを読む

(友達、職場の先輩、GitHub、…)
2. とにかく、コードを書く
3. たまに本を読む(Effective Javaとか)
4. たまに他のプログラミング言語もやってみる(Swiftとか)
まとめ
• Androidアプリ開発の基礎的な考え方は学習した
• 講座では触れていない技術的詳細についても、

今回の応用で学習していけばよい (Android以外も)
• さらにコードを読み/書き、技術を深めていけば

プログラマとして開発現場で食っていける
って思うやん?
→ んなわけない
【直視すべき現実】
プログラミングスキルだけでは

プログラマとして食べていけない
職業プログラマとして
食っていくために必要な3つの意識
山田暁通(@akimicyu)
職業としてのプログラマ
• プログラマ(SE、アプリ開発者)
• 要は「プログラムを作る人」
• https://ja.wikipedia.org/wiki/プログラマ
• “クリエイター” や “エンジニア” では焦点がぼやける
ので、ここではそれらの議論はしない
http://www.kiml.co.jp/dhw/ict2014/
プログラマー
趣味と仕事のプログラム
• 趣味のプログラム: 誰でも作れる(技術があれば)
• 自分が使うものを、自分で作れればOK
• 工作なので、自己満足でOK

(動く、コードがきれい、話題の新技術を使用 等)
• 仕事のプログラム: 技術や知識だけではダメ
• 顧客(=他人)の課題を解決出来るかどうかが大事
1.課題を解決すべき
(=対価を得るべき)顧客
目標の理解(組織/自身)
• ある日、3人の石工が、何をしているのかと聞かれた。
3人はそれぞれ、下記のように答えた
1. これで食べている
2. 腕のいい大工の仕事をしている
3. この国で一番の教会を建てている
※ドラッガー「マネジメント」の有名な話
職業プログラマの仕事
• プログラムを書くことだけではない
• 顧客との仕様調整、設計内容の共有、進 の報告
• 技術調査(英語ドキュメントを読む可能性大)
• 画像/音/テキスト(必要に応じて発注して組み込む)
• (仕事の)ソフトウェアは、1人だけでは作れないので、
他のプログラマとチームで開発することが大半
職業プログラマの仕事
• プログラムを書くことだけではない
• 顧客との仕様調整、設計内容の共有、進 の報告
• 技術調査(英語ドキュメントを読む可能性大)
• 画像/音/テキスト(必要に応じて発注して組み込む)
• (仕事の)ソフトウェアは、1人だけでは作れないので、
他のプログラマとチームで開発することが大半
2.協調作業すべきチームメンバー
(とのコミュニケーション)
協調作業(1/2)
• プログラマは意外とコミュ力が要る
• 画面とお話してればいい、、という訳にはいかない
• 理解力、論理的思考能力、自己表現力、共感能力 …… 等
• そして、何より組織の文化に馴染めるかが重要
• 同じ場所で長時間一緒に仕事する相手なので、当然
• 既存の開発メンバーと相性が合うか

(→採用面接時に、現場の開発者が関与する主な理由)
協調作業(2/2)
• 構成管理ツール(git ちゃんと使ってますか?)
• commit, branch, tag, log, diff, push/pull, blame, …
• 開発のワークフローが構成管理ツールに依存    
→ ある意味、プログラミング言語よりも重要 マイルストーン
スケジューリング
• チームのマイルストーンを死守するため、どのような順
番で、いつまでに、自分の作業を終わらせるべきか?
• 自分の作業の遅れが、他のメンバーの作業を止めてしま
わないか?
そういう話じゃない
3.スケジュールの大局観
(締め切りを死守すべきか否か)
まとめ
• 技術だけの職業プログラマは不十分
• 職業プログラマには、下記の意識が必要

(とはいえ、趣味のプログラミングでの習得は困難)
1. 課題を解決すべき顧客
2. 協調作業すべきチームメンバー
3. スケジュールの大局観 ※プロジェクト仕事なら
何にでも云えること
7ヶ月間、おつかれさまでした

More Related Content

Similar to 職業プログラマに必要な意識について

第1回 Android勉強会
第1回 Android勉強会第1回 Android勉強会
第1回 Android勉強会
fujikunn
 
情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将PartHiroki Sakamoto
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2Takuya Nishimoto
 
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
Kenta USAMI
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方
Kosuke Tanabe
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
GuildWorks
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
増田 亨
 
20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf
Kazuaki Ishizaki
 
Hrレディース勉強会201407
Hrレディース勉強会201407Hrレディース勉強会201407
Hrレディース勉強会201407
yu joi
 
2013講義1
2013講義12013講義1
2013講義1
ytanno
 

Similar to 職業プログラマに必要な意識について (11)

第1回 Android勉強会
第1回 Android勉強会第1回 Android勉強会
第1回 Android勉強会
 
情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
 
セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!セキュリティ&プログラミングキャンプに行こう!
セキュリティ&プログラミングキャンプに行こう!
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
0621 ndk game
0621 ndk game0621 ndk game
0621 ndk game
 
20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf
 
Hrレディース勉強会201407
Hrレディース勉強会201407Hrレディース勉強会201407
Hrレディース勉強会201407
 
2013講義1
2013講義12013講義1
2013講義1
 

More from akimichi Yamada

情報処理技術者の倫理とWell being
情報処理技術者の倫理とWell being情報処理技術者の倫理とWell being
情報処理技術者の倫理とWell being
akimichi Yamada
 
情報処理技術者のための技術士受験のすすめ
情報処理技術者のための技術士受験のすすめ情報処理技術者のための技術士受験のすすめ
情報処理技術者のための技術士受験のすすめ
akimichi Yamada
 
NASのHDDが死にかけた話
NASのHDDが死にかけた話NASのHDDが死にかけた話
NASのHDDが死にかけた話
akimichi Yamada
 
20141114 ddd13章 より深い洞察へと向かうリファクタリング
20141114 ddd13章 より深い洞察へと向かうリファクタリング20141114 ddd13章 より深い洞察へと向かうリファクタリング
20141114 ddd13章 より深い洞察へと向かうリファクタリング
akimichi Yamada
 
エリック・エヴァンスのドメイン駆動設計 第3部〜8章まで
エリック・エヴァンスのドメイン駆動設計 第3部〜8章までエリック・エヴァンスのドメイン駆動設計 第3部〜8章まで
エリック・エヴァンスのドメイン駆動設計 第3部〜8章まで
akimichi Yamada
 
DDD7章 言語を利用する:応用例
DDD7章 言語を利用する:応用例DDD7章 言語を利用する:応用例
DDD7章 言語を利用する:応用例
akimichi Yamada
 
Fiddlerで通信のデバッグを効率化する
Fiddlerで通信のデバッグを効率化するFiddlerで通信のデバッグを効率化する
Fiddlerで通信のデバッグを効率化するakimichi Yamada
 
Phone gap + monaca
Phone gap + monacaPhone gap + monaca
Phone gap + monaca
akimichi Yamada
 
Androidでテストってどないすんねん!
Androidでテストってどないすんねん!Androidでテストってどないすんねん!
Androidでテストってどないすんねん!akimichi Yamada
 

More from akimichi Yamada (9)

情報処理技術者の倫理とWell being
情報処理技術者の倫理とWell being情報処理技術者の倫理とWell being
情報処理技術者の倫理とWell being
 
情報処理技術者のための技術士受験のすすめ
情報処理技術者のための技術士受験のすすめ情報処理技術者のための技術士受験のすすめ
情報処理技術者のための技術士受験のすすめ
 
NASのHDDが死にかけた話
NASのHDDが死にかけた話NASのHDDが死にかけた話
NASのHDDが死にかけた話
 
20141114 ddd13章 より深い洞察へと向かうリファクタリング
20141114 ddd13章 より深い洞察へと向かうリファクタリング20141114 ddd13章 より深い洞察へと向かうリファクタリング
20141114 ddd13章 より深い洞察へと向かうリファクタリング
 
エリック・エヴァンスのドメイン駆動設計 第3部〜8章まで
エリック・エヴァンスのドメイン駆動設計 第3部〜8章までエリック・エヴァンスのドメイン駆動設計 第3部〜8章まで
エリック・エヴァンスのドメイン駆動設計 第3部〜8章まで
 
DDD7章 言語を利用する:応用例
DDD7章 言語を利用する:応用例DDD7章 言語を利用する:応用例
DDD7章 言語を利用する:応用例
 
Fiddlerで通信のデバッグを効率化する
Fiddlerで通信のデバッグを効率化するFiddlerで通信のデバッグを効率化する
Fiddlerで通信のデバッグを効率化する
 
Phone gap + monaca
Phone gap + monacaPhone gap + monaca
Phone gap + monaca
 
Androidでテストってどないすんねん!
Androidでテストってどないすんねん!Androidでテストってどないすんねん!
Androidでテストってどないすんねん!
 

職業プログラマに必要な意識について