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

締切り済みの質問

WEBアプリケーション開発におけるプログラミング言語選び

こんばんわ。
メーカー系IT企業にSEとして入社して、
2年目になるriridewと申します。
プログラミング言語選びで相談に乗ってください。

私の所属する部署ではWEBアプリの開発を行っています。
顧客は某大企業です。
IEを起動し、ログイン画面でIDとパスワードを入力してログインし、
必要な項目を入力して、検索、新規登録、変更、削除、CSV出力などを行なったり・・・。

新人研修でJavaを2~3ヶ月勉強しましたが、新人の中でかなりの落ちこぼれでした。
JavaはC言語比べると簡単と聞きますが、私にはレベルが高いです。
2年目になるというのにプログラミングが苦手で、
新入社員と同等もしくはそれ以下のレベルしかありません。
一度諦めて、他の勉強(SQLなど)をしましたが、再度プログラミングを勉強しようと思います。
何の言語を勉強したらいいでしょうか。
先輩からは言語は何でもいいと言われます。
何の言語を勉強していいかわからないので、アドバイスください。
一番は「習得のしやすさ」です。
次に「開発のしやすさ」、それと「メンテのしやすい」言語がいいです。

サーバ:Windows Server 2003 Std(RDBMS:Oracle Database 10g)
クライアント:Windows XP Professional(WEBブラウザ:IE6)
社内でのプログラミング言語:C#中心です。VB.NETもあります。

よろしくお願いします。

投稿日時 - 2008-09-11 23:57:01

QNo.4322160

すぐに回答ほしいです

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

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

回答(4)

ANo.4

>>JavaはC言語比べると簡単と聞きますが、私にはレベルが高いです。

JavaはC言語よりも簡単というのは誤解でしょう。Javaは過去において、「打倒!C++」を旗印に、C++に後追いの機能拡張&誇大広告を続けた結果、初心者にとっては「わけわか」な言語になっていると思えます。そしてC言語は、非力なコンピュータでも使えるようにシンプルな作りで初心者にも入りやすい言語です。
ただし、C言語にはポインターという難解な壁があります。どうも、これがスムーズに理解できる人とできない人がいるようです。ポインターの壁が越えられないと感じられるなら、主力言語をC言語、C++言語以外にしたほうが良いでしょうね。
なお、Javaもポインターの考え方が解らない方だと学習する上で厳しい面があるような気がします。

>>2年目になるというのにプログラミングが苦手で、
新入社員と同等もしくはそれ以下のレベルしかありません。

プログラミングに限りませんが、それなりにマスターしたと感じるまでは、ある程度の学習量と期間が必要な気がします。例えていえば、水槽に水を貯める期間が学習期間ともいえます。水槽から水が溢れるようになるのが、「それなりに理解できた時」だとすれば、水槽の深さや広さがどのくらいかが解れば、想像できるでしょうが、現実にはそれを知ることはできません。
「いつか水が溢れる」と信じて、水を入れ続ける(学習を続ける)しかないでしょう。

ただ、ネットやPC系の雑誌で紹介されている「SE必読書」といわれるような書籍を50冊、念を入れるなら100冊ほど読めば、新入社員に大きな顔ができるようになると思いますよ。

>>次に「開発のしやすさ」、それと「メンテのしやすい」言語がいいです。

楽していてはダメですね。基礎を抜きにして学ぶと、トラブル時にお手上げになりますし、応用力も身につきません。できれば、1ボートコンピュータなどの組み立てキットで、アセンブラなどを学ぶことから始めるといいと思います。遠回りのようですが、「急がば回れ」です。

ただ、「プログラミングの面白さ(手軽に作れて、それでいて役にたつ凄いことができる等)を感じる」とやる気がでます。そういう意味では、スクリプト言語のPerlとかRubyがお勧めです。これらの言語は、マスターしておくと、プログラマ・SEになったとき、顧客の為の仕事でも使えますが、自分自身の仕事を楽にするためにも大変有用です。CやC++で作るとうんざりするような処理が、楽々記述できます。(処理は遅いですが・・。でも、ある処理に一晩かかっても、人間がやるよりもずーと早く、正確な結果が得られます。)

C#はC言語の難しさ・めんどくささの原因であるポインターとメモリー管理からプログラマを解放してくれる言語ですが、同僚によると、「C#での開発だったけど、ポインターを使う必要があった。自分でメモリ管理するために面倒だったな。また.Netのバグには苦労した。」って言っていました。彼はC言語もできるので、わりとすんなり対処できたようですが、ポインタが理解できなかったら大変だったでしょうね。

ということで、将来的に仕事で有用な言語を勧めるとしたら、高級アセンブラと揶揄されるC言語です。C言語のソースとオプションでコンパイラが生成するアセンブラのコードを対比して学ぶと、スタックやヒープ、レジスターの使い方が学べていいですよ。

投稿日時 - 2008-09-13 07:41:44

ANo.3

>一番は「習得のしやすさ」です。
>次に「開発のしやすさ」、それと「メンテのしやすい」言語がいいです。

上記であれば、私は VB.NET か C# を推します。
入門書やインターネットでの情報・事例が豊富にある、という点が大きいです。

ひとつ確認なんですが、「勉強」は自宅もしくは社内で行うことができ、業務とは直結しないのでしょうか?

Web 開発は、画面を構成するだけでも HTML, CSS, JavaScript(VBScript) というようにいくつもの技術要素がでてきます。これにサーバ側で動く言語とDBアクセス(SQL)が加わってきますから、いきなり取り組むのはハードルが高いと思います。

ですから、業務と直結しない勉強ができるのであれば、一旦 Web とは切り離して、自分のパソコンだけで動く小さいシステムを作成してみてはどうかと思います。例えば、Windows に付属の電卓、これを(関数機能は除いて)作ってみるだけでも結構勉強になりますよ。

プログラミングが苦手ということは、ロジックの組み立てに慣れていないということだと思うので、場数を踏むことです。

あと、勉強するのであれば、言語だけではなく土台となる周辺知識も少なからず必要になってきますので、基礎からしっかり書かれた書籍も読んでおいた方がよいでしょう。

がんばってください。

投稿日時 - 2008-09-12 16:23:31

ANo.2

何でもいい、というのは実は、どの言語でも必要となる能力は同じだから、どの言語でも使えるようになってほしい。という意味のような気もしますが、まあいいでしょう。
必要となる能力は、逆に言うとどれか一つ使えるようになれば、あとはさほど違わないということですから、習得のしやすさを重視するのは意味があるでしょう。
習得のしやすさは、学習用に機能を絞ったもののようなものも考えられますが。それよりも学習できるだけの環境を整えたり、本やWeb上の情報が多く誰かに教えてもらえたり、自分で学習ための情報を集めるのに困らないものがよいでしょう。
CやC++は難解で学習には向かないとされています。適当な書き方を許してくれない傾向なので確かに難しいように思えるのですが、実は情報は最もたくさんあるので、そういう面での苦労の少ない言語です。
C#やJavaは柔軟な書き方が許されていて学習に向いているとされています。ですが柔軟な分、本来の書き方が解りにく面もあります、また比較的新しい言語なので、ある目的の物を作ろうとするとき、それをC#やJavaでするのが自分が最初でCやC++を参考にしなければならず、結局CやC++を理解できる必要があることがでてくることがあります。PHPもC#やJavaと同じような傾向ですが用途がはっきりしているため、実現可能か不可能かで悩んで時間をとられることの少ない傾向があります、ただWindows Serverでは出番がないかも。
目的が違う言語ですが。JavaScriptのようなクライアントサイドのスクリプティングから始めるというのも良いかもしれません。体験をするのは簡単ですし、人口の多さから情報は入手しやすい、出来ることがはっきりしているので実現可能か不可能かで悩むことが少ないというメリットがあります。サーバサイドのC#やVB.NETで開発するのとは全く別の目的のものですが、Ajaxなどサーバサイドと連携するケースで役に立つかもしれません。

投稿日時 - 2008-09-12 14:33:42

ANo.1

「会社の方針にもよるので、会社の先輩を含めた上司に相談してください」というのが正解かな。


趣味でやるんならRubyでもPythonでも簡単な言語で構わないと思うんですが、仕事でやるんなら納品してからメンテできる(生産性の高い)言語でやらないといけないのでは。C#中心ならそれでよいのでは。得てして習得しやすい言語は機能が限られており、結果的に生産性が低い事がありますので。

どうしても苦手なら、別の道に進んだ方が良いと思いますけど。SEなんですよね?PGじゃないんですよね?

投稿日時 - 2008-09-12 00:18:17

あなたにオススメの質問