Slide 1

Slide 1 text

最新の技術だけ ではなく基本も 大事にしよう suzuki_mar

Slide 2

Slide 2 text

自己紹介 経歴 過去 iOSアプリ開発者 → 体調を崩して休職した ↓ 現在 独自の肩書として、 技術的負債解決プログラマ、若手プログラマコー チと名乗れるように日々精進している 関わっているコミュニティ 渋谷もくもく会 中川塾(東大生がプログラミングを勉強している) フリーランスミートアップ 氏名 鈴木 将之 アカウント名 suzuki_mar

Slide 3

Slide 3 text

自己紹介 趣味 ● 音楽を聞くこと/ライブに参加するこ と ● 新日本プロレス(最近の) 個人活動 ライブ参加者(イベンター)としての活動 が楽になるようなシステムの EventerAgentというシステムを作成して います

Slide 4

Slide 4 text

今回扱う内容 ● 基礎とは ● フロントエンジニアに身につけていて欲しい基礎 ● suzuki_marが身につけておいてよかった基礎 身に着けていればよかった基礎

Slide 5

Slide 5 text

基礎とは チャプター1

Slide 6

Slide 6 text

基礎とは初歩(入門) のことではなく 物事の根本となるもの 基礎とは

Slide 7

Slide 7 text

プログラミングでいうとif,forなど のプログラミング文法に該当する 基礎とは

Slide 8

Slide 8 text

suzuki_marにとっての プログラミングの世界観 基礎とは

Slide 9

Slide 9 text

基礎部分を習得していると 長期にわたって ずっと役に立つ 基礎とは

Slide 10

Slide 10 text

例えば 基礎とは

Slide 11

Slide 11 text

オブジェクト指向 ● ポピュラーとなったのは1996年 ● その前からオブジェクト指向は存在していた ● UML(0.9)が公開されたのがこの時期 20年以上たっても プログラミングの必須技術 基礎とは

Slide 12

Slide 12 text

アジャイル開発 ● 概念としてまとめられたのは,2001年 ● その前はいろんな技術が乱立していた ● まとめられてアジャイル宣言ができたのが 2001年 今となっては当たり前すぎる 開発スタイル 基礎とは

Slide 13

Slide 13 text

このように基礎となる技術や 考え方は10、20年以上役にたつ 基礎とは

Slide 14

Slide 14 text

基本となる考え方を知っているか どうかで、学習効率の差が生まれる 基礎とは

Slide 15

Slide 15 text

新しい技術や考え方が登場しても この技術はこの考え方が 発展したものという理解ができる 基礎とは

Slide 16

Slide 16 text

話題になっている技術も 過去の技術が発展したもの がある 基礎とは

Slide 17

Slide 17 text

例えば 基礎とは

Slide 18

Slide 18 text

IoTは ユビキタスコンピューティング が発展したもの 参考書籍 IoTとは何か 技術革新から社会革新へ 著者 坂村氏 (組み込みシステムのシェアが高い OSのTRONプロジェクトを始めた人) 基礎とは

Slide 19

Slide 19 text

AI(人工知能)は かなり昔から研究されていて 一時期はもてはやされたが 冬の時期が長く続いていた 技術の発展によりディープランニングが登場した 参考書籍 人工知能は人間を超えるか 著者 松尾氏 基礎とは

Slide 20

Slide 20 text

このように今後も基礎ができている 過去の技術が再び脚光を浴びる 可能性がある 基礎とは

Slide 21

Slide 21 text

最新の技術を習得することはすごく大 事なことだがそれと同じぐらい基礎と なる技術も大切 基礎とは

Slide 22

Slide 22 text

● 基礎とは入門のことではなく、根本と なるもの ● 基礎を習得していると長期にわたって 役に立つ ● 基礎を習得しているかどうかで学習効 率の差が生まれる チャプター1のまとめ

Slide 23

Slide 23 text

フロントエンジニアに 習得して欲しい技術 チャプター2

Slide 24

Slide 24 text

注意書き これは、プログラマ(suzuki_mar)が身に つけていてほしいなという願いです フロントエンジニアに習得して欲しい技術

Slide 25

Slide 25 text

フロントエンジニアの定義 デザイナーから渡されたデザインをもとに HTML,CSSやJavaScript等を使用してWebサイトの フロント部分を作成する人 間違っていたらごめんなさい フロントエンジニアに習得して欲しい技術

Slide 26

Slide 26 text

最近ではJavaScriptの重要性が増してきて プログラミングのスキルも求められている プログラミングの基礎技術も習得した方がいい フロントエンジニアに習得して欲しい技術

Slide 27

Slide 27 text

フロントエンジニアの方に 初歩でいいのでプログラミングに 関して身につけていほしい技術 フロントエンジニアに習得して欲しい技術 ● オブジェクト指向 ● プログラミングのお作法(設計方法) ● 読みやすいコード(リーダブルコード)

Slide 28

Slide 28 text

全く知らない(0%)と少し知っている (10%~20%)でものすごい差がでてくる プログラマにとってすごくありがたい フロントエンジニアに習得して欲しい技術

Slide 29

Slide 29 text

オブジェクト指向 フロントエンジニアに習得して欲しい技術 オブジェクト指向を入門するには とにかくわかりづらくてとっつきに くいものという考え方を捨てる ただ単にプログラミングを便利にす るという認識で大丈夫

Slide 30

Slide 30 text

オブジェクト指向のおすすめの本 フロントエンジニアに習得して欲しい技術

Slide 31

Slide 31 text

オブジェクト指向でなぜ 作るのかをおすすめする理由 フロントエンジニアに習得して欲しい技術 多くのオブジェクト指向の入門本は わかりづらいがこの本は1から解説 してかつ変な誤解がないようにして いる 最後らへんでは、他の入門本では 扱っていないこともうまい具合に 扱っている

Slide 32

Slide 32 text

プログラミングのお作法 フロントエンジニアに習得して欲しい技術 管理しやすい設計方法の一覧 同じコードを書かない 一つのファイルや関数、クラス に記述しすぎないなど

Slide 33

Slide 33 text

プログラミングのお作法のおすすめの本 フロントエンジニアに習得して欲しい技術

Slide 34

Slide 34 text

オブジェクト指向設計ガイト をおすすめする理由 フロントエンジニアに習得して欲しい技術 Rubyの本だけど,PHPとかがわかれば,Rubyがわから なくてもなんとかなると思う 簡単なアプリケーションを作りながらプログラミン グのお作法(設計原則)をわかりやすく解説している この本の内容を理解できたら設計するスキルがすご く高くなる プログラマに対してドヤ顔できるかもしれない この本を読む前になぜオブジェクト指向で作るのか を読んだほうがいい

Slide 35

Slide 35 text

読みやすいコード(リーダブルコード) フロントエンジニアに習得して欲しい技術 コードは書くだけのものではなく,読むために 書くもの その意識が低いことにより,メンテナンスがで きないコードを生み出してしまう また,プログラマからまさかりを投げられてし まう

Slide 36

Slide 36 text

まさかりとは フロントエンジニアに習得して欲しい技術 わかりづらいコードや設計に対 して改善(批判)をどんどんして くること

Slide 37

Slide 37 text

読みやすいコードのおすすめの本 フロントエンジニアに習得して欲しい技術

Slide 38

Slide 38 text

リーダブルコードをおすすめする理由 フロントエンジニアに習得して欲しい技術 どういう風に書けば,他の人が読みやすかっ たり変化しやすいコードを書けるかを丁寧 に解説している プログラミングが苦手な人は,この本にかい てあることを意識するだけで,わかりやすい コードを書くことができる 類書はたくさんあるが,初めはこの本を理解 することがすごい重要だと思う

Slide 39

Slide 39 text

プログラミングとは直接関係ないが 身についていると すごくありがたい基礎技術 フロントエンジニアに習得して欲しい技術 ● バージョン管理(Git) ● アジャイル開発

Slide 40

Slide 40 text

バージョン管理(Git) フロントエンジニアに習得して欲しい技術 すでに使われている人も多いと思いますが、フロ ントエンジニアにかぎらずバージョン管理はデザ イナーを含め全クリエイターに使えるようになっ て欲しい プログラミング時に間違って直せなくなったとし ても作業を一旦リセットしてやり直す事ができる ゲームにおける中間セーブ的なことができる

Slide 41

Slide 41 text

バージョン管理(Git)のおすすめの 学習ツール Git-it フロントエンジニアに習得して欲しい技術 日本語も対応している

Slide 42

Slide 42 text

バージョン管理(Git)のおすすめの 学習ツール フロントエンジニアに習得して欲しい技術 GitHubが作成した学習ツール これを使えれば基本的なことはわかる これの範囲外のことはエンジニアに教えてもらえれば OK コマンドライン(黒い画面)で操作するので,Git-itの延 長線上でGUIツールでは操作しづらいこともできるよ うになる

Slide 43

Slide 43 text

アジャイル開発 フロントエンジニアに習得して欲しい技術 世間ではアジャイル開発がメインストリームになって いるのかを理解して少しずつチームを変えていけば幸 せになると思う すでにアジャイル開発をしている会社の人は、なぜア ジャイル開発をしているのかを理解すればより良い開 発チームになる 受け身ではなく積極的になって欲しい

Slide 44

Slide 44 text

アジャイル開発のおすすめの本 フロントエンジニアに習得して欲しい技術

Slide 45

Slide 45 text

アジャイルサムライをおすすめする理由 フロントエンジニアに習得して欲しい技術 アジャイル開発入門の決定版!! なんでアジャイル開発が必要なのか、するとどうなる のかを書いてある アジャイル開発をチームでしていくにはどうすればい いかを書いてある アジャイル開発の本はたくさんあるが、一番初心者向 けだと思う

Slide 46

Slide 46 text

● オブジェクト指向 ● プログラミングのお作法(設計技法) ● 読みやすいコード フロントエンジニアに 習得してもらいたい技術 プログラミングスキル プログラミング以外のスキル ● バージョン管理(Git) ● アジャイル開発

Slide 47

Slide 47 text

人に本を紹介してばかりで お前(suzuki_mar)は 本を読んでるのかという 疑問を持った方がいると思います

Slide 48

Slide 48 text

一応これぐらいは読んでいます 読書記録 (一部技術書やビジネス書以外も含まれています)

Slide 49

Slide 49 text

suzuki_marに とっての基礎技術 チャプター3

Slide 50

Slide 50 text

簡単な経歴 suzuki_marにとっての基礎技術 PHPやRubyのプログラマ からiOSアプリ開発者 になった

Slide 51

Slide 51 text

身につけていてよかった基礎技術 suzuki_marにとっての基礎技術 リーダーブルコードやオブジェクト指向 の基礎技術があったので良かった なかったら,まさかり飛び放題だったか も

Slide 52

Slide 52 text

身につけていた方がよかった基礎技術 suzuki_marにとっての基礎技術 iOSアプリ開発者になった時は プログラミングのお作法(設計原則)や オブジェクト指向の応用的な方法 (デザインパターン)を知らなかったので 読みづらいコード (アンリーダブルコード)を出してしまっ た

Slide 53

Slide 53 text

自分ごと 自分としては,これから先もプログラマとして やっていくつもり そのために,時代に合わせて新しい開発環境に 挑戦していくことになる そのためには最新の技術だけではなく設計や 今後トレンドとなるプログラミングスタイル の基礎技術を身につけていきたい

Slide 54

Slide 54 text

セッションのまとめ 最新の技術を身につけることはとて も大切なことです その技術の基礎となっている技術も とても大切な技術です その両方を楽しく勉強していきま しょう(していきます)

Slide 55

Slide 55 text

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