検索
カレンダー
2006年12月
« 11月   1月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  
ブログメニュー
Amazon検索
キーワード:

資格取得のための勉強法

2006年12月22日

当ブログにコメントしてくださった方の記事 を見て、私も資格試験を受けていた頃を思い出しました。
# 逆に言うと、ここ2年くらいは資格とは無縁だったりします

この際ですので、(役に立つかどうかわからないですが)私の勉強法をご紹介したいと思います。

私は資格試験を受けようと思ったとき、その分野に関する雑誌を定期購読するようにしています。
例えば「テクニカルエンジニア(ネットワーク)」なら「日経ネットワーク」、「テクニカルエンジニア(データベース)」なら「DBマガジン」といった感じ です。情報セキュリティアドミニストレータを取ったときだけ、どの雑誌がよいかわからなくて結局購読せずじまいでしたが…あせる

この方法のキモなのは、雑誌の講読を必ず半年以上続けることです。
もちろん、雑誌だけでは資格取得に必要な知識を全て得ることはできませんし、試験に必要でない知識が身につくこともあります。ですが、雑誌だと「受験勉強」という意識でないので気楽ですし、読み続けると業務に近い知識を得ることができます。
これに加え、雑誌を読んでわからないことなどの基礎知識を、資格試験対策用の本から得ます。

私は半年間この方法で基礎知識と業務知識をつけ、試験対策は直前の半月~1ヶ月だけで済ませました。

この方法は私のような記憶力のない方にお勧めだと思います。皆さんはどのような勉強法をお持ちでしょうか。

レコードを他のテーブルにコピーする

2006年12月21日

履歴用テーブルとマスタ用テーブルなど、カラム構成が同じテーブル同士でレコードをコピーしたい場合があります。
このような時は下記のようなSQLを使います。

INSERT INTO table1 SELECT * FROM table2;

複数のテーブルを組み合わせたDELETE/UPDATE

2006年12月20日

他のテーブルと関連した検索条件で抽出した複数のレコードを、
DELETEしたりUPDATEしたりするには下記のようにサブクエリ(副問い合わせ)を使います。

(例)
DELETE FROM table1 WHERE column1 IN (SELECT column1 FROM table2 WHERE ...);

複数のカラムでプライマリーキーになっているテーブルがあると、複数のカラムで比較する必要がでてくると思います。
複数のカラムで比較したい場合は、下記のように複数のカラム名をカッコで囲んで書きます。

(例)
DELETE FROM table1 WHERE (column1, column2) IN (SELECT column1, column2 FROM table2 WHERE ...);

Eclipseが不安定な方へ

2006年12月20日

先日、Eclipseのバージョンを最新にし、便利そうなプラグインを片っ端から入れてみました。
その結果、Eclipseが1日に10回以上もクラッシュして落ちるようになってしまいました汗

エラーログを漁ると、ヒープメモリ不足なような気が…。
そこで eclipse.ini を色々いじって -Xms や -Xmx を大きくしてみたりしたのですが、現象が改善せず途方にくれてしまいました。
さらにエラーログを調査すると、どうやらパーマネント領域が足りないようです。
eclipse.ini に下記のような行を追加してパーマネント領域を増やしました。
-XX:PermSize=32m
-XX:MaxPermSize=256m
この効果は絶大で、このパラメータを追加してからはクラッシュしなくなりましたニコニコ

それにしても、パーマネント領域を指定するパラメータがあるとは思いませんでした…。
原典を発見できなかったのですが、どこで定義されているのでしょうか?
sunのjavaコマンドのページ にも書かれていないようです。
もしかして安定したのは気のせいなのでしょうか???
どなたかお教えいただければうれしいです。

ちなみに、参考にしたページは「@IT 事例に学ぶWebシステム開発のワンポイント(9) 」です。


 (2008/12/19追記)
上記のパラメータは
-vmargs
の後に書くようにしてください。

-vmargs
-Xms128m
-Xmx1024m
-XX:MaxPermSize=256m

のような感じです。数字が大きすぎたり改行を入れない場合はエラーになりますので気をつけて下さい。
Eclipse3.4では、eclipse.iniに次のように定義することもできます。

--launcher.XXMaxPermSize
256M

続・私が資格を取った理由

2006年12月19日

前回は資格の利点について考えたので、今回は問題点について考えてみました。

「私が資格を取った理由」 に『早く一人前になりたいから資格を取った』と書きましたが、これは知識を吸収したいという意味だけでなく、私が当時在籍していた会社の体質に因るところも大きいです。
私が当時在籍していた会社では、社内制度として資格の取得を奨励していました。具体的には、資格が取得できれば褒賞を、取得できなければ出世できないなどの罰則が与えられます。
私はこれを逆手にとり、資格さえ取得できれば一人前と見なされるだろうと考えたのです。

今思えば、これはかなり危険な考え方です。
たとえ資格を持っていなくても有能な方もいれば、資格をたくさん持っているからといって仕事が出来るとは限らないからです。
資格が不必要だと思われる方の多くは、自分より仕事が出来ないと思う人が資格を持っていて、その人が自分よりも重用されているのではないでしょうか。

私は、これは資格制度自体に問題があるのではなく、資格を重視する上長や会社の体質に問題があるように思います。
個人的な意見なのですが、資格は有能であるかどうかを証明するものではなく、その分野の仕事をするに最低限の知識があるかどうかを保障するためのものだと思います。
資格を持っているどうかを仕事が出来るかどうかに置き換えるのは、部下や社員の仕事の出来を見ることができない上長や会社の怠慢ではないでしょうか。

私が資格を取った理由

2006年12月18日

いつも読んでいるブログで資格についての記事を読みました。
私が資格を取ろうとしない理由
これに触発されて、私も資格について色々思うことを書いてみることにします。

私は社会人になりたての頃、早く一人前になりたくて色々な資格試験に挑戦しました。
幸い、5つほど取ることができましたが全て情報処理推進機構(IPA)のものです。

今思うと、資格を取って一番役に立っているのは、意外かもしれませんが試験勉強でした。
私自身は学生の頃からコンピュータ関係に興味があり、趣味レベルですがプログラムも一通りできました。
たぶん、最低限の仕事をこなすのなら資格は必要ではなく、業務の勉強のみでよかったはずです。
ですが、この時点で持っている知識というのは「私が興味を持つ」ものであり、自分が満足できる「最低限の」ものです。
試験勉強をするということは、「私が興味を持っていない」ものも含まれており、どの程度の知識が必要かというのも試験で客観的に判断できます。

この強制された知識の範囲と深さが役に立つと思うのです。
勘違いされると困るの敢えて書きますが、私は「資格さえ持っていればいい」と言いたいのではありません。
また、資格に合格できる知識が全て仕事に必要な知識でもなく、また仕事に必要な知識でも試験に出ないものもあります。
ですが、知識の幅や深さを広げるための動機付けに資格制度が利用できると思うのです。

資格反対論者と話す機会があったので色々話を聞いてみたのですが、彼らの言い分が私には納得できませんでした。
彼らは、「試験で問われる内容は実際の業務で要らないものが多いから意味がない」とよく言います。
本当にそうでしょうか。
試験勉強に本気で取り組んで、資格を取って、その後で本当に要らないと思うのなら納得できます。
ですが、今まで出会った資格反対論者で資格を持っている方はいませんでした。
自分で試していないものを批判するって、おかしいと思うのですが…。

ちなみに私は、いわゆるベンダ資格というものは持っていません。
ベンダの製品を使えるかどうかを証明する資格を用意するくらいなら、ベンダは製品を誰でも使えるようにすべきだからだと思うからです。
逆に言うと、資格が必要なくらい難しい製品を使いたくないからです。
…この部分は、ベンダ資格を持っていない私の負け惜しみとも言えますがあせる

PHP4での後処理(register_shutdown_function関数)

2006年12月11日

接続したデータベースやネットワークの切断だとか、テンポラリファイルの削除だとか、プログラミングしていると後処理を書くことがあるかと思います。
JavaやPHP5等ではfinally節やデストラクタで後処理を書くことが多いと思いますが、PHP4ではクラスは定義できますがデストラクタの仕組みはなく、finally節どころかcatchさえできません。

スクリプトの最後に後処理を書けばいいかとお思いの方がおられるかもしれませんが、それではexit関数が呼ばれた場合や、ブラウザの停止ボタンが押されて中止された場合に、最後に書かれた後処理が実行されなくなってしまいます。

そこで、PHP4では register_shutdown_function 関数を使います。
この関数に関数名を登録しておくと、スクリプト終了時に実行されることになります。
これは、ブラウザの停止ボタンを押した場合など、スクリプトが中止された場合でも有効です。

参考資料:
PHPマニュアル (register_shutdown_function)

スタイルシートのクラス名の命名規則

2006年12月11日

稀に、HTML中に”red”などという名前のクラス名を使ったサイト見かけることがあります。このように見た目をクラス名やID名にすると変更に弱くなり、スタイルシートの適用によって得られる利益が半減してしまうように思います。

例えば、仕事でWebページを製作していたとします。スタイルシートでデザインを別途定義できるようにし、変更にも強くなっています。ですがエラー メッセージに対して適用するクラス名は”error”ではなく”red”になっています。完成が近づいたある日、あなたの顧客や上司が「エラーメッセージ の文字は赤色でなく黄色にしないといけない」と要求してきた場合、変更に対する仕事量はどのくらいになるでしょうか。

全てのHTML中の”red”クラスを”yellow”とするなら、全てのHTMLを見直す必要があります。全てのHTMLをひとつずつ開いて”red”を検索し、それがエラー文字列に対して適用されていれば”yellow”に変更するという作業になるはずです。

もしくは、下のようにクラス名が”red”なのに内容は”color: yellow;”とするという方法もあります。

red {

    color: yellow;

}
この方法を採るとクラス名と内容が一致していない保守しづらいサイトになってしまいます。

さらに悪いことに、エラー文字とは関係なく単に赤色文字列を表示したい場合に”red”クラスを使っていれば、その部分も黄色に変更されてしまいます。これを防ぐためにはやはり全てのHTMLをチェックする必要があるでしょう。

もし、エラーメッセージに対して適用するクラス名を”red”ではなく、”error”等、見た目ではなく意味をクラス名にしていればどうなるでしょうか。スタイルシートファイルの”error”クラスを、

error {

    color: red;

}

から
error {

    color: yellow;

}

に変更するといった作業だけで済むはずです。

これは”left”等というクラス名にも当てはまります。leftと名づけられたボックスが、いつまで画面の左側に表示されているでしょうか。

アジャイル、AJAX、Web2.0…言葉だけが一人歩きしていませんか?

2006年12月2日

最近、目を引くキーワードがでてきて、それが一人歩きしているような気がしてなりません。
タイトルにも書きましたが、アジャイルやAJAX、Web2.0などが代表的なものです。
Web2.0に至っては、私には意味不明です。マーケティング的な意味と技術的な意味が混在していて、本当は何を指す言葉なのかサッパリです。

最近はXPに代表されるアジャイルな手法がもてはやされていますが、その前のRUPやMDAやUMLの騒ぎはどうなったかも気になるところです。
SIer等の上流工程(と言われる部分)にかかわっている方々はバリバリ使っていると思いますが、私がかかわるような小さな案件では、MDAなど影も形もなくなってしまいました。

・・・SOAという言葉もそろそろ飽きられてきていますし、次の流行はSaaSですかね。