はてなキーワード: ポリモルフィズムとは
情報処理技術者試験の資格を取っても実質的に得るものはありません。「実質的に」というのは、技術者としてのスキル向上に貢献するということであり、「報奨金が貰える」とか「履歴書に書ける」などの技術と無関係なものを含まないということです。
なぜ、情報処理技術者試験が役に立たないのかと言えば、出題内容が表面的な知識問題に極端に偏っており、本質的な理解を問うていないからです。たとえば、オブジェクト指向の三要素に「カプセル化」「継承」「ポリモルフィズム」がありますが、これらを御題目のように唱えていても何の意味もありません。しかし、情報処理技術者試験ではこれらの用語さえ覚えておけば、しっかり点になります。
https://www.fe-siken.com/s/kakomon/19_haru/q42.html
こんなのは単なるポエムであり、これが解けたところでコードが書けるわけでも、良い設計ができるわけでもありません。
数学で喩えれば、「加減法」とか「代入法」のような用語を暗記して、具体的な連立方程式の解き方は分からないようなものです。
ひどい問題は挙げればキリがありません。
https://www.ap-siken.com/s/kakomon/22_haru/q44.html
図の名称を答えさせる問題。図を読み取らせる問題なら、まだ理解できますが。そもそも、UMLなど別に技術者として知っておくべき知識でもありません。
https://www.fe-siken.com/s/kakomon/23_aki/q50.html
これも、こんな分類自体、覚えたところで何にもならないわけですが、その用語を答えさせる問題。いかに、この試験がエンジニアリングやプロジェクト管理の本質と関係ないかがよく分かります。
極めつけはこれ。
https://www.fe-siken.com/s/kakomon/17_haru/q52.html
地方の公立中学校の定期試験レベルのひどい問題です。出題者は、1だの2だの4だの7だのといった数字と語句の対応を覚えることが重要だと思っているのでしょうか。
つまり、ある種の発達障害ではない意識高い系ポエマーを認定するための試験であり、そもそも技術者のための試験ではないということです。あとは、中小企業診断士などを受ける人が試験免除を獲得するためとか。
そもそも、コンピュータやプロジェクトマネジメントの技術を、資格試験で勉強しようというのがピントがズレています。それらは既に良質な解説書が豊富にあるのだから、それで勉強すればいいのです。
https://anond.hatelabo.jp/20180612164010
https://anond.hatelabo.jp/20180612164352
ココらへんほんとにみんなわかってんの
Object型とdynamic型とvarと<T>とかポリモルフィズムとか実は普通にむずい概念だったりしない?
読んだけどそれが何か?
gotoもインラインアセンブラもある、実行速度最適型および、メモリ最適型のC言語に対して何か?
それこそ、美しい言語が書きたいならC/C++ではなく JavaでもRubyでも、LISPでもPASCALでも好きな言語を使えばいいよ。
道具は選べるんだから。そして、C/C++でも美しく書くこともそれは出きるだろうが、そもそも生まれとして、そう言うふうに生まれていない
用途が違う言語に対して、美しくない。というコメントは間違ってるよ。
あとvtableは歴史的表現で古くからあるから、読みやすいよ。
つかvtable知らずに、ポリモルフィズムは語れないわけだし。
>JAVAを最初に学んでその後に現場で実際に用いるであろう言語(例えばPHP+SQL)を習得するといったルートは現実的なのだろうか?
いろいろ言う人はいるけど、PHPでも、問題ないよ。
ただ、欲をいえば、PHPのモジュールをC++で書く拡張機能あたりをちゃんと勉強しておいたり、ちゃんとコードをチューニングして行けば勉強になると思う
SQLはただ使うんじゃなくて、データーの正規化やインデックスなんかをきちんとマスターしておくと、違う感じ。あとは、ストアードプロシージャ
>上記のケースで前段階として学ぶ言語はどの程度のレベルまで到達する必要が有るのか
というか、本気で学ぼうとすると、トランジスタから始まって、フリップフロップ、レジスタ、アキュムレーター、バスの配線、クロックというハードの構成がどうなっていて、
それに対応するマシン語があって、それがニーモニックに変換されて、
そこにスタックという概念が持ち込まれて、レジスタをスタックに退避するという概念が生まれて、関数コールができて、C言語が生まれて、さらにそこにthisポインタをコンパイラが自動補完して関数テーブルを保管することでオブジェクト指向というか、C++ができている。そこに(Cの世界に)BNFなどの構文があって、それを構文ツリーにするBisonなんかがあって、PerlやPHPができている。
という、なぜC++のオブジェクトはポリモルフィズムができるのか?というソフトからハードまでを一貫して知る必要がある。
そこまで理解していると、コードのレベルは確かにハンパないレベルにはなるけど・・・。正直、業務には必要ないというか、そんなクオリティーの仕事が少ない。
やりたければ、やってもいいけど、PHPからやったら?そして必要になったらPHPをCで拡張するという形でCに入ると良いと思うよ。
やりたい言語をやるのが一番だ。
でも、本気で知りたいなら、死ぬ気でアセンブラをやれ。それがすべての始まり。
わりといえば、普通に大学入って、授業を真面目に受けた方が早い。
>そもそも実際に現場で使用することを想定した言語で、今から学ぶのに本当に適しているのは何か?
PHPでいいでしょ。大差ない、むしろ、自分が気に入った言語で、どれだけコードを沢山書くか。日々の鍛錬。
ちなみにWeb系といわれたから、ライトウェイトな言語を中心に考えたけど、つぶしが効くのは意外とJavaやC++であることも。書いておく。