- ベストアンサー
どのプログラミング言語を学ぶべきか迷っている
- 情報学部の一年生がプログラミング言語の学習について迷っています。大学ではC言語を学んでおり、Javaも予定していますが、他の言語も学びたいと考えています。しかし、種類が多く、どの言語を学ぶべきか迷っています。どの言語を学ぶにしてもC言語との関係性も気になります。
- 学校ではやらないプログラミング言語を学びたいと考えている情報学部の一年生です。就職に関する具体的な希望はないため、興味のある言語を学んでみたいと思っています。ただし、C言語との関係性や将来を考えるとどの言語を学ぶべきか迷っています。
- プログラミング言語の学習に迷っている情報学部の一年生です。大学でC言語を学び、Javaの学習も予定していますが、他の言語も学びたいと思っています。しかし、種類が多くてどの言語を選ぶか迷っています。また、学んだ言語とC言語の関係性についても心配しています。どの言語を学ぶべきかアドバイスをお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
当方、情報系の大学院生です。 夏休みに自主的に勉強するとは素晴らしい! さて、新しくプログラミング言語を覚えるのは楽しいですが、 似たような性質をもつ言語を複数学んでも、そこまで勉強になりません。 パラダイムの異なる――すなわち、考え方の異なる言語を学ぶことをお勧めします。 C, Java, C++, C#, COBOLはすべて「手続き型言語」と呼ばれています。 乱暴な言い方をしてしまうと「同じような考え方の言語」というわけです。 例えば、ML, Haskellなど「関数型」と呼ばれる言語、 Prologなどの「論理型」と呼ばれる言語など、 C言語とまったく毛色の違う言語をひとつ勉強しておくと、 いい経験になると思います。 学部一回生であることを考慮すると、下記の本がおすすめです。 [計算機プログラムの構造と解釈] http://www.amazon.co.jp/dp/489471163X Lispの亜種であるSchemeという言語を用い、関数型、論理型の考え方、 また、計算機科学の様々な重要な概念が学べます。 英語版はWebで無料で読めるので、英語が得意であればこちらもどうぞ。 http://mitpress.mit.edu/sicp/
その他の回答 (7)
- morchin
- ベストアンサー率16% (212/1281)
断然Pythonを勉強すべきですね。 敷居も低いし、動的言語を勉強するのは色々勉強になります。 汎用スクリプト言語の中では一番メジャーですし。 作る題材がないのであれば、 『Pythonゲームプログラミング入門』という本でゲームを作ってみては?
- bakaok
- ベストアンサー率22% (33/148)
現状C言語をやっているならC++かC#でC言語系としてオブジェクト指向を学ぶ。 でオブジェクト指向を理解していればJavaにすんなり入ることができるでしょう。 >クライアントスクリプト(JavaScript、Ajaxなど)に分かれます。 AjaxはJavaScriptの利用形態の一つだからAjaxをJavaScriptと分ける必要はない。
- kmee
- ベストアンサー率55% (1857/3366)
情報学部、というのは大学と受け取りましたが、どうでしょうか。 ちょっと違う意見を。 中途半端な状態で他の言語を学ぶことは、あんまり勧めたくありません。 その様子だと、後期にはC言語最大の利点でもあり欠点でもあるポインタをやることになると思われます。ここでつまずく人が多いです。 実体とポインタ、という関係は、直接表に出ていなくても、他の言語でも同じような仕組みが使われています。なので、Cのポインタが理解できると、他の言語でも理解の助けになります。 この休みに、Cの勉強を先に進めましょう。「習ってないからできません」なんてのは理由になりません。 わからなくてもいいです。そのときは「どこがわからない」のか、はっきりさせましょう。その過程で理解できることもありますし、講義が始まったら、どこに集中すればいいかがわかるので、ダラダラ講義を聞かなくても済みます。(試験結果重視、出席軽視の講義だったら、理解できているところの講義は自主休講に....) あとは、まったく毛色の異なる言語に触れるのがいいでしょう。 Lispなどの関数型言語なんかどうでしょうか。
- nora1962
- ベストアンサー率60% (431/717)
私のお勧めはRubyかPythonです。オブジェクト指向でなおかつスクリプト言語ということで敷居が高くないのがポイントです。 WindowsでもLinuxでも動きます。 これ以外で言うと少し趣向を変えてLisp系をやってみるのも面白いかもしれません。
- FEX2053
- ベストアンサー率37% (7991/21371)
アセンブラを学ぶのは私もお勧めですね。でも、アセンブラ自体機種依存がある言語ですし、使い道も現在では限られちゃってますので、CASLなんていいんじゃないでしょうか? http://ja.wikipedia.org/wiki/CASL http://www5a.biglobe.ne.jp/~teamcasl/caslkozatop.htm アセンブラの基礎的な部分はCASLでもまったく同様ですし、しっかり学べば、情報処理試験の時にも役立ちます。
- tannoy-fan
- ベストアンサー率38% (88/226)
プログラミング言語にはCやJavaのようなコンパイラ言語(コンパイルしてオブジェクトプラグを実行する)とスクリプト言語(実行時に随時解釈して実行する)があります。 スクリプト言語は現在のWebを支えている言語で、サーバサイドスクリプト(PHP、Rubyなど)とクライアントスクリプト(JavaScript、Ajaxなど)に分かれます。サーバサイドスクリプトとクライアントスクリプトが連携して動きのある、データベースアクセスなどの会話的なページが動いています。 また、サーバサイドスクリプトで作成・提供されたWeb APIをJavaから呼び出してるアプリケーションもあります(Androidアプリが好例)。 スクリプト言語に興味を感じるならJavaScript(HTML5、CSS)を含むから始めて、来年はAjaxとLinux、再来年はPHPかRubyというラインがいいと思います。 そうすると卒業研究テーマの選択肢が広がりますよ。
- athanasius
- ベストアンサー率37% (361/964)
個人的には、言語というのは、カッター使うか、はさみを使うかくらいの差でしかなくて、言語がいろいろ知っているより、 アルゴリズムを色々と学ぶ方が良いと思うね。 それでも、という意味であえて言うなら、 「アセンブラ」 いまどきというのもあるんですが、個人的にC言語というのは、アセンブラの高級なマクロくらいなイメージなので、 知っていて損はないかと思う。 CPUの動作を理解しやすいと思う ポインタなんてのも、アセンブラのアドレス指定の一つだと容易に理解できるかと思う。 桁あふれとかもレジスタのデータ見た方が一目瞭然だしね。 対象のCPUは、外部インタフェースがそれなりにあるけど単純なマイコンが良いと思う