TOP > 踊るプログラマ物語 > アルゴリズムとかデータ構造とか

あすなろBlogger

facebookに投稿 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 この記事をクリップ! livedoorclip ユーザー数 BuzzurlにブックマークBuzzurlにブックマーク この記事をtweetする

アルゴリズムとかデータ構造とか

2009.05.25

ITエンジニアとしての適正を見抜く言葉」の記事の中に次のようなきじゅつがあります。

プログラミングの学習経験がある学生なら、自分の得意なプログラミング言語を使って、手書きでプログラムを書いてもらいます。テーマは「配列a[0]〜a[99]に格納された値を昇順にバブルソートする」「整数nの階乗を求める」くらいのシンプルなものがよいでしょう。

   

最近、面接の時や、3年目ぐらいのプログラマの人と話をするときに、バブルソートのコードを書いてみて、と頼んだことがあります。そのときの反応で、「バブルソートって聞いたことがありますが、わかりません」や「バブルソートって何ですか?」と反応されることがあります。まあ、クイックソートを書けとかは、無理かもしれませんが、バブルソートぐらいはと思ってしまいました。

その話を会社でしたら、「配列をソートするプログラムを書け 」だったら結果的にバブルソートのコードができるんじゃない?と言われました。確かにそうかもしれません。ただ、アルゴリズムをちゃんと学ばないでjava.util.Listのsortを使っているとしたら悲しいです。

また、「リンクリストのコードを書いてみて」とお願いしたときがあります。そのときも「リンクリストって何ですか?」と聞かれたことがあります。「ArrayListを自分で実装してみて」と言えばよかったのかも知れません。

会社でこの話をしたら、「ArrayListとLinkedListの違いがわからなければデータ構造を考えられないじゃん」と言われました。でも、社内のコードのほとんどはArrayListだし、今のCPUスピードだとLinkedListじゃなきゃいけないものってほとんどないと反論するとQueueを使う場合はそうかもしれないけど、そのぐらいかも、と。

僕がCを初めて最初にやったのがこの辺りのことでした。この辺からやらないとどうしようもなかったからなのか、このぐらいの基本的なことは押さえておくべきだったからなのか、 今となってはわかりません。APIの使い方を学ぶのも大事ですが、それだけに走ってはもったいないです。

 

投稿者 : 大谷 弘喜 | 投稿日時 : 2009.05.25 19:58

あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。

トラックバックURL


コメント

名前:anaka2009年05月25日 20:58

CPUが速くなった分、DRAMは相対的に遅くなっているので、メモリコピーが発生するようなデータ構造やアルゴリズムは最小限に抑えるのがいいと思うのですよ。

コメントの送信








カレンダー

<< 2009年05月 >>

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

最新のエントリー

最新のトラックバック

最新のコメント

Tag

バックナンバー