【公開講座受講】C言語 最終回

全4回の公開講座も本日で最終日となりました。

ようやく、かなり有用な内容に。惜しかったですね。ここから始まるような4回シリーズだと良かったんですが、あまりにも初心者以前の人ばかり集まりすぎたため相当遅いペースになりました。2.5時間x4日で10時間分あったわけですが、10時間もやってWindowsアプリの入り口までしか行かないのか、という感じでありました。

しかも、じゃぁ初心者の人には満足な内容なのか、と言うとそうでもなく、例えば変数の宣言についてなどの説明は一切ないため、おそらく何をしているかわからないと思われますね。ポインタなんかも当然のように出てきて、写経みたいなことになっていました。

僕が個人的に最も知りたかったウィンドウプロシージャに関する話が今日は聞けて、VCなんかを使うとIDEが全部やってくれちゃう部分を細かく説明してくれたので理解が深まりました。こういうとき原理主義みたいな先生は非常に良い。

今日もものすごい発言が大量に飛び出してました。

まず、リソースエディタ。一応リソースエディタの説明もあったわけですが、「こんなものはいらないし使わない」みたいな話で、がりがり全部コーディングするという方向でありました。さすがです。

さらに、先生自身はほとんどウィンドウアプリケーションを作らないとのことで、「コンソールで何ら問題ない」と言い切っておられました。キーボードだけでオペレーションもできる、とマウスさえも不要ぐらいの勢いです。

そういう人によるWin32APIを使ったWindowsアプリの解説なので、ブラックボックスが全然ないのです。すべてコードを書き、意味合いを解説してくれました。さわり程度とはいえ、wParamやlParamといったパラメータの意味や使い方などの理解が深まりました。

リソース周りのイベントナンバーを定数としてDefineする話などは、3dsmaxのプラグインを書くときに浅い理解のまま書いていたことの本来の意味がよくわかりました。これだけでも受けたかいがありました。

以前同じ大学の公開講座で数学を受講し、今回はプログラミング。また理系の講座があったら是非参加したいと思います。

【公開講座受講】C言語 第三回

公開講座、三回目に参加してきました。

今回はこれまでの復習のような内容と、目下使用中の先生オリジナルの開発環境をUSBメモリに入れて配布してくれる、というおまけがついていました。

この公開講座、2.5時間x4日分で料金が3000円。破格も破格、価格破壊が起きています。初日にはメモを取るためのノートをくれたのですが、今日はUSBメモリ+開発環境まで。USBメモリ配ってる時点でもうほとんど講義本体は無料みたいな状態になっています。大学だからできる料金設定と謳ってありましたが安すぎますね。

今日の内容は大半が復習だったわけですが、話の端々に有用なことが出てきて、けっこう得るものがありました。

僕はこれまでC++はそれなりに使うことがあったのですが、CとC++は思った以上に違って、C++の感覚で書くと通らないことが多いですね。

Win32APIを使ってWindowsアプリを作る、っていう話だったのだけれど、Win32APIらしきものはまだ出てきません。あとはラスト1回を残すのみ。果たしてどこまでいけるのでしょうか。

そして、ここでCを学んでもきっとCを書く機会は今後もほとんどないでしょうね。ただ、Win32APIはたまに使うことがあります。Pythonでもctypesから呼んだり、3dsmaxでもC++でWin32APIを呼ぶやつを書いてMaxScriptにパブリッシュしたり、というようなことをやったことがあって、Win32APIの謎の型に悩まされたことがありました。

そうした部分の理解を深めたいと思っての参加でしたが、ちょっとそこまで行きそうにありません。

【公開講座受講】C言語 第二回

公開講座の2回目に出席。

今回、

  • C言語による
  • Windowsプログラミング

ということで、Windowsでの開発ということになるわけですが、そうなると問題になるのは当然開発環境。2.5時間×4日という公開講座の中で、開発環境のセットアップ、なんてことをやっていたら時間がない、というのはわかります。

が、用意されたものが先生オリジナルの開発環境。というよりフリーソフトを固めたランチャみたいなものです。そこからあれこれ起動して、ショートカットでコンパイラが走るようになっていたりして便利なのだけど、これC言語を体験するという意味では良いけれど、家に帰っても自分で環境を作れなければ使えないではないか。

さらに、gccでWindowsアプリもコンパイルするのだけれど、文字コードのオプションが入っていないから文字化けするわけですね。しかも起動されているものが実行ファイル(コンパイルされている)のでオプションを追加できない。先生、裏目に出てますよ…。

相変わらず受講者は、エディタからファイルを開く、って言ってるのにエクスプローラ上でひたすらダブルクリックして開けない、開けないって言ってるし、講座の内容と集まった受講者の間に悲惨なほど隔たりがあってどうしようもない。

僕としては1回につき1つでも新たな何かを知ることができれば満足なわけですが、今回は正直微妙でした。ウィンドウプロシージャの手前で終了となってしまい、新たに知るような内容がなかったのです。

唯一、先生が付箋を貼りまくって愛用していた本が、僕が会社に置いている本の前のバージョンのもので、やはりそれになりますよね、っていうところで裏付けを得たことが収穫といえば収穫でした。

残すところあと2回。さぁ、本当にWindowsAPIを使ってWindowsアプリを作る、っていうところまで行くのでしょうか。特に「C言語で」という部分で僕は理解の浅いところを深められればと思っているわけですが、そういう濃いところへ行けるのでしょうか。

期待と不安が3:7ぐらいですが、残り2回、楽しみたいと思います。

【公開講座受講】C言語

大学の公開講座でC言語によるWindowsプログラミングという講座があったので受講してきました。全4回、各回2時間半というボリューム。

初回を受講してきたわけですが、とにかくもう受講者のレベルが低い。確かに初心者向けではあるものの、さすがにフォルダのコピーもままならないような人が何人もいるような状態だとほとんど進まないわけですね。

初日2時間半もやって、結局かなり駆け足でもforループどまり。おそらく本来は分岐までやる予定だったと思うのだけれど、コンソールに文字を吐き出すプログラムを書いて、ループさせるところで終了。前途多難な感じです。

市民向けの公開講座ということで、定員は設けられているものの受講資格のようなものはありません。今回は「高校生以上」とだけ書いてありました。しかしわずか4日で、最終的にはWin32APIでWindowsアプリを作る、って話なので、最低でも「最低限のPC操作ができる」程度の条件はあっても良かったのではないかと思います。なにしろ配られたIDの_(アンダースコア)の入力方法がわからないようなレベルですので。

定員12名に対して7名しか集まっておらず、およそその半分がファイル操作もままならないレベル。そこでCのソースを書いてコンパイルしてリンクする、というような話をしているわけですが、けっこう無謀です。

しかし先生はいまどき珍しい原理主義者みたいな人で面白いです。いきなり開口一番、「最近はPythonとかJavaScriptとか簡単な言語があるけれど、結局全部Cに変換されて機械語になるわけで、Cをやっておけば良い」みたいなものすごいことを言います。

「Cで書いたものはあらゆるところで動くし、一番速い」ともおっしゃっていて、間違ってはいないけれどCも万能じゃないからPythonのような言語が出て来たわけで・・・というような話で、こういう原理主義みたいな人は最近珍しいので面白いです。

僕としては、何か一つでも新しいことを知ることができればそれで満足なので良いのでありました。

初回では、forループのカウンタ変数の型に、intではなくcharを使うという点が新鮮でした。極力無駄なメモリは使わないという発想で、さらにintを使うよりcharのほうが加算が速いとも言っていました。確かに厳密にはそうでしょうが、おそらくいまどきのPCで、forのカウンタ変数をintで取るかcharで取るかで実行速度の差はほとんど無いんじゃないでしょうか。

とはいえそういう時代の人の話は新鮮です。unsignedを使えば倍のカウントができる、みたいなことで、unsigned charを使って200回ループさせるようなものを書いて終わりました。

途中、wsprintfで文字列変数を作成するという話の際に、きわめてあっさりとwindows.hをインクルードする(先生は「ひっかける」とおっしゃっていました)という話が登場するなど、フォルダのコピーに手こずる人にはさっぱり理解不能だと思われる内容も飛び出していました。誰向けなのかよくわからない講座ですが楽しく受講しております。