質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Java

    16110questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Python

    12175questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Ruby

    9608questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • C

    4637questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    4501questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

次に学習すべき言語

解決済

回答 11

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 3,756

nisuko

score 27

タイトル通り、次に学習すべき言語など、どれが良いか、どれをやるべきか、などを皆さまの経験や知識などから教えてください。
C言語は入門書の範囲を終え、ポインタやmallocなどをある程度扱えるレベルです。
オブジェクト指向にも触れてみるべき、という記事などをよく見かけるので、オブジェクト指向言語を何かやろうと調べてみると、オススメされてる言語がたくさんあり、色々な事が書かれていますが、どれも完璧な初心者or言語を2つ以上できるレベルの人向けに書かれており、私のような中途半端な初心者にはどれが良いかという記事を見かけなかったので質問させていただきました。
また、オブジェクト指向をやる前にCをここまでできるようにするとよい、などもありましたらお願いします。

ちなみに、プログラミングを学ぼうと思った動機ですが、何か目的があるというよりは、この分野の知識が必要な目的ができたときに、予備知識があると不自由なくできるかな、と思ったものです。

追記
皆さまのたくさんの回答ありがとうございます!
ベストアンサーが一つしか選べなく、大変迷ったのですが、今回は2つの言語を熱心に詳しく解説してくれた方にしたいと思います。
が、他の方の回答もすごく良く書かれており、とても勉強になりました。ありがとうございます

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

回答 11

checkベストアンサー

+16

独断と偏見で次に学ぶべき言語をこの私が決めてあげましょう。ええ、独断と偏見で。


まず、C言語のことはすっかりさっぱり忘れてください。何言ってんだこいつと思うかも知れませんが、今から紹介する言語ではこれまで学んだことが一切役に立ちません。いや、今の表現は正確じゃ無かったです。C言語で学んだことが最初の内は一切役に立ちませんが後から大いに役に立ちます

さて、mallocとfreeのペアで大いに苦労してきたかと思います。やつらはほっとくとすぐにメモリリーク起こしますからね。でも、次に行く世界にはGCがあります。そう、ガベージコレクション(GC)というやつ、略してガベコレです。DMMのゲームじゃありません。ましてや車庫集め(ガレージコレクション)でもありません。注意してください。このガベコレってやつは、メモリを勝手に管理してくれます。楽です。楽すぎて、もうこれでいいやって思うぐらい楽です。この楽さはC言語を学んだあなただけが体験できる素晴らしく幸福なことです。幸福は義務です。

話がそれました。艦これ以上に楽しいガベコレの素晴らしさを理解したと思います。理解していなくても先に進みます。C言語は命令型で手続き型です。これの逆を行けばいいのです。命令型の逆は何か?そう、それは宣言型です。宣言型というと関数型/論理型/制約型といろいろあるのでここは純粋関数型言語(pure functional language)で行きたいと思います。では、手続き型の逆は何か?そう、それはオブジェクト指向です。ここもやっぱり純粋オブジェクト指向言語(pure object-oriented language)で行ってみましょう。

つまり、次に学ぶのはガベコレが搭載された「純粋関数型言語」と「純粋オブジェクト指向言語」の二つです。これとC言語の知識を組み合わせるとほとんどの言語はマスターしているといっても過言ではありません。では、その中でもお勧めの言語をそれぞれ紹介していきましょう。

 純粋関数型への誘い、Haskell

Haskellは純粋関数型言語の一つです。その特徴は何と言っても純粋関数型と言うことです。裏技を使わない限り、どうやっても関数型プログラミングを強制させられます。ここが重要です。テストに出ます。

関数型プログラミングはC言語の時とは全く考え方から異なります。まず、代入は一度きりです。一度初期化した変数は二度と変わることはありません。そんでもって全てのデータは変更不可です。配列の中身が変わることはありません。そして、関数を引数に関数を評価します。こんなんでどうやるんだと思うかも知れませんが、モナドとか色々頑張るとなんとかなるものです。

Haskell自体で実用的なアプリを作れないことも無いのですが、どちらかというと関数型プログラミングを学ぶのに一番適していることがお勧めする理由です。この関数型プログラミングの考え方は極めて重要です。将来、C++なりC#なりJavaなりScalaなりJavaScriptなりPerl6なりPythonなりPHPなりRubyなりLISPなり、その他諸々を学んだときに必ず役に立ちます。2〜3年後に、あ、Haskellやっててよかった、と思う日が必ず来ます。

 趣味で作った純粋オブジェクト指向、Ruby

はっきりいいます。C++とかJavaとかのオブジェクト指向はまがい物です。あれらは、構造体を拡張したにすぎません。オブジェクト指向っぽい構造体です。なので、最初は本物から学びましょう。

島根県松江市に一人の言語オタクが住んでおりました。彼は純粋オブジェクト指向な言語が欲しいと思っていました。彼はPerlが大好きです。彼が尊敬する人はLarryです。でも、Perlにはぶっちゃけ不満ばりばりでした。なぜなら、本物のオブジェクト指向では無かったからです。そして、世の中のオブジェクト指向を見たとき、Perlのように楽しく使える本物のオブジェクト指向言語が無かったのです。なので、彼は作りました、趣味で

そうやって出来たのがRubyです。Rubyの恐ろしいところは、何でもオブジェクト指向で書くように洗脳することです。いつのまにか、オブジェクト指向万歳!オブジェクト指向大好き!オブジェクト指向以外が許されるのは小○生までだよね!キャハハっていうようになります。恐怖の言語です。私は、一時期、どんな簡単なコードでも"class"と書くところから始めていて、これはやばいと感じました。

最初に本物さえ学んでおけば、偽物は簡単です。構造体に毛が生えた程度の言語など、苦でも無いです。それ以外にも、Rubyではダックタイピングが身に付きます。型なんて飾りです。偉い人にはそれが分からんのです!


いかがだったでしょうか?ええ、上のは独断と偏見です。ただ、50%ぐらいは本気が混ざっているのは事実です。Cだからそれを生かしたものを!ではなく、全く異なる物を学んでみるのも一つの手段だと思っています。でも、プログラミングって実は裏で繋がっている物で、結局C言語で学んだことに舞い戻るのです。そういうのに気付いてくれたらなんて思ってもいます。そんな思いで書いてみましたが、読み物として楽しんでいただけたら幸いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/19 09:22

    ところどころ挟んでくれるジョークが面白かったのですw
    ですが市民、なぜプログラミングができるのでしょうか?完璧で幸福な市民ならプログラミングのスキルを習得する必要がありません。反逆者ですね?


    というのはさておき、Hakellとはよく耳にするのですが、文章を見たところ実務やソフト開発には向いていないと思われます。Haskellは何を目的として作られたのでしょうか?MatzがRubyを作ったように、誰かが趣味で作った言語なのでしょうか。
    確かに、今プログラミングを学んでいる理由は、ほぼ趣味です、ですので、実務に向いてない言語でもよいのですが、先入観にとらわれていました。

    同時期に複数の言語を並行して学習するのは厳しいものがあるでしょうか?
    もしないのであれば、C++やJavaを学習してる他で、並行してHaskellやRubyも学びたいと考えています。Rubyは色々なプロ言語学習サイトで取り上げられていて、基本なら無料で学べるので、余裕があれば、、と考えています

    キャンセル

  • 2016/01/19 18:51

    > nisukoさん
    そこの元ネタに気付くとは・・・

    さて、Haskellが実用的じゃないわけではありません。Pandocという結構有名なソフトもありますし、海外では実務にも使われているようです。ただ、いかんせん、日本ではHaskellプログラマが少ないので、人員的に集めるのが厳しいという所でしょうか。

    私も詳しい歴史までは知らないのですが、Haskellは純粋関数型にこだわってオープンに作ろうというのがきっかけのようです。いわゆる関数型言語は(何をもってそういうのかは別として)結構一杯あるのですが、どこか妥協していたり(純粋じゃ無い所がある)、実験的だったり(研究者のおもちゃ)、と何かが欠けています。実用的かつ純粋関数型というとHaskellぐらいだと思っています。

    もう一つ。複数の言語を同時に学ぶことですが、結構厳しいと思います。頭の切り替えがさくっと出来ないと混乱の元になっちゃうかなと。ただ、私が言えるのは「区切りを付ける」ことです。本なら本を読み終わるまで、サイトなら最後のページに辿り着くまで、などを区切りにまずは勉強してみることです。途中難しくてよくわからないとなっても、とりあえず読んでください。一つ終えたら、そのあとに同じ言語の他の本/サイトか、全く別の言語へ移るといいです。

    どういうことかというと、本/サイトを一度読んだぐらいではマスターなんて無理だと言うことです。同じ言語の別の本/サイトや別の言語についても色々勉強してから、立ち戻ってみてください。Cもこれで終わり、ではなく、色々学んだ後に戻ってみることお勧めします。以前は見えなかったこと、曖昧だったこと、実は誤解していたことがきっと見つかります。そうやって各言語への知識を深めていくと、いいコードが書けるようになると私は思っています。

    キャンセル

  • 2016/01/19 19:33

    TRPGはオフラインでよくやるのですよw

    やはり同時に学習するのは厳しいですか、、
    わかりました。では意見も多く自分の中でも強かったC++の入門書を一通り読んで、その次にJava、Haskell、Rubyなどから学習すべき言語を見てみたいと思います。
    中学の時の担任は、自分が多くを学習する時は広く浅くから、それぞれをだんだん深くしていく。という感じの教え方をしていたので、それが自分にもあっていると思っています。なので、raccyさんの書かれた通り、まずは1冊本を読み終えるまでやってみたいと思います!

    キャンセル

+6

こんにちは。

もし、nisukoさんが学生さんなら折角C言語をされているのですから、C++をお勧めします。
C++は学ぶべき点が非常に多く難易度が高いのですが、その分学べることも多いです。

もし、既に社会人になられていて、仕事で使うことを考えているのであれば、最もシェアが多いと聞くJavaが良いかも知れません。学習難易度も低いですのでコストパフォーマンスに優れます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/18 21:03

    C++ですか、学ぶことが多い、とかかれていますが、ではJavaもC++も、どちらも後々学習することになるとしたら、どちらを先にやると学習効率が良くなるでしょうか、考えで良いので教えてほしいです。
    ちなみに、学生なので時間はたっぷりあります。なので、まずはC++をやろう、という考えが私の中では強いです。

    キャンセル

  • 2016/01/18 21:25

    JavaとC++どちらを先にやるべきか。中々悩ましいですが、学生さんで時間が取れるのであれば、C++からをお勧めします。
    世の中の多くのことは準備と後始末がペアになります。しかし、Javaは原則として後始末を記述しない言語なので「後始末しないクセ」が付くと痛いかも知れません。

    既にポインタを理解されているのであれば、次はC++でコンストラクタ(開始)とデストラクタ(後始末)を体に叩き込むと将来強いと思います。習慣はなるべく早く身につけた方がよりよく身につきますし。

    キャンセル

  • 2016/01/18 21:52

    言語を便利にすると、あれやこれをやらなくなる癖がつくとは、プロ言語以外でもよく聞く話で、着いた癖は直すのには時間がかかるものですよね、
    わかりました。明日か明後日に書店でC++の入門書などを見てこようと思います。

    キャンセル

  • 2016/01/18 22:05 編集

    いらっしゃい。C++erお一人様ご案内!!
    ググっても分からないことが出てきたら、ここで遠慮無くお尋ね下さいね。
    ここはC++に強い方もたくさんいらっしゃいます。

    キャンセル

  • 2016/01/19 09:02

    ありがとうございます!w
    今日は天候的に厳しいので明日いくつか書店を巡って、良さそうな本を買ってみようと思いますw
    他の方へのコメントを見てわかる通り、現在javaとC++でどっちつかずという感じなので、両方のを買って、まずはC++から手を付けてみようかと、、、w
    では、もしわからないことがあれば、またこのサイトで質問させてもらいます!

    キャンセル

+4

次の言語というのはだいたい今使っている言語に不満が生じているときに自然に、
「これだ!」という言語が見つかるものです。
C言語に不満がみつけられないのなら、今はC言語を極める時期だと考えた方がいいんじゃないでしょうか。

一つの言語をきちんと学んでいると、新しい言語の理解も早いです。
逆にうわべだけかじっていると、新しい言語に移るたびに苦労することになります。
プログラミング言語にはいろいろ違いがありますが、
共通する問題も多いですから、一つの言語をきちんと学習していると、
そういう点で困らなくて済みます。(「それは Cの○○だよ」という説明でわかってしまいます)

また、最初に戻りますが、「不満を持ったら…」という点では、
現代の言語の大半は C言語への不満からスタートしています。
C++ は C言語にオブジェクト指向の機能を追加したものですし、
Perl などももっと手軽に実行できる言語を・・・という動機で開発されています。
そういう意味では、C言語を理解し、その問題点(みんなが不満に感じる点)を理解するのは、
他の言語を理解する際に大きな助けになります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/18 20:56

    なるほど、ではCを極めると書かれていますが、どのくらいで極めたことになるのでしょうか、、
    実務で不満がないレベルなのか、標準ライブラリや、windows.hなどよく使われるライブラリの機能をすべて使いこなせるまでなのか、それとも作ろうと思ったものをCで思い通り完璧に作れるようになってからなのか。

    最後に、もしkozushiさんがCを学習したことがあり、かつCの後に別の言語を学習し有利になった点などあればそれも教えてほしいです。

    キャンセル

+4

ポインタやmallocなどをある程度扱えるレベルです。

では次は「完璧に扱える」レベルを目指しましょう!

というのはこの際おいておくとして、私のおすすめはC++です。まず単純にCを覚えたのにC++をやらないのはもったいないです。Cを理解しているならC++を覚えるハードルは低いと思います。
また、候補に挙がっているJavaや候補には挙がっていませんがC#などは、C++を参考にして作られているため似通っている部分が多く、いずれ覚えるとしてもC++を習得していれば理解が早まります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/19 09:06

    やはりC++という意見が多いみたいですね、、
    もちろん、現在はCはその程度ですが、余裕があれば他の言語と並行して、混じっちゃわないようにしながら学習を進めていくつもりです。
    しかし、javaがC++を参考にした、と初めて知りました。
    やはり、C++から先に始めてみようと思います。もちろん、javaもやります。

    それらの後何か学習する際にはC#も考えてみます!

    キャンセル

+2

オブジェクト指向を学びたいなら、Javaが良いかと思います。
書籍が出そろっていますので、学習しやすいかと。

手っ取り早くスキルアップするなら、今やっている言語となるべく遠いものを選ぶというのも一つの戦略です。

たとえば、LispやSchemeなどの関数型言語を触ってみると、これまでCで培ってきた常識が通用しないので、大変苦労します。でもSchemeを習うとプログラミング全般の筋が良くなるといわれています。

私は飽き性なので節操なく色々手を出してましたが、そのおかげで知識面では色んな言語の良いとこどりができていると思います。結局、仕事で使ってるのはVBAですけどね。

まあ、入門レベルの書籍なら、1週間程度で終わりますし、どれと決めずに色々やってみてはいかがでしょうか。

取り急ぎ次の…ということなら、今一番気になっている言語。
つまりC++を、さっさと始めてしまうのが良いと思います。

ひとつ後悔してるのは、技術書を毎回新品で買ってたことです。Amazonの中古で送料込みでも数百円で色々売ってますし、ブックオフで買う手もありました。時間はたっぷりあってもお金が苦しいかと思うので、安い本で色々試してみると良いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/18 21:57

    昔中古の漫画を買って後悔したことがあって中古はためらっていたのですが、一度明日明後日でブックオフを見に行ってみたいと思います。
    もしも安く状態の良いものが多ければ、C++とJavaの2種類のも買ってみる事が予算的に可能になりますし、
    私自身本を読むのは、どのジャンルの本でも早い方ではないですが、ここ最近時間が結構あいてるので、うまくいけば2月末までにはC++もjavaも初級レベルを終える、ということができそうです。

    アマゾンは手に取ってみる事が出来ないので少し心配ですが、、

    キャンセル

  • 2016/01/18 22:06

    アマゾンの状態表示はまずまず信頼できますよ。
    私の経験では、「良」なら本屋で長い間立ち読みされ続けた新品とたいして変わらないですね。

    独習C++はあえて最新版を外して第三版にしましたが、300円+送料250円くらいで手に入りました。表紙は少し日焼けしてますが、中はまずまず。

    どうせ頭に入らなかったら飾っておいても仕方ないですし、最悪、ボロボロでも良いのではないでしょうか。

    キャンセル

  • 2016/01/19 09:32

    でしたら、一度アマゾンでも見てみたいと思います、アマゾンで本を探して、状態や送料を含めた合計金額、その他レビューなどと、実際に古本屋などの書店でみて状態や価格などを比べて、コスパの良さそうな方を選んでみたいと思います!

    キャンセル

+2

>どのくらいで極めたことになるのでしょう

>それとも作ろうと思ったものをCで思い通り完璧に作れるようになってからなのか。

それは裏を返すと、あなたがその言語に何を求めているかという話でしょう。
趣味のプログラムが書けるようになればいいのか、
一人前のプロとしてバリバリ稼ぎたいのか・・・。
あるいは、他人から「あの人は極めている」と認められたいのか・・・。
それによって変わってくる事柄のような気がします。
その目的を極められるレベルにまでなることがイコールその人にとって、
その言語を極めたということじゃないでしょうか。

私の回答では「極める」という言葉を
「自分が納得できるまでやってみなさい」程度の意味で言っています。
普通は、「極める」前に、その言語に不満がでてくるなり、
業務その他の必要に迫られたりして他の言語に移ることも多いと思います。
「その言語では物足りなくなること」も一つの指標かもしれません。
Cは古い言語ですので、そのうちに必ず他の言語に目移りすることは
目に見えています。
今、「Cをやめてこの言語がやりたい」という動機が発生しないのは、
プログラミングや自分のやりたいことについての理解がそこまで
達していないせいでしょう。
であれば、そういう判断ができるようになるまで現在ある程度理解が進んでいる
C言語で、その二つについての理解を深めたらどうかという話です。

>最後に、もしkozushiさんがCを学習したことがあり、かつCの後に別の言語を学習し有利になった点などあればそれも教えてほしいです。

C言語は今の大多数の言語のひな形になった言語なので、
たいていの言語に移行するのに違和感がないです。

あと、実は極めるのが比較的容易な言語でもあります。
「バイブル」と呼ばれている言語開発者が書いた「プログラミング言語~」
という本の厚さを比べてみてください。
K&R(C言語のバイブル本)はびっくりするほど薄いです。
それでいて、プログラミングに必要な基本的な事柄はだいたい網羅されています。
つまり、Java学習者がリスト型の違いを理解するのに四苦八苦しているころには、
自分でツールが作れるようになっているということです。
つまり、C言語ではプログラミングについて広く薄く短い時間で学べます。

あと、Cは比較的低水準(コンピュータの生の動作に記述が近い)の言語なので、
コンピュータ自体の動作への理解が深まるということです。
最近の言語から入った人は、メモリがどのように確保され使用されるかということについて
明確なイメージは持ちにくいでしょう。
速度面でもメモリの面でも効率のいいプログラムを組もうとしたとき、そういうイメージは必要になってきます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/19 09:27

    確かに、Cの本を買いに行くときも、他の言語は異様に分厚いのがあったりしたなか、Cのコーナーはスマートに収まっていました。
    もちろん、他言語をやりながら、余裕があればCも並行してやろうと考えています。
    メモリ云々の面では、アセンブラをやると良いと言われましたが、Cでメモリ云々の感覚をつかむか、アセンブラで掴むか、どちらの方がイメージつきやすいでしょうか?
    いや、まぁ流石にここまできて、アセンブラも学べ、と言われても混乱しないかどうかだと自信はないですが、、

    キャンセル

+1

予備知識として広い知識を得るのであればJavaを学ぶ事をお勧めします。

理由は下記です。
・書籍やネット情報も豊富
・Javaを使ったオブェクト指向の実践方法が安定している。

また、予備知識だけではもったいないので実践もしてみてはどうでしょうか。
・C言語:マイコンボードで遊ぶ。
・Java:Androidでアプリを作る。(厳密にはJavaではないんですけどね。)、または、Javaを使ったGUIアプリを作る。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/18 21:00

    Javaですか、確かに利用者も多く、どの環境でも動作するなどという点ではすごく便利なものだと思います。
    そこで、疑問なのですがCをやったあとにもJavaは向いてるのでしょうか、同じCつながりでC++かな、とも思ったのですが、、C++をやるよりもJavaをやる方が良い点などありましたらお願いします。

    マイコンボードは調べてみるとarduinoという物が面白そうです。言語もCにすごく近いので、購入を検討してみます。

    キャンセル

+1

こんにちは。

僕はC言語を学生時代に勉強し、会社に入ってからjavaを勉強しました。

 学生自体にHTMLやPHP、CSS等もやりましたが。

C言語をやられたのであれば、おそらくjavaも手を付けやすいと思います。
書き振りが似ているところが多いですからね。

C言語が中途半端であると、おっしゃっていますが、
pointerやmallocまで学習できているのでしたら、javaも難なくいけることでしょう。

是非、java仲間になりませう!

あ、余談ですが、
HTMLやjavascriptなんかを覚えておくと、
ホームページを作りたくなります。
そのうちPHPで動的ページも作りたくなって、
データベースを絡めようとしてSQLを覚えたりもします。

WEBページのデザイン面に興味が出てきたら、
上記組み合わせでお試しあれ!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/18 21:23

    余談を見て思ったのですが、確かにwebページ言語という手もあるのですよね!
    脳内の言語勢力の中にHTMLが生まれてきたような気が、、

    まぁ、話を戻して、Cもそこらまでできるので、恐らくjavaも基本技能ならつまづくことなくできるのかなぁ、とも思えてきます。
    今のところjavaとC++どちらが良いか、C++の方が少し優勢かなぁ、程度なのですが、
    仮にどちらも実務可能レベルまで来た場合、その後にHTMLやJavaScriptを学ぶ際に学びやすくなったりしますか?

    キャンセル

  • 2016/01/19 00:53

    javaだと、jspっていうファイルにjavaコードとhtmlコードを同時にかけたりします。
    C++は、そういうのがない?と思うので、やはりオススメするのはjavaかなぁって感じです。
    javaスクリプトは、javaとは全く関係のない別物なので、混同しないように注意せねばなりません。

    個人的感覚ですが、C++とhtmlは、密接に関わってるとは言えないかなぁって感じですね。

    わたしもまだ勉強してる身なので、一緒にスキルアップできたらいいですね!

    キャンセル

  • 2016/01/19 09:04

    なるほど、、htmlも学ぶのならばjavaということですか、、
    わかりました、明日javaとC++の書籍を買いにいきたいとおもいますw
    金銭面で余裕があればhtmlの方も見てみるだけ見てみようかなと、、w

    キャンセル

+1

みなさん各言語にそれぞれの思いがあるようで見ていて楽しいです。

僕は、2番めの言語はどれでも良いと思います。というのも多分ここに書かれている方で、書いた経験がある言語が5つを下る人はいなくて、10個以上はすぐに出てくるのでは無いでしょうか?

確かに最初に憶えた言語と似た言語は憶えてもしょうが無いでしょうけれど、そういう言語は得てして学習コストが低い(習得にかかる時間が短い)ので、損する時間が少ないです。また、LISPが代表格でしょうけれども、あまりに違う言語の場合、学ぶべきことが多く学習コスト高く付きます。また、挫折する可能性も高まります。

学ぶべき言語についての話は度々上がってきますが、”無人島に持っていく10冊の本”的に盛り上がる話題です。nisukoさんがこの話題に参加出来る日を楽しみにしています。

LL言語から手をつけるのに並行して、低レベル(=深いレベル)の言語や関数言語について学ぶことをおすすめします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/19 09:30

    10個以上も、、やはり実務などで経験されている方だとそのくらいが普通になっていたりするのですね、、

    幸い、友人に、高校の情報でSchemeを学習した経験がある、という方がおり、教えるのも上手な方なのでLL言語を学ぶ時にはその友人に手助けしてもらいながら、ということもあるので、平行してやるのは可能だと思います、私もその方もほとんどの時間暇なのでw


    私がそちら側の人になるまであとどのくらいかかりますかねw早くたどり着けるように頑張りたいと思います!

    キャンセル

  • 2016/01/19 12:29

    それなりに時間はかかるけど、数をこなすのは難しくはないです。汎用機の世界だとCOBOLとJCLしか書いたことないって人多いけど、ほとんどの場合は環境ごとに使う言語が違うのですぐにふえていきます。(webだと、java(PHP)/html/css/javascript/sqlなど)

    順調に書ける言語が増えていけば3年から5年で、それぞれの言語の違いが分かってくると思います。

    キャンセル

  • 2016/01/19 13:49

    なら、一応社会に出るまでには、うまくいけば言語の違いが見えてきそうです。
    web系はサーバーサイドかクライアントサイド、どちらが、日本では利用者が多いですか?
    利用者が多いというか、どちら側の言語を使用してる又は需要が高いですか?

    キャンセル

  • 2016/01/19 16:04

    IT業界は広いため、総論はなかなか難しくどちらの技術者が多いかという点は不明です。また、どの言語を勉強するかという点についてはどちら側かというのは意識する必要はありません。

    web系で需要を高めたいというのであれば、両側のひとと会話ができるということが重要です。

    web系ではサーバもクライアントも理解しておく必要があります。webデザイナーがいる場合は、CSSやHTMLさらにjavascriptの一部も書いてれると思いますが、協力して作業を進めるためには、基本的な部分は自分でも書けるようになって置く必要があります。

    逆に、nisukoさんがwebデザイナーになるのであれば、phpやjavaがどのようにデータベースのデータからhtmlを出力するのかを理解する必要があります。

    仕事によって境界もあいまいになりますので、両方をある程度準備しておく必要があります。

    キャンセル

  • 2016/01/19 19:20

    わかりました。
    まだ、将来どんな職に就くかなどの具体的なイメージはできていないのですが、もしwebデザイナーになるような事があったときのために、学生のうちにどちらとものweb系の言語を習得しようと思います。

    キャンセル

+1

C言語をほぼマスターしたのならC++が取っ付き易いですが、オブジェクト指向でつまずく人が多いのも事実です。一応C++で書いてはあるけど、C言語の記述になっていてクラスの作り方も単なる関数の集まりみたいで全然オブジェクト指向になってない書き方しかできない人もいます。こういう人はオブジェクトがイメージ出来ないんだと思います。
オブジェクト指向は習得して損なことはありません。ぜひ身につけるべきと思います。プログラミングというより、物事の考え方にも役に立ちます。そういう意味では、C++だとC言語の癖を引きずってしまう可能性があるので、Javaでオブジェクト指向を身につけたほうがいいかもしれません。JavaはC/C++に近い言語ですから、とっつきやすいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/19 19:18

    Javaerによく見られる癖やC++erによくみられる癖などありますか?
    また、JavaからC++に移った際に引きずってしまう癖など、、

    キャンセル

  • 2016/01/19 23:20

    そういうのはよくわかりません。癖はその人個人の癖つまり考え方が反映するので、クラスの構築の仕方などを見ると、どこまで理解してるのか、どいう設計思想で書き上げてるのかは、大体分かります。全く理解に苦しむ場合もありますが^^;

    キャンセル

  • 2016/01/20 08:40

    なるほど、、、考え方ですか、、
    オブジェクト指向は触ったことないので、理解できるかどうかわかりませんが、とにかく一度、まずはC++に挑戦してみます。

    キャンセル

0

すみません。なぜか二重に送信されてしまったので、こちらは削除します。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Java

    16110questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Python

    12175questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Ruby

    9608questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • C

    4637questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    4501questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。