generated at
Sawachin::TECH::CAMP
澤田が始める新感覚「プログラミング講座」
名前が怒られそうtsawada


このプログラミング講座で大事にしていること
つまり、実戦で使えるプログラミング力をつけてもらうのです

このTECH::CAMPを受けるにあたっての注意事項


このプログラミング学習で、作ってもらおうと思っているものは以下
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
Python
Jupyter Notebook
Docker
Git

ここで、「真に価値を生む開発の仕方」を学ぶ
チーム開発のメリットと問題
ドキュメントか、ソースコードか?そしてアジャイル ソフトウェア宣言
共有するための創意工夫
複雑性を回避する
内部品質を担保する
振り返りと朝会
悪意のあるアクセスとガード

Level3「上手く作ればお金になる。APIを学ぶ」
ここが出来ると「Level2までで作ったシステムを他の人にも使ってもらう」ことができます
API
OAUTH
APIを使ってみることで「ITで解決できるもの」をよりひろく知る
「自社に合わせたカスタマイズをしやすいサービス」と「しにくいサービス」の判断がつきやすく。
社内ツールの選定力が格段に上がる
GoogleFormにて投稿されると、「slackに通知」されて、「slack上で選んだ対応」がされる仕組み作り
これは、汎用性がとても高い仕組み&技術sawachin
無料ツールの組み合わせで実装できる。
出来上がった仕組み・UIは「普段触っている商用サービス」と遜色ない
実利用例
案件のインバウンドフォーム
社内問い合わせ、部署間依頼の半自動化
8で作った内容を「AWS」で作り直してみる
Google系の無料サービスで適当に作ったものと、「1億人とかに使われる商用サービス」の作り方って大体一緒やん。と思っていただく
「今まで自分のやってきたこと」と「AWSでの設定」を紐づけていくことで、どこかの会社にエンジニアとして入った時に「資料がなくても、ソースコードやAWSの中を見せてもらえれば一つずつ自分で理解できる」を目指す
「同じこと」を違うやり方で実現することで、「技術選定」の感覚を得る。かけられる費用や、実は求められている非機能要件を考慮して、最適なやり方を選ぶ


Level4「商業levelの仕組みを一人で作ってみる」
ここが出来ると「ネットにいる不特定多数に提供しても問題ない。お金を払ってもらえる」システムが作れます
お題が書いてありますが、「自分でお題を考える」でも大丈夫ですsawachin
ただ、お題はsawachinがユーザーのものがおすすめです。
sawachinがユーザーじゃないと「このお題でいいんだっけ…こんなシステムでいいんだっけ‥」が常に不確定で進むので
これはtsawadaが欲しいと思ったもの
web serviceを一通り学べる
多分、お金取れる
DB設計
ワークフロー可視化・整理
これが高レベルできると、CTOレベル
「数年〜10年くらいは大規模改修がいらないシステム」が作れたら、最強
selenium(UIテストツール)

ここで「大規模組織における継続的なサービス改善」について学ぶ

Level∞「規模対応・不正対応から学ぶ非機能要件」
IPOできるlevelの会社であれば必ず居る。
Level4までで作成したProgrammを「数十万人が一気に使ったら?」「ハッキングされたら?」と考える
学習内容
セキュリティ
OAuth:2.0
分散処理
serverをなぜweb, app, DBと分けるのか
microservices
システムモニタリング
チーム開発
git
アジャイル開発
システム仕様書(要件定義書、WBS、要求整理書 etc…)