第 31 回 codeseek勉強会「面白いソースコードを披露しあいましょう2」が来週火曜日に開催されます。
http://www.codeseek.net/index.htm
前回と同じテーマでやるそうです。
前回参加後に書きかけていた上げ損ないのエントリがあるので、上げておきます。
「またやるんだったら、とっておけばいいじゃないか!」って? 前もって準備して披露する程の内容ではないのです。
では、始めます。→→→
タイトル: 第 30 回 codeseek勉強会の発表に感化されて初めて書いたコードを載せてみる
codeseek勉強会に行ってきました。
関連エントリ: codeseek勉強会の参加を申し込みました 2
赤坂玲音さんがコンテストで受賞された作品のコードを発表されていました。
情熱や気力といった「若さ」を感じるコードで、
あの赤坂さんでも最初は下手なコード書いていたんだぁ、と感慨深げに聞いていました。
使用した言語はこの時が初めてだったという注釈付きで紹介されていましたけど、
初めての言語に挑戦したときは後からこうすればよかったと思うコードを書くものです。
それでよくって、恥ずべきことではないと思います。
#まぁ、ネタとして楽しむためには話す方も聞く方もいつものノリを捨てることが必要で、
#そのために口から出た言葉ではないか、と。
#深く考察する必要なんてなかったんですけど・・・
そう思うと、自分も発表したくなったのでします。
早速ですが、最初に書いたC#のコードをご覧ください。
Team1115.cs
NanoBots1115.cs
(注 リンク先で掲示しています。)
実はこれにはほとんどそのままのサンプルがあって、ほんの一部をいじっただけになっています。
ちなみにファイル名に含まれる1115とは日付(11/15)のことです。
この時のC#の知識といえば
-
オブジェクト指向言語で・・・ (この時はまだオブジェクト指向を習得していません)
-
マイクロソフトが作ってて・・・
-
C -> C++ -> C# という系譜を辿っている (といいつつ純粋に1つの言語からの派生ではないのだろうな、と気付いていました)
といった具合です。
何をしているか推測(推測よりも推理と言った方が正しいかもしれない)はつくけど、説明したり新しく書いたりできませんでした。
書いた直後に構文誤りを指摘してくれたり、定義元や参照先に簡単にジャンプできたり、といった
Visual Studio ならどのエディションでも持っている機能についても、テキストエディタ(ちなみにTeraPadです)なので使えませんでした。
構文を知らなかったので石橋を叩いてわたる感じで、いじってはコンパイル、そしてバックアップを繰り返していました。
コマンドプロンプトでC#コンパイラ(csc.exe)を呼び出して行う正真正銘のコンパイルしです。MSBuildなんてありません。
コマンドプロンプトの履歴から実行しているので、ファイル追加も楽ではありません。
そのことよりも大きな諸々の理由があって、この2ファイル構成で頑張っていました。
またルール(制限事項)があったため、ビルドが通って実行できても審査してもらえないことを懸念してばかりいて、
ちまちまとした修正の積み重ねがサンプルの域から抜け出すことはなかったです。
モチベーションを支えることができたのは1つテーマを掲げていたからでした。
まともに書けない初心者がコンテストに優勝したらおもしろいだろうなぁ、と。
そうなればC#が分かりやすい言語である証明にもなるなぁ、と。
その変わった目標のため、身近に存在している本やインターネットの情報についても全く手出しせずにやり続けました。
優勝はできませんでしたが、賞金を貰うことができました。
そして翌年 Visual Studio 2005 をゲットして、きちんとした勉強を始めました。
ちょうどC# 2.0 が登場した3年前のことです。