こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

初心者が選ぶべきプログラミング言語は?

初心者が選ぶべきプログラミング言語は?

プログラミングの勉強を始めようと思っている超初心者です。この手の質問はこちらでもかなり検索すればヒットしますが、いまいち良くわからないのであえて質問します。

私のような初心者がプログラミングをはじめるときどの言語を選んだらよいでしょうか?
重視することは「将来性があって」「有用性のある」「標準的な」言語です。
言語選びにはしたいことの明確なビジョンがないといけないと言われますよね
私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています
後々は勉強の具合により目的も変えてゆきたいと思っていますが・・・

今現在の理解では・・・
基礎はCで、ビジネスではJavaで、WebはPHP、ぐらいしか解りません。どれもプログラミングの共通点を
有していて勉強すればある程度は共通知識を身につけられることも言われてはいますが
言語選びを間違えたくないなと思いまして。

Cをすこし勉強したときいつwindowsアプリのようなウィンドウをつくれるかももわかりませんでした。
現在自分ができることといったらExcelでVBAを組んで(かなり低レベルですが)自動化させる程度です。


ビジネスの世界、SEなどのプログラマーの世界で今注目されている言語や花形言語など、現在業界のオーバービューも知りたいです、詳しい方どうぞよろしくお願いします。

※個人的にはRubyが面白そうで、いろんなことができそうだなと思っています。

投稿日時 - 2010-09-23 03:29:00

QNo.6201461

困ってます

質問者が選んだベストアンサー

私は10数年Windows用のクライアントソフトを開発していますが・・・

>重視することは「将来性があって」「有用性のある」「標準的な」言語です。



>私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています

が、合致しません。

WindowsというクライアントPC 用のアプリ開発自体が、「将来性がなく」「標準的でない」方向にあると思います。エンジニアの求人情報を調べればわかります。


それから、身につけたい技術の選び方として、「言語」はあまり意味がないです。
C言語をマスターしたからといって、WindowsやiPhoneで思い通りにソフト開発ができるわけじゃないです。

なので、最初は「どのプラットフォームの開発を身につけたいか」を決めた方が適切なアドバイスがもらえると思います。

Windows?iPhone?Webアプリ? SaaS系?などなど

プラットフォームが決まれば、今習得すべき言語は(本人の希望によらず)勝手に決まってしまいます。AndoroidならJavaとか。

「将来性」はともかく、Windowsアプリを作りたいのであれば、.NET Framework で VBでもC#でもお好きな方を使って開発するのが一般的ですが、それでもハード性能を100%使い切るばりばりの3Dゲームソフトを作りたいなら Win32API & C++ & DirectXでどうぞ、という感じです。その前にWindowsで3Dゲームを作ること自体が今となっては疑問です。XBOX + XNAの方がいいかもしれません。
将来性をもってゲームを作りたいなら、AndroidやiPhone で OpenGLアプリを勧めたいですね。

という感じで、言語を選ぶこととプラットフォームを選ぶことは別で、多くの場合プラットフォームが決まれば最適な言語をマスターするしかないということです。

投稿日時 - 2010-09-24 16:50:22

お礼

ご回答ありがとうございます。

自分が描いていたプログラマー像というのは、いろいろなアプリを作るのにこの言語が必要でそれを自由自在に操れるというような感じでした。あまりにも言語が多数で、また言語の使い方もそれぞれあるし、共通して使える部分も使えない(というか使いにくい)というような部分もあるようですね。

一言で言うならばトレンドが知りたかったのかもしれません。

プラットフォームを選び、言語を選び、何用の何を作るかという考えはあったのですが
その場合はこれを選ばないといけないということがあるのかと思っていました。
そうではない必要な言語を選び足らないものは別のところから持ってくる、というの考えも必要ということがわかりました。

とりあえずは一つの言語を勉強してゆき、他の言語も調べていくんだという姿勢にしたいと思います。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:28:52

ANo.9

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.8

RubyよりPythonの方が習得が簡単で、応用範囲も広い。

投稿日時 - 2010-09-24 12:10:58

お礼

ご回答ありがとうございます。

この一言が結構情報になりました。Pythonは名前は聞いたことがありましたがどういうものか知りませんでした。少し調べたところ非常に書き方が簡単のようですね。(厳密なコードを書くのに制限的であるということも言われているようですが)、Rubyもよさそうですが非常に気になりました。

他の方のアドバイスにもあるのですが、選り好みせずいろいろな言語に触れてみようと思います。まずは何か一つ言語をやってみてプログラミングをするという環境を作ることが大事なんだと思いました。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:03:29

No.1です。
>重視することは「将来性があって」「有用性のある」「標準的な」言語
構造化プログラミングからオブジェクト指向への流れは間違っていないので、当分の間はオブジェクト指向言語が一番これに当てはまると思います。

そう考えればその筆頭を成すのは、C++(C#)であるだろうと思います。
そして、その次がJavaでしょうか。

なお、PHPやRubyは簡易言語であるため、オブジェクト指向と言っても、C++でできるすべての(論理としての)オブジェクト指向を実現できるわけではないので、あまりお勧めできません。

しかし、いきなり0から、ガチガチとプログラムを組むのでは挫折する可能性が高くなります。
そこでまずは、既存プログラムを改造しながら学ばれるのはどうでしょう。
「レーシングゲームCodeRallyで覚えちゃう Javaプログラミング&Eclipse学習術」
http://www.amazon.co.jp/%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%B3%E3%82%B0%E3%82%B2%E3%83%BC%E3%83%A0CodeRally%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A1%E3%82%83%E3%81%86-Java%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Eclipse%E5%AD%A6%E7%BF%92%E8%A1%93-%E5%8F%AF%E7%9F%A5-%E8%B1%8A/dp/4883374262

私もやりましたが、Java言語を学ぶのにもオブジェクト指向を学ぶのにもあまり有益とは言えず、ほぼC言語の知識だけでできてしまうのですが、遊びながら学べるという点では、お勧めです。
やはり、本格的に学ぼうと思った場合、他の人が書いたソースコードを読める力も必要ですし、自分の書き方と他の人の書き方の違いを比べることができるのもいいと思います。

最後に、私が改造したプログラムのURLを掲載します。
もし、何かの参考になれば幸いです。

参考URL:http://k242.blog13.fc2.com/blog-entry-67.html

投稿日時 - 2010-09-23 21:24:53

お礼

ご回答ありがとうございます。

ゲームを開発しながら、学ぶことができれば最高なんでしょうけど、まだその入り口にも立ってないような気がします。まずはいろいろな言語を触ってみて確かめようと思います。

webベースでの言語は公開しやすいみたいで他の方から評価をもらえそうな気もしますね
javaは確かに気になっています。
選り好みをせずまずはどれかの言語からの勉強を始めるというスタイルで行こうと
決めました。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:57:14

ANo.6

案ずるより産むが易し
あれこれ考えるより、まずは始めることです。

各言語の将来なんてまったくわかりません。
消えると言われ続けているCOBOL等の古い言語も未だ現役です。
ちょっと前までWebにはPerlでしたが、今はPHP,フラッシュ,Ruby on Rail等多彩で、HTML5の登場でこれらの勢力図が変化する可能性もあります。

Rubyに興味があるのなら、Rubyで始めてはいかがでしょうか?
丁度「初めてのプログラミング」という本の新版が出たところです。
http://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E7%AC%AC2%E7%89%88-Chris-Pine/dp/4873114691

この本には出てきませんが、Rubyでウィンドウを使ったプログラムも可能です。
比較的簡単なものに Ruby/Tkがあります。これでまずGUIプログラムの基本形を学ぶとよいでしょう。
他の言語や、他のGUI環境でも、約束事の違いはあるにせよ、基本の流れは同じです。

投稿日時 - 2010-09-23 11:59:41

お礼

ご回答ありがとうございます。

最初の一言が心に響きました。まさにその通りかもしれません。はじめてみないと解らないことを私は質問しているのかもしれません。

私が一番気にしていたのは、「この言語にはできるが、ある言語ではできない、そしてそれが今後において致命的である(よって廃れていく言語)」ということだと思いました
しかしそれはほかの言語で代替可能なんですから、プログラミングをするという姿勢を持っていれば解決するだろうと思うことにしました。

自分にとって書きやすくて 、生産性の高い言語が自分にとって良いという言葉をどこかで見ましたが、そうだと思います。それを目指してがんばってみたいと思います。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:07:03

ANo.5

「初心者がとっつきやすい」「アプリが書きやすい」「今後そう簡単に廃れそうにない」という辺りを選考基準にしてVB.Net。
VBで憶えておけばほぼそのままC#への転用も効きます。言語ベースは一緒なので。

Web系に行くならRubyもいいでしょうが、「アプリ」を作るのが目的ならあまりスクリプト言語は適さないでしょう。

投稿日時 - 2010-09-23 09:24:16

お礼

ご回答ありがとうございます。

まず形を想像しwinアプリを作りたいならVBやC#ということを知らないでいました。
とりあえずwinアプリならこちらの言語が一般的のようですね。
いろいろな方の意見を拝見させていただくと、いろいろな言語を知っているのは力のようですのでいろんな言語を学んでいくんだという姿勢で臨みたいと思います。

VB,C#も勉強していきたいと思います。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:10:31

ANo.4

将来性がある言語ってナンデスカ?

そもそも言語など”道具”のひとつに過ぎません
目的とする処理があり それを実現できる言語かできない言語か
それだけの事です

投稿日時 - 2010-09-23 07:44:34

お礼

ご回答ありがとうございます。

確かに抽象的質問かもしれません。
私が知りたかったのは「この言語にはできるが、この言語にはできない(よってその言語は今後廃れていく)」そういった言語はなるべく触りたくないというような感じです。

確かに言語は単なる道具のようです、自分にとって書きやすくて、生産性の高い言語が良い。
ということを知りました。

選り好みせずいろいろな言語に触れてみたいと思います。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:13:08

ANo.3

オブジェクト指向は、分かりますか。
私にもそれは、よく分かりませんが、
C++,JAVA,VBなどはオブジェクト
指向です。

オブジェクト指向が嫌ならば、
Fortran,Lispあたりをお勧めします。
どちらも、開発環境は、ただです。

ゲーム作成用にHSPという言語も
ありますが、まだ習得していない
ので何とも言えません。

投稿日時 - 2010-09-23 06:44:58

お礼

ご回答ありがとうございます。

オブジェクト指向は実は良くわかっていません。
今はほとんどこのような言語が多いようですね、とりあえず勉強をしていく上では
いろいろな言語に触れてみようという結論に達しました。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:15:49

ANo.2

フリーソフトなどでよく見掛けるのはC++やC#、VBなどでしょうか。
web上で動かすタイプのものであれば、flashやjavaもあります。

こんなソフトを作りたいなど、はっきりとしたアイデアがないようでしたら、
とりあえず勉強してみるのはいかがでしょう?

C++、C#、VB、Rubyなどの言語である程度共通でできることと、
個々の特性(それぞれの言語で使える関数など)があります。
はっきりとした目的がないのであれば、特定の言語にしぼるのは難しいかもしれません。
どの言語でもある程度のことはできてしまいますから。

これはやる気の問題になりますが、すでにRubyに興味をもたれているようなのでそれからはじめてみてはどうですか?

後は図書館や本屋などでプログラミング関係の本を見て決めるのもありだと思います。

投稿日時 - 2010-09-23 06:22:41

お礼

ご回答ありがとうございます。

あまりにも無知なもので、このアプリはこれでしか作れないというような考えでいました
しかしそうでもないようですね。とりあえず気になる言語の勉強からはじめいろいろ触ってみるという結論に達しました。

もしかしたら勉強するにあたって一押ししてもらいたかったのかもしれません。
さっそくですが初心者本を購入しましたのでこれからはじめてみたいと思います。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:18:34

いろいろな考え方がありますので、どれが正解とは言えないと思いますが、独学で学ぶ場合、まず「楽しく遊ぶ・楽しさを知る」です。

そのためには、やはり画面(ウィンドウ)を簡単に表示できるような言語の方が楽しいと思います。
C言語、C++は難しいです。

また、IEなどブラウザを使って表示させる言語(PHP,Ruby)などは、まずHTML,CSSの知識が必須です。
Javaも普通はブラウザを使うでしょうから、同様です。

私としては、まずVBあたりで遊びながら、その間にある程度他の言語の知識を深めて、自分が楽しめそうな言語を見つけてはいかがでしょう。
また、1つに執着せず、1つの簡単なプログラムをいろいろな言語で試してみるのも手だと思います。

今は、ほとんど無料でできますので、どうしたら自分で飽きずに、またあきらめずにできるかを探りながらやるといいと思います。
頑張ってください。

投稿日時 - 2010-09-23 05:41:21

お礼

ご回答ありがとうございます。

いろいろな方の回答を拝見させていただくと、
どれでもできる、要は何をするか、そして何が必要か、そして自分にとって何が最良か?
ということに行くつくようですね。

まずはやってみることが大事ということも解りました。とりあえずは触ってみることにします。
目標が曖昧ですからちょっとやる気の維持が大変かもしれませんが、がんばってみます。

どうもありがとうございました。

投稿日時 - 2010-09-26 15:20:53

あなたにオススメの質問