Sawachin::TECH::CAMP
澤田が始める新感覚「プログラミング講座」
名前が怒られそうtsawada.icon
このプログラミング講座で大事にしていること
つまり、実戦で使えるプログラミング力をつけてもらうのです
このTECH::CAMPを受けるにあたっての注意事項
https://gyazo.com/066ded6b2a4ac062bded350be3298fed
https://gyazo.com/099b25ab0715b5e6e3e7dc0e51cb01bf
https://gyazo.com/8cfea0e82a8db8b38cc4f6f19278d54b
このプログラミング学習で、作ってもらおうと思っているものは以下
https://gyazo.com/8f88db5d7a866b7fe5039b8fae21d84e
Level1「簡単なプログラムを通してweb site, URLの仕組みを学ぶ」
URLの仕組み
ここでいくつか講座と「Macの設定」をする
「PC(Macとか)」「サーバー」「ネットワーク」の関係性
開発の歴史。エンジニア分業の歴史。そしてコンテナ,Git, CD/CI, Serverless。
研究、データ処理とPython。そしてJupyter Notebook
「設定ファイル」「ソースコード(指示書)」なくしてPCは動かない
オープンソース。Github
API, webhook
DBとIFは分ける世界
IFとしてのslack, Alfred
Qiita, Stackoverflow
実は○○もGithubに
dotfilesのfork。ダウンロード。適用
Terminalを快適に使う
Mac defaults
使うAppをinstall
githubの準備
Level2「業務Hack。ちょっとしたプログラミングで業務効率があがる感覚を得る」
ここまで出来れば「個人業務効率化」力はほぼMax
https://www.youtube.com/watch?v=HyU3XL2F9GE
https://www.youtube.com/watch?v=LgZ8Li97yoM
https://www.youtube.com/watch?v=0-fZ47QudYo
https://www.youtube.com/watch?v=-5v7CuXm7Ns
https://www.youtube.com/watch?v=nfOeBBotc2k
https://www.youtube.com/watch?v=tSdQeNOWUl4
Python
Jupyter Notebook
Docker
Git
ここで、「真に価値を生む開発の仕方」を学ぶ
チーム開発のメリットと問題
共有するための創意工夫
複雑性を回避する
内部品質を担保する
振り返りと朝会
悪意のあるアクセスとガード
Level3「上手く作ればお金になる。APIを学ぶ」
ここが出来ると「Level2までで作ったシステムを他の人にも使ってもらう」ことができます
API
OAUTH
APIを使ってみることで「ITで解決できるもの」をよりひろく知る
「自社に合わせたカスタマイズをしやすいサービス」と「しにくいサービス」の判断がつきやすく。
社内ツールの選定力が格段に上がる
GoogleFormにて投稿されると、「slackに通知」されて、「slack上で選んだ対応」がされる仕組み作り
これは、汎用性がとても高い仕組み&技術sawachin.icon
無料ツールの組み合わせで実装できる。
出来上がった仕組み・UIは「普段触っている商用サービス」と遜色ない
実利用例
案件のインバウンドフォーム
社内問い合わせ、部署間依頼の半自動化
8で作った内容を「AWS」で作り直してみる
Google系の無料サービスで適当に作ったものと、「1億人とかに使われる商用サービス」の作り方って大体一緒やん。と思っていただく
「今まで自分のやってきたこと」と「AWSでの設定」を紐づけていくことで、どこかの会社にエンジニアとして入った時に「資料がなくても、ソースコードやAWSの中を見せてもらえれば一つずつ自分で理解できる」を目指す
「同じこと」を違うやり方で実現することで、「技術選定」の感覚を得る。かけられる費用や、実は求められている非機能要件を考慮して、最適なやり方を選ぶ Level4「商業levelの仕組みを一人で作ってみる」
ここが出来ると「ネットにいる不特定多数に提供しても問題ない。お金を払ってもらえる」システムが作れます
お題が書いてありますが、「自分でお題を考える」でも大丈夫ですsawachin.icon
ただ、お題はsawachin.iconがユーザーのものがおすすめです。
sawachin.iconがユーザーじゃないと「このお題でいいんだっけ…こんなシステムでいいんだっけ‥」が常に不確定で進むので
これはtsawada.iconが欲しいと思ったもの
web serviceを一通り学べる
多分、お金取れる
DB設計
ワークフロー可視化・整理
これが高レベルできると、CTOレベル
「数年〜10年くらいは大規模改修がいらないシステム」が作れたら、最強
selenium(UIテストツール)
ここで「大規模組織における継続的なサービス改善」について学ぶ
Level∞「規模対応・不正対応から学ぶ非機能要件」
IPOできるlevelの会社であれば必ず居る。
Level4までで作成したProgrammを「数十万人が一気に使ったら?」「ハッキングされたら?」と考える
学習内容
セキュリティ
OAuth:2.0
分散処理
serverをなぜweb, app, DBと分けるのか
microservices
システムモニタリング
チーム開発
git
アジャイル開発
システム仕様書(要件定義書、WBS、要求整理書 etc…)