複数言語を学んでいる方に質問です。
私はPHPをすでに学習しており、新たにRubyを学ぼうと思っています。
なるべく早く習得したいと思っているのですが、皆様は新しい言語を学ぶとき、どのような工夫をしているでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
がると申します。
単純に「学習をする場合」ですと、個人的にはまず「公式(ないしそれに一番近いところ)の、"その言語にとって典型的な"チュートリアルを一通りやる」から始める事が多いですね。
「出来る」と「適切である」には、特にプログラム言語の場合「そこそこ深い溝がある」事が多いので、一端はまず「その言語の典型」を学びます。
個人的には、学習の「守破離」の守の部分、だと思っています。
あとは「業務上覚えないといけない」ようなケースもあったのですが、その場合は「やらなきゃいけない事のリストアップ → それが出来る方法の調査」で、一端(半ば無理やり)覚えます。
この場合は、「後で」上述のようなチュートリアルを確認して、歪に組んでしまったところを直すようにしています。
いずれにしても。
・入出力の仕方
・その言語が持っているデータ型
・「その言語にとって適切な」制御構造の書き方
・関数とクラスの書き方
あたりが最低限必要になる事が多いので、そのあたりはまず優先的に調べたりしているように思います。
以上、何かの参考にでもなれば幸いです。
投稿2017/05/06 05:37
総合スコア506
0
文法等をさらっと学んだ後に、既に知っている言語と異なる点を重点的に学びのがいいかと思います。
言語の違いは、単純な「書き方の違い」よりも「考え方の違い」の方が重要です。考え方が違うと設計指針から変えていく必要があります。なので、考え方の相違点を重視します。
例えば、PythonとRubyを例にとりましょう。
PythonとRubyはコードの書き方はかなり異なりますが(インデントとendだらけなど)、コードの考え方は割と近い方です。オブジェクト指向とダック・タイピングという考え方が中核の一つになっています。PythonからRubyへ、RubyからPythonへの変更は割と簡単にできることが多いです。クラスの文法とかは覚える必要はありますが、オブジェクト指向におけるクラスという考え方は、(多重継承・単一継承などいくつか差異はあるとしても)根本部分を改めて覚える必要はほとんどありません。
しかし、全く違う部分があります。例えば、リストに対する処理です。Rubyはリストのような物は基本的にEnumerableモジュールを使って、メソッドチェーンで繋ぎながら処理していきます。配列をmapしてselect(filter)してinjectするなんてものはよく使う手法です。対して、Pythonには強力なリスト内包表記があります。mapやfilterもありますが、リスト内包表記を使った方が簡単にわかりやすく書くことができます。ここら辺の考え方の違いは文化の違いとも言えるものです。Rubyをやっていてもリスト内包表記は絶対に覚えられません。なので、Rubyをやっている人がPythonを学ぶときは、リスト内包表記を新たに覚えなくてはいけません。
ただ、HaskellやCoffeeScriptでリスト内包表記を知っていればPythonのリスト内包表記をすぐに覚えることができるでしょう。つまり、今まで学んだ言語で無かった機能によって、考え方そのものを変える必要があるところがどこかを見て、それを学んでいくと良いのでは無いかと思います。
さて、PythonとRubyは似ているという話でしたが、まったく違う言語はどうでしょうか?たとえば、CとLISPです。どちらも古くからある言語ですが、考え方は全く異なります。配列(リスト)一つとっても、連続したメモリとして扱うか、cdrの連結として扱うかと全く違います。その場合は、一旦忘れるが大切だと思います。いや、本当に忘れては困るのですが、先入観を捨てると言えば良いでしょうか?
例えば、Haskellという純粋関数型言語は変数に再代入ができません。もし、C等の命令型言語をしていた人から見たら、この再代入禁止がとても使いいにくいと思います。しかし、それはC等の考え方をしているからです。逆にHaskellから学んだ人は再代入できる意味がわからないと言うことでしょう。なので、今までの知識は一旦脇に置いて、一から学ぶ気持ちで学んだ方が進めやすくなります。
このように、既に知っている言語との相違点を知っていれば、新たに学ぶ言語に対する心構えや重点的にすべき所が見えてきます。時には忘れて、時には結びつけて考えていくと、逆に、今まで知っていた言語の知らなかった面も見えてくるのではないでしょうか。
では、PHPとRubyとの相違点はどこかというと…。
- PHPのarrayは普通の配列と連想配列が一緒になった物であり、また、値渡しになるなど、RubyのArrayやHashと全く異なります。
- PHPのclassはC++/Javaに近いです。同じクラスベースオブジェクト指向とはいっても、RubyはSmalltalkの影響が強く、クラスを使っているぐらいしか共通点がありません。
- 同じ動的型付けですが、Rubyはダック・タイピングが基本です。PHPはJavaのようにinterfaceできっちり型に嵌めて使うのが主流のようです。
うーん、違いが大きすぎて、新たに学ぶ気持ちで始めた方が良いかと思います。
投稿2017/05/06 06:59
総合スコア21733
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/06 06:59