- ベストアンサー
基本情報技術者試験でC言語とJavaのどちらにするか迷っています
基本情報技術者試験を独習で受験したいと考えていますが、プログラム言語の選択に迷っています。 以前とあるスクリプト言語を使用していたことはあり、オブジェクトやクラスといったプログラムの考え方のようなものは少しはわかりますので、この春に合格できるかどうかはともかくとして、独習でも理解はしてゆけるのでないかなぁ…と希望的観測をしております。 が、言語の選択に迷っておりまして、現在は自分としてはC言語かJavaと思っているのですが、何か選択の際に考慮すべき情報はありますでしょうか? 例えば、 ・独習ではこちらの言語はかなり難しいと思われる、 ・とっつきやすいのはこちらだろう、 ・勉強のための環境はこちらがよい、 ・今後他の言語を習得する際にプラスになる面があるか、などなど、 その他いろいろな情報をいただければとてもうれしいです。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> 身近でつかる環境があるほうが、いいということになります。 どうもこの表現が誤解を招いているかもしれないので補足します。これは昔よく言われたことなのです。今から5年10年前は、コンパイラって結構入手困難だったのです。 高価だったり、ライセンスが厳しかったり、使いにくかったりして、会社とか学校にないとなかなか普通の人はさわれなかったのです。 だから、何か言語を勉強したいというというときに身近で使うことができる環境があれば、それをまず勉強しようと言われることが多かったのです。 今はタダでJBuilderのようなものがつかえるし、gccも身近なものになったので、そういう時代ではなくなったということなのです。 補足ついでですが、JavaとJavaスクリプトはまったく別物です。
その他の回答 (5)
- ykkw_2001
- ベストアンサー率26% (267/1014)
ykkw_2001、余談のために再び投稿です。 >>「実践的に役立ちそうなのは、C言語だと思ってます。」 >とのことですが、これはPGやSEの仕事をするなら汎用的、ということでしょうか? そうです。 あ、「汎用的」というより、「役に立つ」と言い換えたほうが近いかもしれません。 だから、試験の言語選択とは切り離して考えて下さい。 試験は、あくまであなたにとって通りやすそうなほうを選びましょう。 もちろん、趣味で使う分には、どのような言語でもOKなのは、言うまでもありません。 特にJavaは、仲間との話題が豊富になるでしょうからお勧めですよ。 で、話しは戻ります。 >>「実践的に・・・」 これは、あくまで、個人的な感想(オッサンのタワゴト)です。 以下、極論で、すんごく偏った意見ですので、気分を害する方がいらっしゃるかもしれません。 これを読まれるあなたが、「当然、世の中には、全く逆のことも多々ある。 このように感じるかわいそうな人も居るんだなぁ」ということを理解できる 大人であるとの前提に基づいて書きます。 (まぁ、そこまで慎重でなくてもいいんですが・・) たとえば、自分で作ったプログラムを自分と仲間内で使う人をアマチュア、 なにか報酬・代償をもらって他人が使う場合をプロとすると、 Java は、アマチュア向け、Cはプロ向けです。 Javaは、ハード抜き、純粋にソフトの独立性があるものに向いていて、 移植性がよく、マシン依存性が少ないといわれています。 Javaの売り文句ですよね。 (素人の人だって、ウィルス作れちゃうんですよ) だからこれからは「これ」なんですと・・・ がしかし、私に言わせると、 「とんでもないハッタリで、多くの純粋無垢で有望な若いプログラマをたぶらかし、 ツブシのきかない、井の中の蛙にしやがる、○ムウェイや○ームなどの ネットビジネスやカルトと同レベルの悪行」 です。 親の後を継ぐまでとか、結婚相手を見つけるまでの腰掛け状態で 会社務め(SE,PG)をするような人達が、時間潰しのためにいじる言語としては、 適当なのかも知れません。 が、「仕事」として、ソフトウェアを扱うプロには、悲しいまでに「ゆるい」「ぬるい」言語です。 そもそもコンピュータなのに、アドレス、ポインタの概念がないような言語は、言語道断です。 しかもデストラクタが・・・それにあのクソいまいましい・・・・ ・・・ま、言語仕様に関しては、長くなるので置いときましょう。 (コボラーやフォートラニスト、ベーシッカーに殺されるかもしれないので・・・・) SE、PGは「Java使えます」オンリーでは、絶対やっていけません。 一時大量生産されたCOBOLプログラマや、車のオートマ限定免許とはわけが違います。 VisualBASICやVBA、Delphi(Kylixとか)、果ては、FrontPageかホームページビルダを いじってるほうが、よほど世の中の役に立つはずです。 #ハァハァ・・・・。ちょっと、必要以上にアドレナリンを放出してしまったようです。 #なんでこんなに興奮してしまったんでしょうか? わたし・・・。 #しかも意味なく・・・・「たまってる」のか?脳内無線LANか? ただ、「Java対応です」は、機器の売り文句として、まだまだ使えるので、 機器に組み込むために、つまり「Java実行環境自体を実現する」仕事のために 仕様を知っておくことはかなり有用です。 なんだか支離滅裂で、失礼しました。 #削除も甘んじて受けます>管理人様
お礼
心がこもり含蓄の深い再回答をありがとうございます(^-^) #削除はされていないようですよ(笑) やー、迷います。 SEやPGを目指す身ならばCを選ぶのですが、ちょっと違うので…。 仕事で使わないことを考えたら試験後に使う可能性が少しでも高いJavaにしようかなぁ?とも思うし、ykkw_2001さんのご回答を読むと、Cにしたほうがカッコよさげかしら?とか思ったりもして(^^;) あと少し悩んでから決めたいと思います。 みなさまのお返事、大変助かりました、ありがとうございました。
- Fuumu
- ベストアンサー率31% (17/54)
FortranとかCOBOLや各種スクリプトなどを入れた大きなプログラミング言語のカテゴリーの中ではCとJavaはかなり近い関係にあります。 普通におもちゃプログラム(とか呼ばれるようなiアプリの簡単なゲーム)を作るとしたら、JavaをボーランドのJビルダーで扱うのはかなり敷居が低いと思います。 たとえば初心者の人でも、3日あればおみくじぐらい作れるようになります。 JBuilderのタダ版は雑誌や本の付録CD-ROMに入っていたり、ボーランドのHPから落とせます。いわゆる統合環境なのでエディターも要りません。Windows上でも動きます。 cはもともとunixで使われているので正統的に学ぶとしたらLinuxで扱うと後々良いのかと思いました。すいませんが、Windows上のフリーのcコンパイラは良く知りません。 Linuxもインストールにお金も技術も要らないのですが、将来的にサーバとかネット関連の技術者を目指すとしたら、Linuxでgccなんかが、いいと思います。 情報処理試験レベルではあんまり関係ないと思いますが、割と「低レベル」(機械に近いという意味です。)まで、アセンブラとどうレベルで扱えるのがcの特徴となっていますし。 参考URLはボーランドです。
- 参考URL:
- http://www.borland.co.jp/
お礼
再度回答をいただきありがとうございます、お手間をおかけします。 なるほどです。 「ボーランドのJビルダーで扱うのはかなり敷居が低い」と読めばJavaによろめき、「割と「低レベル」(機械に近いという意味です。)まで、アセンブラとどうレベルで扱えるのがcの特徴」と読めば今度はCによろめきます。 うーん、もう一度本屋にいって悩んでみます。 もちろん決めるときには、Fuumuさんのご説明も参考にさせていただきますね(^^) ありがとうございました。
- Fuumu
- ベストアンサー率31% (17/54)
情報処理試験程度なら、cもJavaもあまり変わりは無いと思います。(文法的にも、難易度的にも) プログラミング言語の習得には、実際にコンパイルしてみるということが、かなりいいと思います。 そうすると、身近でつかる環境があるほうが、いいということになります。 と、言っても、cはLinuxでできますし、Sunやボーランドから、無料のJava環境が提供されているので、どちらも実質的に普通のパソコンユーザがただで使えます。 ITブームの時はJavaプログラマが不足しているとかも言われていたのですが、cができる人ならすぐにJavaもできるようになりますし、その辺の需給環境は、すでに。 コンピュータ言語の独習は大変かもしれませんので、近くに質問できる人がいるほうが良いでしょう。 受験と考えると、確実に受験対策ができるcが手堅いのかもと思いますが。
お礼
ご回答ありがとうございます。 じつは「身近でつかえる環境がある」ということの判断が、恥ずかしながら自分ではよくわからないみたいです。本屋で入門書をみましたら、C言語はメモ帳とフリーのコンパイラでOK、JavaはソフトがついてるのでOK、と読めたんですが…。 CはLinux環境が必要なのですか?ただ書くだけでなく、実際にプログラムを走らせてみることのできる環境のためには、ということでしょうか? 気軽に質問できる人はCもJavaもいないので、これは考慮してないです(^^;)。 受験対策を通じて知識や理解が深まることを望んでいるのですが、そうしたらC言語が手堅いのでしょうか? 個人が趣味などで使う可能性の高低って、C言語とJavaの間でありますでしょうか? またまた質問ばかりですみません。
- ykkw_2001
- ベストアンサー率26% (267/1014)
#Javaもありになったんですか、変わっていきますねぇ。 で、試験のためなら、 >オブジェクトやクラス が、解っているなら、Javaかなと思います。 始まってしばらくは、カンタンな問題が出るというジンクスもあるそうで、あと、方言(コンパイラやマシン依存)のあたりは、出ないとか・・・ アルゴリズムと絡めて出されると思います。 過去問題資料の多さでは、C言語ですね。#1の方もおっしゃるっとおり。 実践的に役立ちそうなのは、C言語だと思ってます。
お礼
ご回答ありがとうございます。 「実践的に役立ちそうなのは、C言語だと思ってます。」 とのことですが、これはPGやSEの仕事をするなら汎用的、ということでしょうか?興味がありますので教えていただけたらうれしいです。(PGやSEとしての就職を考えているのではないですので、ざっと参考程度でもうれしいです。)
- coco1
- ベストアンサー率25% (323/1260)
こんばんわ。 言語的な仕様も似ているので、難易度的には変わりないと思いますが、過去問題はCの方が豊富なので、勉強する上ではCの方が好都合ではないでしょうか。 逆に、JAVAはそれほど難解な問題が出る確率は高くないと言えるかも知れません。 質問にあります、他の言語を学ぶ上でのメリットを考えますと、アセンブラが一番応用が利く、という評価もできそうで、何とも言えないような気がします。 参考にならないアドバイスですみません...。
お礼
ご回答ありがとうございます。 過去問題が多いのはC言語、問題の難易度が低いのはJava、なのですね。(^^) 今回、この資格がどうしても必要というわけではなく、勉強の機会として考えています。どちらの言語が合格しやすいかという観点よりは、どちらが勉強になるかなぁという観点で考えているのかな、と、自分のことなんですけども、気付きました。 となると、過去問が多いC言語のほうが勉強になりそうでよいのかもしれませんね…??
お礼
こちらもありがとうございます。 「身近でつかえる環境…」のFuumuさんの意図、よくわかりました! すっきりしました。 (JavaとJavaスクリプトが別なのは知ってました~(^^) ですが、どうしてこの心配をしてくれたのがなんとなくわかるような気がします、うまくいえませんが安心しました~、ありがとうございました)