プログラミング言語を複数、同時に勉強する事はいいことなのでしょうか?


私はプログラミング初心者です。勉強している言語はRubyとPerlです。RubyとPerlが初めての言語です。この二つの言語は初心者の私から見てもすごく似ています。そういった場合、片方をしっかり勉強し、その後もう一方をやる方が全体的に勉強する時間が減らせると思うのですが、意見をお聞かせください。

複数言語の習得の仕方を教えていただきたい。具体的に。例えば似ている言語なら同時でもいいのかどうか、似ていないのなら...などなどです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/05/29 23:00:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:hsada No.3

回答回数48ベストアンサー獲得回数1

ポイント16pt

Perl(パール)が6月の誕生石Pearl(真珠)と同じ発音なので

Rubyはパールの次の7月の誕生石のルビーにちなんで名づけられました。

Rubyは、プログラミング言語Perlが6月の誕生石であるPearl(真珠)と同じ発音をすることから、まつもとの同僚の誕生石(7月)のルビーを取って名付けられた。

http://ja.wikipedia.org/wiki/Ruby

PerlとRubyの関係はCとC++の関係に似ています。

人に拠っては「Cを勉強してからC++を勉強すると良い」という人もいますが、ソフトウェアの世界では常に「後発有利」です。

私はC→C++と勉強してきましたが、今から始める人なら間違いなくC++から始めるように勧めるでしょう。

そうかんがえるとPerlとRubyを同時に勉強するのはCとC++を同時に勉強するのと同じことと言えます。

私ならRubyを勉強することを進めます。

id:moridai

すごくわかりやすい例えでした。C/C++を詳しくは知りませんが、友人の話ではほとんど似ているとのことでした。実際CからC++は派生しているので当たり前と言えば当たり前ですね。そう考えるとCとC++を一緒にやるなんてなんか無駄な気がします。それをRubyとPerlに当てはめて考える事ができませんでした。Rubyから始めます。他の意見もRubyからが良し、としていますし。

2009/05/22 23:49:33

その他の回答7件)

id:hosu No.1

回答回数26ベストアンサー獲得回数2

ポイント17pt

http://ja.wikipedia.org/wiki/Ruby

プログラミング言語としてのRubyは大雑把に言うと「Perlのオブジェクト指向版」、つまりインタプリタで実行する高機能なスクリプト言語でありオブジェクト指向機能を持つもの、と位置づけることができる

元々RubyはPerlの改良版として作られたものであり、Rubyを学習しておけばあえてPerlを学習する必要はありません。

複数の言語を覚える場合は「コンパイラ系」の言語と「LL系」の言語を覚えると良いと言われています。

あえて違う言語を覚えることで、守備範囲が広がるわけですね。

Perl,Rubyを覚えたら、VC++,Java,C#,VB.netのうちのどれかを覚えるといいと思います。

Perl,Rubyの場合はGUIを使った通常のアプリを作るのは苦手ですが、それをカバーできます。

id:moridai

>元々RubyはPerlの改良版として作られたものであり、Rubyを学習しておけばあえてPerlを学習する必要はありません。

これはスクリプト言語でできる事は別にいくつものスクリプト言語を覚えて使う必要がないという事ですか?一つ知っていればいいという意味ですか?私が二つのスクリプト言語を勉強している理由は単に自分が働きたい職場のほとんどがRubyかPerlなのでどっちにでも対応できるように両方やっているだけです。ですが、Perlの改良版言われるぐらいならRubyを先に徹底的にやってからPerlにも触れようと思います。時間がかからず身に付くのも簡単に予想がつきます。

コンパイラ系も一応必要だと思っていたので、その後勉強します。

2009/05/22 23:30:54
id:nekomanbo56 No.2

回答回数1138ベストアンサー獲得回数34

ポイント17pt

RUBYはまつもとゆきひろ(通称Matz)により開発されたオブジェクト指向スクリプト言語であり、従来Perlなどのスクリプト言語が用いられてきた領域でのオブジェクト指向プログラミングを実現する。ので似ていて当然かと。

Rubyの方がPerlの補えない部分のために開発されたとすると、Rubyを覚える方がよろしいかと。

http://ja.wikipedia.org/wiki/Ruby

id:moridai

>Rubyの方がPerlの補えない部分のために開発されたとすると、Rubyを覚える方がよろしいかと。

なるほど、一石二鳥みたいな感じですね。ですが、一つ疑問に残るのはPerlを使用されている企業、ウェブサービスをよく見聞きします。これは単にPerlの方が歴史が長く、Rubyはまだまだ若く広く受け入れられていないから、ととってもいいのでしょうか?

2009/05/22 23:34:37
id:hsada No.3

回答回数48ベストアンサー獲得回数1ここでベストアンサー

ポイント16pt

Perl(パール)が6月の誕生石Pearl(真珠)と同じ発音なので

Rubyはパールの次の7月の誕生石のルビーにちなんで名づけられました。

Rubyは、プログラミング言語Perlが6月の誕生石であるPearl(真珠)と同じ発音をすることから、まつもとの同僚の誕生石(7月)のルビーを取って名付けられた。

http://ja.wikipedia.org/wiki/Ruby

PerlとRubyの関係はCとC++の関係に似ています。

人に拠っては「Cを勉強してからC++を勉強すると良い」という人もいますが、ソフトウェアの世界では常に「後発有利」です。

私はC→C++と勉強してきましたが、今から始める人なら間違いなくC++から始めるように勧めるでしょう。

そうかんがえるとPerlとRubyを同時に勉強するのはCとC++を同時に勉強するのと同じことと言えます。

私ならRubyを勉強することを進めます。

id:moridai

すごくわかりやすい例えでした。C/C++を詳しくは知りませんが、友人の話ではほとんど似ているとのことでした。実際CからC++は派生しているので当たり前と言えば当たり前ですね。そう考えるとCとC++を一緒にやるなんてなんか無駄な気がします。それをRubyとPerlに当てはめて考える事ができませんでした。Rubyから始めます。他の意見もRubyからが良し、としていますし。

2009/05/22 23:49:33
id:ifurindo No.4

回答回数29ベストアンサー獲得回数4

ポイント16pt

RubyとPerlのどちらが良い言語か?と言われれば私もRubyをお勧めします。

でも、今回は就職活動のために言語を習得されるのですよね。

ならば、貴方の第一志望の会社のWebサイトはどの言語で書かれていますか?

perlで書かれていれば、ファイル名の後ろに.pl

rubyであれば.rb

phpなら.php

ASP.NETなら.aspx

javaだったら .jsp

となっております。

Perlは世界中で多くのひとに用いられている言語で、Rubyよりはるかに多いプログラマ人口がいます。

言語の設計は古いけれど、多くのすぐれたライブラリがそろっているという利点がありますね。

できることはどちらもほぼ同じなので、入りたい会社で役にたつ言語を学んでおけばよいと思いますね。

id:moridai

はい、今は行きたい会社のWebサイトでいろいろ調べてみたら、RubyとPerlがほとんどでした。ただ第一志望の会社はPerlですが、多少技術職として未経験者は厳しいと判断して、Rubyから、未経験でも雇ってもらえるところがつかっている言語から、と、今は考えています。実際Rubyの方が肌に合っている感じもします。

2009/05/23 07:10:08
id:QuestR2 No.5

回答回数435ベストアンサー獲得回数13

ポイント16pt

>プログラミング言語を複数、同時に勉強する事はいいことなのでしょうか?

複数同時に学習することは、似てる似てないを問わず、効率的な学習方法です。

学習のやり方にもよりますが、言語の最低限の部分だけ勉強して、あとは必要に応じて

広げていくのが効率的です。

>片方をしっかり勉強し、その後もう一方をやる方が全体的に勉強する時間が減らせると思うのですが

ひとによりけりです。

id:moridai

>学習のやり方にもよりますが、言語の最低限の部分だけ勉強して、あとは必要に応じて

広げていくのが効率的です。

その意見には初心者の私でも多いに賛成できます。しかし、最低限の部分というのは共通項のことですよね?どの言語も仕組みはだいたい同じで、一つでも言語を学べば次の言語の習得が早いというのはよく聞きます。それというのはやはりまず一つの言語をやる、のが良さそうな気がしますが...やはりひとによるんですかね。

2009/05/23 07:13:37
id:bg5551 No.6

回答回数1184ベストアンサー獲得回数80

ポイント16pt

人にもよるかとはおもいますが、個人的には一言語づつ、順番に

学習したほうがよいと思います。

RubyとPerlは基本はほとんど一緒ですので、比較的わかりやすいです。

id:moridai

そうですね。自分の感覚では一つずつの方がよさそうです。

2009/05/23 15:26:20
id:Mook No.7

回答回数1314ベストアンサー獲得回数393

ポイント16pt

コメントが無効なのでこちらで失礼しますが、プログラミングで本当に大事なのは言語

よりもデータ構造の設計力やアルゴリズムの部分だと思います。

複数の言語を同時に取得することが悪いと言っているわけではありませんが、個人的に

はこれは重要なことではなく、より深くの方が重要だと思います。


極端な表現ですが、どんな言語を使おうとほとんどは文法が異なるだけで、一つの言語

習熟していれば新しい言語で書くだけであれば、1週間もあれば書けるでしょう。


もちろん、その言語ならではの特徴や、効率のよい表現というのはあると思いますが、

それよりはデータ構造の設計や処理に適したアルゴリズムを選択するという技術こそ、

プログラマとしてのスキルレベルだと思います。


普通の言語と同様、話せることも大切ですが、話す内容の方がより重要ではないでしょ

うか。文法だけ知っていても、エレガントなプログラムはかけません。

例えば、入門時にありがちな書き方の問題ですが、

  ・配列にすれば済む処理を、多くの変数を並べる

  ・関数を作成すればよい内容を、同じ処理をあちこちに書く

  ・switch 文を使えば済むような処理を、 if 分を羅列する

といったことは、言語とは別のプログラムを書くための表現力です。


これらと同様、習得する言語とは別の軸にデータ構造の設計やアルゴリズムの選択

(さらにはアルゴリズムの設計)というプログラミング技術があり、この技術の有無に

よりプログラムの性能は雲泥の差になりえます。


最後に、プログラミングとは少し異なりますが、データベースでの SQL言語 も扱える

ようになっておいた方が良いと思います。

id:moridai

データ構造とアルゴリズムは意識していかないといけない部分だと認識しています。

なるほど、言語そのものよりもプログラミングをするときに必要な基礎的な技術の方がプログラマには大事だと言う事ですね。今私がいる場所より発展したところな気がします。大変参考になります。

2009/05/23 15:31:24
id:ifurindo No.8

回答回数29ベストアンサー獲得回数4

ポイント16pt

SQLは大事ですね。Web系だったらMySQLについてだけ勉強しておけばokでしょう。

Rubyをある程度勉強してWebサービスを作れるようになったら、次はSQLを勉強してデータベースと連携して動作させられるようになれば、

どこかしらの会社が雇用してくれると思います。RubyとPerl二つ覚えてもそれでけでは、SQL知らなければ「お金を稼げる」Webサイトは作れないので、就職のためにはちょっと押しが弱いでしょうね。

独学はなかなかしんどいと思いますので、

IT勉強会カレンダーというものがございますので、お近くで勉強会をみつけて参加してみるといいと思いますね。

IT 勉強会カレンダー

id:moridai

はい、MySQLは言語をある程度使えるようになったとき勉強し始めようと考えています。やはり価値が高いんですね。

IT勉強会カレンダー参考にさせていただきます。ありがとうございます。

2009/05/29 18:33:33

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • Rubyが先 自分でした質問から引用。 http://q.hatena.ne.jp/1241173655 特に8番。簡単な勉強の進め方:入門書で基礎文法をやり、ライブラリの使い方を覚える。 http://q.hatena.ne.jp/1243000706 結論では、C/C
  • アルゴリズム入門 人力検索で質問したとき、質問の直接の回答とは少し違うがプログラミングをする上で大変参考になる意見を頂いたのでリンク。 ]http://q.hatena.ne.jp/1243000706#a921148/:title=http:
  • 第一回途中経過報告とパスタを食べたい件 100日プログラミングとか言っておきながら一応勉強ははかどっているもののちゃんと企画するべきでしたw 一人でやるのもやはり心もとない。目
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません