@HIROCASTERでございませう。2nd(東京都)というイベントに参加して来ました。?このイベントは1日中集中して、ソフトウェアの開発と設計にフォーカスして練習するためのイベントです。仕事を片付けなければならない通常の仕事であるプレッシャーから解放して、徹底的に練習する機会を提供することで、スキル(プログラミングや高度な設計など)に非常に有効的なことで知られています。モジュール設計、オブジェクト指向などの基本原則を改めて、練習することによって、将来にわたって変更コストを小さくする“エレガントなコード”を書くスキルを磨くことが出来ます。(ソフトウェアのテストを書くのは基本なので、身につけていない人はとても鍛えられる事になるはずです)具体的には、コンウェイのライフゲームをペアプログラミング(2人で1つのコンピュータを使ってプログラミングする)で1日に5〜6回も毎回違うペア同士で、プログラミングをします。これによって、学びを得ます。コンウェイのライフゲームとは?まずは、下記の動画を見てください。簡単に説明すると、セル(マス目)のまわりのセルが何個死んでいるかによって、次のフェーズで、そのマス目が生きるか死ぬかが決まります。自分を中心として、まわりの8マスが1個以下しか生きていない場合は、死亡2個生きていると維持3個生きていると誕生4個以上生きていると死亡というのが基本ルールです。ペアプログラミングでは?上記の基本ルールを前提にして、規定されていない内容はペア同士で決めて実装をおこなっていきます。セルの壁側では、どういう動きをするのか?セルの個数は全体でいくつにするのか?などなど。ペアプログラミングは、45分1セットとして、5分の休憩をはさんで、また、45分のセットをはじめます。コードを消す45分の1セットが終わると書いたコードは必ず消します。次のセットでは、新しいペアの人と、どうやって作っていくのかを話し合いながら、ルールを決めて実装していきます。これを実際におこなうことによって、どれぐらい実装したコードをまた一から実装し直すことができるのか実感できるようになります。つくりなおすことによってソフトウェアを作り始めて、初期の実装や設計にミスを犯しながらも、再実装するコストをリスクと考えて、再実装しないで、むりやりつくりあげる経験をしたことのある人もいるのではないでしょうか。いったことも、今回のようにどれぐらいのサイズであれば、十分に再実装できるのか実感を得ることが出来ます。これは、プログラマとして大きな経験となるはずです。実装アプローチを複数試すことによって、多くの気づきを得ることが出来ます。感想1日に6回もペアプログラミングをおこなうことは、とても疲れます。僕の実感では予想以上には疲れませんでした。それ以上に多くの気づきを得ました。過去に1日に何度もペアプログラミングをおこなった経験があるので、そうとう疲れると予想していたのです。パラダイムの違う言語としては、Smalltalkにチャレンジしました。ほとんど文法がわからない状態でしたが、なんとなく数行書ける程度には知識を得ました。このときが一番疲れました。頭をフル回転してやるのです。すごく大きな事を学びました。こんな事ができるのか!全然、違うな!という気持ちでした。自分が知っている言語で、プログラミングをすると、ソフトウェアの開発を支配している感覚が得られて、プログラミングの楽しさを再認識できたのです。Agile渋谷でもやる主催しているコミュニティ「Agile渋谷」でも、Coderetreatをやろうと思います。会場提供スポンサーランチ・お菓子スポンサーをおこなって頂ける企業がいたら、ぜひ、お声がけください。いったノウハウや経験のあるプログラマがいる企業は今後、成長の天井が変わってくるかもしれません。30代前後の経験あるプログラマほど、こういうイベントに参加すると、貴重な経験を得るのではないかと考えます。Professional関連記事プログラミング普通のプログラマへ良いコードを書く方法を教える!リーダブルコード私はすばらしいコードを「エレガントなコード」と呼ぶ@HIROCASTERでございませう。本書はハッカーは読まなくて良い。普通のプログラマに読んで欲しい。―より良いコードを書くためのシンプルで実践的なテ...プログラミングIT系勉強会でお昼を確保するときはロケ弁を参考にするとよい!お昼付きの勉強会イベントを何回かおこなっている@HIROCASTERでございませう。最近のビルはセキュリティの都合上、外部の人が外に出て入ってくるだけでも手続きが大変であり、どうしても時間がかかってしまったり、ドアマンを配備しなければ...Rubyrubocopによる静的コード解析でRubyのコード品質を保つrubocopはRubyの静的コード解析ツールです。このコード解析を通すことによって、一定のRubyの書き方に統一することができます。不要な変数やメソッド名が長すぎるなど、一般的にRubyとして読みやすいコードにするための警告もされ...アジャイル「愛せよ、さもなくば捨てよ。」ジンガジャパン株式会社を退職します。ウノウという会社はジンガジャパンになり、さらに変化していきました。この度の退職となりました。多くの良い面も、悪い面も、学ばせて頂きました。ありがとうございました。JavaScriptforeverでnode-ninjaを落とさせない方法でSocket.ioを稼働させているのですが、exception発生しちゃうと、簡単にデーモンとして稼働していたスクリプトが停止しちゃうnode.jsですが、ほんと、そういう時かなしいです。前回紹介した、foreverをnode-ni...extensionsRuby拡張ライブラリを含むGemのつくりかた今回は拡張ライブラリを含むGemを開発するための流れを学習するために、簡単なgemをつくることにします。簡単なC言語で記述された拡張をGemで配布できる最低限の状態まで構築します。早く購入しておけばよかった...。早く購入しておけばよかった...。電子書籍メタ情報ログイン投稿フィードコメントフィードWordPress.orgタイトルとURLをコピーしました。