2010年12月31日金曜日

【108番目のきのこ】「学び」は楽しい

 プログラマとは、常に勉強を欠かすことができない仕事です。他の仕事でも「学ぶこと」は当然必要なのでしょうが、進化の早いコンピュータの世界を相手にするプログラマは、やはり多くの勉強が必要な職業であると思います。しかし、中には勉強というものに抵抗を感じ、職務中に得た知識のみで仕事をしている人も少なくありません。少し厳しい言い方をしますが、そのような人々とは一緒に仕事をしたくないな、と思ってしまいます。
 わたしのプログラム歴は、COBOLからスタートしました。COBOLという言語には、汎用機を使って仕事をしていた人々が長年培ってきたノウハウがいろいろあります。わたしが最初に教わったコーディングのお作法は、「自分のやりたい処理と似たような処理をしているプログラムを探し出し、それをコピーして改変しろ」というものでした。わたしは何もこのやり方を批判しているわけではありません。それが、汎用機でCOBOLという言語を使ってプログラムをする際の、ベストプラクティスだったのです。
 そのようなお作法でプログラムを書いているプログラマであれば、確かに職務中に得た知識のみで仕事をしていても良かったのかもしれません。しかし、DRY(Don't repeat yourself)原則が重視される昨今のプログラムの世界において、かつてのCOBOLのようなコピペ駆動開発は一切通用しません。より美しいコードを書くためのお作法は、様変わりしてしまいました。そしてそれは今、この瞬間も進化し続けています。
 コーディングのお作法だけではありません。クライアントアプリケーションとWebアプリケーションでは考え方がまったく異なります。アプリケーション間の通信はSOAPで行うのか、RESTfulにするのか。データはRDBに保存されるのかそれともNoSQLなのか。マルチコアプロセッサが主流となっている今後は、並列処理に関するノウハウの蓄積がより深まっていくでしょう。
 わたしたちは、こういったすべての変化に対して、対応していかなければならないのです。そしてそのためには、職務中に得た知識だけでは不充分なのです。自分の時間を使って、日々勉強しなければいけません。
 勉強と聞くとツラいイメージを抱く人が多いでしょうが、そんな事はありません。学生時代の試験勉強とは違うので、誰もあなたの勉強に口を出したり、叱られたりすることはありません。勉強は自分の世界を拡げる行為です。新たに得た知識は、あなたの着想にそれまでとは異なる息吹を吹き込みます。あなたの書くコードは日に日に美しくなり、品質も向上します。勉強した結果、得られるものは素晴らしい世界です。
 IT勉強会カレンダーなどを参考に、気になる勉強会に参加してみても良いでしょう。知識だけでなく、人脈を拡げることもできます。自分の師匠となる人物に出会うこともあるかもしれません。さらには、あなたが誰かから刺激を受けるのと同じように、あなたが別の「誰か」に良い刺激を与えることもあるでしょう。
 「学ぶ」という事は楽しいものです。自分の世界を拡げ、新たな友人を生み出し、そしてキャリアにより良い影響を与えるものです。とりあえず、気になる言語のSDKをダウンロードするところからまずは始めてみましょうか。


※この記事は下記企画に賛同して書いた記事です。
  皆さんもどんどんきのこを増やしていきましょう!!

「108番目のきのこを生やす会」:http://atnd.org/events/11274

2010年12月24日金曜日

いろいろな言語でメリクリ!!

いろいろなプログラム言語でメリークリスマス!!

Ada:
with Ada.Text_Io; use Ada.Text_Io;
procedure Xmas is
begin
 Put_Line ("Merry Christmas!!");
end Xmas;

BASIC:
10 PRINT "Merry Christmas!!"
20 END

C:
#include 
#include 
int main (int argc, char **argv) 
  {
  puts ("Merry Christmas!!") ;
  return EXIT_SUCCESS ;
  }

C#:
class XmasApp 
{
 static void Main() 
 {
  System.Console.WriteLine("Merry Christmas!!");
 }
}

COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. XMAS.
PROCEDURE DIVISION.
DISPLAY "Merry Christmas!!".
STOP RUN.

Java:
public class Xmas{
    public static void main(String[] args){
        System.out.println("Merry Christmas!!");
    }
}

Ruby:
puts "Merry Christmas!!"

Scala:
object Xmas extends Application {
  println("Merry Christmas!!")
}

SQL:
SELECT 'Merry Christmas!!' FROM dual;

PHP:
<?php
echo 'Merry Christmas!!';
exit;
?>

2010年12月7日火曜日

ライトニングトークをやってきた。

先日の土曜日に、エンジニアライフのオフ会に参加し、ライトニングトークをしてきた。その模様を少しお届け。

会場は今回のイベントに快く場所を提供くださった、「神戸情報大学院大学」さん。

プレゼンの達人がお出迎え。


会場の様子


LTに使ったスライド。



僕のLTは6:40くらいから


他の録画はこちら:http://www.ustream.tv/channel/lits2010winter