Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

わいわいswiftc 番外編ワークショップ #3 - 福岡 #2

Closed
freddi-kit opened this issue Jan 19, 2020 · 3 comments
Closed

わいわいswiftc 番外編ワークショップ #3 - 福岡 #2

freddi-kit opened this issue Jan 19, 2020 · 3 comments

Comments

@freddi-kit
Copy link
Contributor

日時

  • 2020/01/26(日)

Topic

connpass

https://iosdiscord.connpass.com/event/151576/

@freddi-kit
Copy link
Contributor Author

一旦動画編集したいのでicloudの動画を差し替え

@freddi-kit
Copy link
Contributor Author

freddi-kit commented Jan 28, 2020

とりあえず忘れる前に今回のワークショップの反省を書いておく。散文ですが、Swiftコンパイラを使うワークショップをやりたいときは参考になると思います

事前の自分の中で立ててた目標みたいなもの

  • Passの基本(Basic Block、Instructionなどといったデータ構造の操作)について知ってもらい、参加者を少しでもPassが読める・書けるようにする
    • そのために、詳しく解説をして、かつ解説で学んだ知識だけでなるべくすべて解けそうな問題を作成(3問)
    • 興味があれば、kitasukeさんの本を紹介して購入して継続的に学習させたい(最終的なゴール)
  • Swiftコンパイラのコードへの恐怖感?(自分は読めないし。。。みたいな感情)を取り除いてもらう
    • なので、あえて本物のswiftcのコードの読み書きをワークショップでさせた

結果どうだったか?

  • 見た感じ全問解けたのは3名、2問目までは6名?↑で言う最終的なゴールまで行ったのは1名

    • 全員にすべて解答させるのは厳しかった
      • 自分の解説ではC++の知識のカバーが足りなさすぎるので、C++関連の知識で躓く人が多かった
      • データ構造の説明の詰めが甘い(C++だとどうなるのか?とか)
      • 多分一部の人には逆にswiftcのコードへのトラウマを植え付けた気がする
  • 最終的に全員環境構築できたが、環境構築でグダったせいで前日・当日で問題発生

    • 環境構築のチェックのツメが甘かった
      • cmake, pythonといった環境構築に必要なの互換性を調べるのを怠った
    • 講師のswiftcのプロジェクトへの知識不足
      • CMakefileなどをいじったら、Xcode Projectにどのように影響が出るか?
  • アンケートを見る限り、問題の難易度は狙いよりも少々難しめ

    • 自由記入欄も見た感じC++がやっぱり影響してそう。コメントにも多い
      image
  • アンケートであった意見では、応用が少ないという意見もあり

すべきだった対策

  • 時間内にC++のカバーまでするのはそもそもムズカシイので、SILOptimizerのSwiftコード移植版を作るべきだった

    • いつもわいわいのワークショップでやっている方式
    • 大体の参加者がいつも書いている言語だから
  • ↑が間に合わなそうであれば、C++の知識に関連するものはラッパーを作るなりすべきだった

    • C++特有の知識が必要になるものは、なるべく参加者が触らないような仕組みにしたほうが良かった
  • C++に関してもう少し丁寧に資料を書くべき

    • ポインタ周りがかなり適当すぎた
    • おもちさんのいうとおり、autoを逆に使わない
  • 環境構築に関しては、関連するものはすべて確認バージョンを調べて表記するべきだった

    • 特にcmakeとpython
    • できれば関連するもののインストール経緯まで(例: brewでいれた?、pyenvでいれた?)
    • swiftc のビルドスクリプトがcloneしてくれるものはやらなくても良い?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant