PASONATECH


[ホーム]
[最新エントリー]
[あすなろBLOG]
[あすなろNEXTBLOG]
[あすなろカウンセラーBLOG]
[インタビュー]
[スペシャルコンテンツ]
[テックスペース]


踊るプログラマ物語


前へ   次へ

大谷 弘喜

2009年05月25日

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

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

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

   

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

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

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

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

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

 


前へ   次へ

最新エントリー


大谷 弘喜
2011年04月19日
AsciiのHadoop & NoSQL
大谷 弘喜
2011年04月14日
プログラマにとって椅子は命
大谷 弘喜
2011年04月12日
血圧計で血圧を測る日々
大谷 弘喜
2011年04月08日
3月分の電気代
大谷 弘喜
2011年04月05日
iPadのi文庫はとってもできる子だった

前へ

バックナンバー




ページトップ


[ホーム]
[ブログコンセプト]
[個人情報]
[著作権]


i-mobile

ITエンジニアの仕事見つかる!PASONA TECH

Copyright(C)2006-2011
Pasona Tech. inc.
All Rights Reserved.