学生時代に知っておきたかったweb技術の学び方の学び方 | リブセンス
TRANSCRIPT
Photo ©Hiroyuki Takeda / Water station #1
学生時代に知っておきたかった Web技術の学び方の学び方
ー10年先の不確実な未来を楽しむためにー株式会社リブセンス 河原塚 有希彦
しかし、一見大きな変化でも、 基礎的なアプリ構成は変わっていない
イベントキュー
アプリケーション 本体
ルートの画面基底の 画面部品
テキスト表示 画面部品
一覧表示 画面部品
テキスト表示 コントローラ
一覧表示 コントローラ
基底の コントローラ
Brew Event Queue
Application Root Container IWidget
Text Widget List Widget
TextCtl ListCtl IController
フィーチャーフォン(BREW)
IOS Event Queue
UIApplication
UIWindow UIView
UITextView UITableView
UITextView Controller
UITableView Controller
UIViewController
iOS
AppDelegate
書 籍
ジェネラルなプログラミング技術
理論・設計・原則実践・ベストプラクティス
基礎(理論・設計・原則)
Web上の情報のみでは形式的な知識を得にくいため、 それを補完するために書籍を利用する
Web上の情報
独習者向け教材はたくさん出ているが、 逆に教材が多すぎることが問題。
Amazonレビューなどによりある程度の選定は出来るものの、どれが今の自分に最適かまではわからない。
そこで、近い分野の先輩の薦めを参考にする。 いずれも基礎を抑えたものが上がってくるはず。
近い分野で先を走る先輩の薦めを活用
大規模Perl初心者研修を支える技術 http://www.slideshare.net/DaisukeTamada/perl-26371335
Amazonのクラウドエンジニアが選ぶ技術書35選 http://www.amazon.co.jp/b?node=3517238051
「人は1ヶ月でエンジニアになれるのか」 プロジェクトトレーナー推薦の3冊
「人は一ヶ月でエンジニアになれるのか - 詳細解説」 http://www.slideshare.net/livesense/ss-46078743
「アジャイルソフトウェア開発の奥義」http://www.amazon.co.jp/dp/4797347783
タイトルにはアジャイルとあるが、どちらかというとオブジェクト指向分析・設計に強い本。初学者向けの本とは言い難いが、これ一冊マスターすれば、基礎的なOOPの考え方は抑えておけるので教科書に。
最近大人気のコーディングテクニック本。「コードコンプリート」「クリーンコード」に比べコンパクトにまとまっているため、初学者には渡しやすかった。 読んで終わりではなく、繰り返し読んでコードを見返してもらう用途に利用。
「リーダブルコード」http://www.amazon.co.jp/dp/4873115655/
MySQLの鉄板。これも初学者向けとは言い難いが基礎が確実に詰まっているので、これを教科書として進めていった。
「実践ハイパフォーマンスMySQL」http://www.amazon.co.jp/dp/4873116384/
Ruby の言語仕様。少し古いけどこれを読んでおけば間違いない。だが次のパーフェクトRuby に比べて禁欲的すぎるかもしれない。これ一冊で「Rubyの開発ができる」ようにはならない。作ろうとするものを理解する必要があるけど、作ろうとするものはだいたい ruby の世界で完結しないからである。
「プログラミング言語 Ruby」 http://www.amazon.co.jp/dp/4873113946/
言語仕様でない部分もいろいろ書かれてる。プログラミング言語Ruby よりも新しくて関連トピックを多く取り上げている。テストや開発環境、パッケージ管理、自動化ツールについての解説もあって実践的。趣味でどちらかを選んでよい。
「パーフェクトRuby 」 http://www.amazon.co.jp/dp/B00P0UR1CA/
Javascript の言語仕様。良い本。 JavaScriptについて理解するためには、結局これを読まないといけなかった。
「JavaScript 第6版」http://www.amazon.co.jp/dp/4873115736/
セキュリティについては一度座学で一通りやっておかないと。 「Webアプリケーションのセキュリティについて基礎から入門する」ならこの本が鉄板だと思う。
「体系的に学ぶ 安全なWebアプリケーションの作り方」http://www.amazon.co.jp/dp/B00E5TJ120/
「漢のコンピュータ道」という技術Blogで有名なMySQLの偉い人が書いている。読むべき。 3日で読める分量だが述語論理、正規化理論などDBの基礎となる理論を学べる。
「理論から学ぶデータベース実践入門」http://www.amazon.co.jp/dp/4774171972/
DB設計のアンチパターン。「なんかいけてないな」っていう感覚に対して名前と理由を説明してあるのがよい。ハザードマップですね。
「SQLアンチパターン」http://www.amazon.co.jp/dp/4873115892/
インフラエンジニアになるでもなく、ただWebエンジニアとしてちゃんとやっていくなら身につけておくべき。 ざっと網羅的に書かれているので、斜め読みでもよいから読んでおくとよい。
「Webエンジニアが知っておきたいインフラの基本」http://www.amazon.co.jp/dp/4839953554/
「まずJavascriptとかの前に、ブラウザを知る。それが基本である」とフロントエンドエンジニアの第一人者がおっしゃっていた。それは間違いない。まずWebを知らないとWebアプリケーションは作れないですよね。プログラミングはできても。
「モダンWeb」http://www.amazon.co.jp/dp/4873116929/
©Beatnik Photos / sleeping kitty
日々モチベーションを保って学び続けるのは難しい
瞬間最大風速的に意識は高くなるものの、一人でいると気がついたら一日ソシャゲして夕方頃に 「また今日も勉強できなかった」と自己嫌悪。
休日のエンジニアあるある
CASE STUDY
もともと文学部出身で、仕事でもプログラムを書くことはほとんどありませんでしたが、「よちよち.rb」という初心者向けのRubyのコミュニティに参加するようになって、どんどんその魅力に夢中になりました。
自分に合いそうな勉強会をWebで見つけ、 モチベーション維持に成功し、
キャリアチェンジに役立ったそう。
この4月にSIerからキャリアチェンジ してきた内山さんの事例
勉強会をうまく使うコツCASE
STUDY
楽しくやる一番のモチベーションの源。勉強会だけの繋がりだけでなく、チャットを利用して「早起き部」などサイドプロジェクトも行い、コミュニティ化(仲間化)。
カッチリやる「月曜は場所借りて」「金曜はオンラインで」と毎週の習慣化させ、モチベーション維持をはかる。
いまではコンピュータサイエンスの 専門書(CTMCP)を仲間と輪読中だそう。
CASE STUDY
「単なる努力」は 自分の性格的にあきらめて、 「努力が楽しくなる方法」を探そうとするようにしたんです。
CTMCP、一人ではぜんっぜん読める気しないんですけど、毎週仲間で集まって読書会をすると少し読める気がします。
学びになることとやるべきこと(仕事)を結びつける難しさ
就業しながら学び続ける際に 課題となるのは、 やりたいことと学びになることを結びつける技術。
©JD Hancock / Berry Hard Work
「やるべきこと」は事業としての問題解決。 技術的に学びになるか、ではない。
お客さんが契約してくれそうなんだけど、 急ぎでお客さんが欲してるデータを DBから抽出して。今日中でお願いします。
ビジネス エンジニア
また面倒なだけの急ぐ仕事だ・・・
作ってもらったデータなんだけど、伝えてなかった条件があって、もう一度やり直してくれないかな、ナルハヤで。
ビジネス エンジニア
今日はリリース作業があって難しいです。。
問題解決への近道は、 欲しい人自身で対応できること
CASE STUDY
チームとして扱える技術が増えることで、 学びになることに注力できるようになる。
営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイント http://www.slideshare.net/livesense/150225-sql-foreveryone-45695818
http://www.ideo.com/about/ を元に作成
INNOVATION
人 (デザイン)
技術
事業
技術と事業と人(デザイン)の交わる、 融合領域に技術革新が生まれると言われている。 (IDEO/DESIGN THINKING)
技術革新は融合領域に生まれる
“ ー “イノベーションのDNA” 53ページ
イノベーティブなアイデアは、さまざまな人たちの多様な経験が交わる場所で花開く。歴史を通じて、偉大なアイデアは文化や 経験の交わるところで生まれている。
純粋な技術領域から「越境」した 融合領域に取り組むことこそが学びになり、 10年先の不確実な未来を楽しむことにも繋がる。
次に読むべき資料は大規模Perl初心者研修を支える技術 http://www.slideshare.net/DaisukeTamada/perl-26371335
・DeNA社で実施されている新卒研修の事例 ・参考になった技術書ランキング ・「不確実なWebの情報に惑わされるな」
わたしのキャリアチェンジ (仮) https://speakerdeck.com/naoya/watasifalsekiyariatienzi-jia
・エンジニアから技術顧問への転身事例 ・「好きなことより得意なこと、周りの人が喜んでくれることを」 ・マネジメントの重要性、キャリアの積み方の参考に。
次に読むべき資料は (社員事例紹介)2014年も終わり!?いや…俺たちの戦いは...始まったばかりだッ! http://www.slideshare.net/takahirouchiyama2/20141220-lt-up
・Rubyを学習してSIerからエンジニアに転身した内山氏の事例。 ・「モチベーション高い時にやるべきことは、モチベーション維持できる環境に身を置くこと」
「人は一ヶ月でエンジニアになれるのか - 詳細解説」 http://www.slideshare.net/livesense/ss-46078743
・ウェブディレクターが一ヶ月でプログラミングを習得 ・基礎を学ぶ時間がない時の効果的な学習法として、 「何を学んでいないのかを知る」遅延学習法が紹介
http://www.slideshare.net/KurosawaChihiro/2-42758053
賃貸情報サイト"カリル"での 仮説検証型システム開発 http://www.slideshare.net/livesense/ss-48557442
営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイントhttp://www.slideshare.net/livesense/150225-sql-foreveryone-45695818
・社員全員SQL ・技術面だけではなく、組織面からの取り組み ・組織を理解した道筋の整備が技術の伝播を促す
・事業理解を深めることで不要な開発を「捨てる」 ・検証サイクルを早め、チームとして学習 ・近年話題のリーン/アジャイル開発の実践例。
次に読むべき資料は (自社事例紹介)