アカウント名:
パスワード:
>そしてそういう試験を後押ししているシステム開発というお仕事からみたデータ構造というものの価値も。は?それはないでしょう。データ構造はソフトウエアの基本中の超基本。学部一年のカリキュラムでやるようなこと。
>システム開発の人材に箔をつけるとされているいやぜんぜん箔なんてつかないし。しょせんは資格ビジネスの一つ。
>この試験の趣旨全体から見ると瑣末なことなんでしょね。「この試験の趣旨」というのは「カモ(受験者)から金を巻き上げる」ことですよね。
データ構造はソフトウエアの基本中の超基本。
それがなかなかどうして、決して基本とは言い切れない。いや、基本だからこそ基本と言いきれない、という意味で。
そもそも情報処理試験というのは「アセンブラで」受けられる内容なので、データ構造などない、というのもひとつあったりするかと思いますが。# あー、そうか。一応言っておくね。MASMとかは「高級アセンブラ」だから。# 本来のアセンブラというのは as のように、マクロなんぞ全くない世界を言うのであって…## マクロ部分は m4 という「マクロ専用プログラム」が処理します。
じゃぁ、高級言語だったらデータ構造はあるのか? となると、Lisp のように「どこからどこまでがデータ構造なんだかよく判らない…というより…やっぱりデータ構造はない」的な言語とか、Perlのように「Primitiveなデータに型が無くて、なおかつハッシュを使えば配列と構造体の違いはよく判らなくなるぜ」的なものもあって、抽象度が上がっていくと、データ構造は再び曖昧な存在になっていきます(プログラマは意識するが、言語的にはリファレンスさえ作れればあってもなくても、な状態に戻っていく)。
.
真に必要なのは「抽象概念レベルでの」ソフトウェアにおけるデータ構造という概念に対する理解です。この意味では基本中の基本になります。このレベルのデータ構造の理解なしにまともなプログラムは作れません。アセンブラだろうが、Lispだろうが、これは変わらない。
ところがプログラミング言語的に考えると「データ構造」を特別意識させるようなものが無くてはいけない、とは限らない。この意味では「データ構造は基本ではない」。
このギャップ故に「データ構造が判ってなくてもプログラムが書けちゃう」人が出てくる。この意味において、データ構造の迷宮は奥が深く、決して「基本中の超基本」と言ってよいほど万人が理解している/できているモノではない、と言えるかと。
# 鮒釣りのようだ…
真に必要なのは「抽象概念レベルでの」ソフトウェアにおけるデータ構造という概念に対する理解です。 この意味では基本中の基本になります。このレベルのデータ構造の理解なしにまともなプログラムは作れません。 アセンブラだろうが、Lispだろうが、これは変わらない。
さすがにアセンブラではまともなデータ構造が必要となる大規模なプログラムを書いたことがありませんが (PC-9801のGDCをアセンブラで叩くくらい)、 高級アセンブラたるC言語では2分木をはじめ基本的なデータ構造を教科書の30%程度を割いて 高専時代の2年生あたりに叩き込まれた記憶があります。
今時のC#やJavaやC++(STL)では、これら基本的なデータ構造はわざわざ自分で作らなくても 処理系が用意してくれますが、計算量のオーダーやメモリ使用量の見積りは 処理系が用意してくれてる中身を理解できる人でないと、当然精度は落ちるでしょう。
JDKのAPIリファレンスには、検索速度のオーダー表記も載ってるけど、 C言語やアセンブラである必要は無いけど自分で一通りのデータ構造と検索ロジックを 書いて、timeコマンドでCPU使用時間を実測した人じゃないと、 深く理解できないんじゃないかなー
つい最近までは、CPUやメモリは実用上無限に使えるから、そんなのどーでもいいーよ的な 感じで作ってたと思いますけど、USの富裕層様に使われた害死系凍死銀行の亡者どもが 経済をめっためったにしてくれたおかげで、みんなクラウドでスモールスタートせざるを 得なくなって、再びCPU使用時間やメモリ使用量を気にして書かないといけない時代になったという…
課金にモロに響きますからねーというつぶやきを目にします。 教科書でしか知らないけど、タイムシェアリングシステムの時代に先祖返りしてる??
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
おや? (スコア:0)
>そしてそういう試験を後押ししているシステム開発というお仕事からみたデータ構造というものの価値も。
は?それはないでしょう。
データ構造はソフトウエアの基本中の超基本。学部一年のカリキュラムでやるようなこと。
>システム開発の人材に箔をつけるとされている
いやぜんぜん箔なんてつかないし。しょせんは資格ビジネスの一つ。
>この試験の趣旨全体から見ると瑣末なことなんでしょね。
「この試験の趣旨」というのは「カモ(受験者)から金を巻き上げる」ことですよね。
Re:おや? (スコア:1)
それがなかなかどうして、決して基本とは言い切れない。いや、基本だからこそ基本と言いきれない、という意味で。
そもそも情報処理試験というのは「アセンブラで」受けられる内容なので、データ構造などない、というのもひとつあったりするかと思いますが。
# あー、そうか。一応言っておくね。MASMとかは「高級アセンブラ」だから。
# 本来のアセンブラというのは as のように、マクロなんぞ全くない世界を言うのであって…
## マクロ部分は m4 という「マクロ専用プログラム」が処理します。
じゃぁ、高級言語だったらデータ構造はあるのか? となると、Lisp のように「どこからどこまでがデータ構造なんだかよく判らない…というより…やっぱりデータ構造はない」的な言語とか、Perlのように「Primitiveなデータに型が無くて、なおかつハッシュを使えば配列と構造体の違いはよく判らなくなるぜ」的なものもあって、抽象度が上がっていくと、データ構造は再び曖昧な存在になっていきます(プログラマは意識するが、言語的にはリファレンスさえ作れればあってもなくても、な状態に戻っていく)。
.
真に必要なのは「抽象概念レベルでの」ソフトウェアにおけるデータ構造という概念に対する理解です。この意味では基本中の基本になります。このレベルのデータ構造の理解なしにまともなプログラムは作れません。アセンブラだろうが、Lispだろうが、これは変わらない。
ところがプログラミング言語的に考えると「データ構造」を特別意識させるようなものが無くてはいけない、とは限らない。この意味では「データ構造は基本ではない」。
このギャップ故に「データ構造が判ってなくてもプログラムが書けちゃう」人が出てくる。この意味において、データ構造の迷宮は奥が深く、決して「基本中の超基本」と言ってよいほど万人が理解している/できているモノではない、と言えるかと。
# 鮒釣りのようだ…
fjの教祖様
Re:おや? (スコア:1)
真に必要なのは「抽象概念レベルでの」ソフトウェアにおけるデータ構造という概念に対する理解です。 この意味では基本中の基本になります。このレベルのデータ構造の理解なしにまともなプログラムは作れません。 アセンブラだろうが、Lispだろうが、これは変わらない。
さすがにアセンブラではまともなデータ構造が必要となる大規模なプログラムを書いたことがありませんが (PC-9801のGDCをアセンブラで叩くくらい)、 高級アセンブラたるC言語では2分木をはじめ基本的なデータ構造を教科書の30%程度を割いて 高専時代の2年生あたりに叩き込まれた記憶があります。
今時のC#やJavaやC++(STL)では、これら基本的なデータ構造はわざわざ自分で作らなくても 処理系が用意してくれますが、計算量のオーダーやメモリ使用量の見積りは 処理系が用意してくれてる中身を理解できる人でないと、当然精度は落ちるでしょう。
JDKのAPIリファレンスには、検索速度のオーダー表記も載ってるけど、 C言語やアセンブラである必要は無いけど自分で一通りのデータ構造と検索ロジックを 書いて、timeコマンドでCPU使用時間を実測した人じゃないと、 深く理解できないんじゃないかなー
つい最近までは、CPUやメモリは実用上無限に使えるから、そんなのどーでもいいーよ的な 感じで作ってたと思いますけど、USの富裕層様に使われた害死系凍死銀行の亡者どもが 経済をめっためったにしてくれたおかげで、みんなクラウドでスモールスタートせざるを 得なくなって、再びCPU使用時間やメモリ使用量を気にして書かないといけない時代になったという…
課金にモロに響きますからねーというつぶやきを目にします。 教科書でしか知らないけど、タイムシェアリングシステムの時代に先祖返りしてる??