SE(たぶん)の雑感記

一応SEやっている筆者の思ったことを書き連ねます。会計学もやってたので、両方を生かした記事を書きたいと考えています。 でもテーマが定まってない感がすごい。

初心者(未経験者)向けプログラミング勉強会を開催した話

前回の記事で、プログラミング勉強会開催します!という話を書きました。

hiroronn.hatenablog.jp

実施したので、その話を書きたいと思います。

開催要項

  • プログラミング未経験者の、入門向け
  • ソースを書く「体験」を重視する
  • とある施設を借りる形なので、基本無料

研修資料

github.com

[ GitPitch ] piroron/beginner-seminar/master

GitPitchというサービスを使っています。
…ブログに貼りつけたら、スライド動きました。すごい。
※動くのですが、ブログが重くなったのでタイトルのみにしました。お手数ですが、見たい方はリンクを辿ってください。

github.com

GitPitchを初めて使ったのですが、非常に便利なので、使い方は別途記事にします。
今回は割愛させてください。*1

内容の意図

完全に主観ですが、プログラミングの楽しさはやりたいことができた瞬間に感じられると思います。
それを少しでも感じてほしいために、問題演習を繰り返す感じになっています。

だから、

  • 分からなくてもいい、という前提*2
  • 知識系の解説はそこそこ
  • 本当に最低限の構文だけ説明し、試行錯誤する楽しみ(辛さ?)を味わう

という感じで組み立てました。

それ故に、これができたから何の役に立つの?と聞かれたら、これだけじゃ役に立ちません、としか言えない内容です。

参加者層

皆さん、プログラミング未経験でした。
内容的にも、経験者だと簡単に解けてしまうので、良かったと思っています。

未経験者から見たプログラミング

参加いただいた方と話していると、

流行っているし、できたほうがいいとは思うけど、文系だし…

とか、

VBAでいろいろやりたいけど、どこから始めていいか分からない

というような意見がありました。
前回記事で考察した意見と被りますが、取っ掛かりが無い、という印象でした。

人によって、やりたいことも様々で、

  • 業務の自動化
  • 今後のため(勉強しておけば役に立つ)
  • 機械学習とか

等々ありました。

やってみた感想

自分の説明が下手だったのもありましたが、

message = input()
print(message)

で躓いた時には、焦りました。

最初の問題で、完全に事前知識がない状態だと、たしかに意味不明かも…と反省しました。*3

スライドの色とか、実際に本番になって見づらい、ということもあったので、事前準備不足も悔やまれます。
直前にスライド増やした部分は、説明が矛盾することもありましたし。

あと、回答例をスライドに記載するのも大事ですが、実際に目の前で書いていくのが、思った以上に理解が深まっているように思いました。
実演って大事ですね。

あと、結構体力使います。ほんとに。

いただいた感想

一番うれしかったのは、お金払うから、毎週やってほしい!というものでした。
いやもうほんと、ただただ嬉しいです。

あと、VBAとか、別のテーマでやって!というお話もありました。
VBAはね…私が好きじゃないんです。できますけど。
自分にやる気があれば、開催できるかなあ…

感想

やはり、強く感じたのは、プログラミング始めたいと考えている人は多い、ということです。
取っ掛かりが無い人に、取っ掛かりの場があるのも、大事だと思いました。

あと、プログラムって案外融通利かないんだなぁという部分を、ちょっと知ってもらえた気がします。
文字列を数値に変えるだけでも、

  • 数値以外の文字が入っただけで例外が起こる
  • 空文字列だったら例外が起こる
  • 事前に数値変換できるか調べないといけない

とか、普通の感覚からしたら「そんなこともできないの!?」ということですら、人間が介在しないとプログラムは動かない、ということが分かってもらえた気がします。

プログラミング言語は魔法(ウィザード)じゃない*4、ということが、伝わったのなら、個人的にはよかったなぁ、と思っています。

今後

プログラミング教育にちょっと興味がある今日この頃です。
こういう活動も、今後ちょっとずつ始めていきたいと思っています。

おわりに

自分にとっても、学ぶことが多かった勉強会でした。

スライドは、結局1か月程度書いていたので、見てもらえると嬉しいです。


*1:Qiitaに載せるかもしれない。書いたらリンク貼ります

*2:あえて間違わせる、ぐらいの内容

*3:とはいえ、input()の括弧は関数の呼び出しだ、とか、そういう話をいきなりやってもしょうがない、という気もする

*4:だから、すごい開発者、すごいシステムは魔法みたいなもの