• ベストアンサー

プログラム言語の習得およびお勧め

お世話になります。 最近、転職を多少念頭において、プログラミングの勉強をしようと思っているのですが、どの言語がこれからの時代必要かまたはお勧めか、また方向性についてご教授お願いします。 ちなみに、以前unix-cプログラミングとネットワークの仕事をしておりましたのでC言語等の知識はあります。 (現在は別の職種です。) プログラム言語の習得について違う方も同じような質問されていて重複すると思いますがよろしくお願い致します。

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

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.8

プログラミング言語の習得には3つの方向性があろうかと思います。 1つ目は、ある特定のプログラミング言語をより自在に使えるようになることを目指す方向。例えば、仮に「これからの時代はD言語だ!」という主張が確かだと信じたとすれば、将来自分のやりたいことをD言語で自在に表現できるように学んでおくということです。それが比較的新しい言語であれば、先行者利益を取るという賭けも可能でしょう。「履歴書に書きやすい」といった意味での即戦力にもなります。 2つ目は、プログラミング言語自体をより詳しく知るという方向。例えば、仮に「これからの時代はD言語だ!」という主張が確かだと信じたとすれば、D言語の特徴を他の言語と比較し、なぜそのような特徴があるのか、その特徴は他の言語より優れているのか劣っているのか、それとも違いがあるが優劣はないのか等を、言語としての特徴に重きを置いて学ぶということです。「下手の横好き/器用貧乏」的に見られがちなので、そのような知識を持っていてもあまり転職に有利にはならないと思います。どちらかというと実戦力強化でしょうか。 3つ目は、プログラミング言語よりもアルゴリズムやデータ構造に重きを置く方向。例えば、ある問題を解決するための手順(道筋)にどのようなものが考えられ、その手順を実装するにはどのプログラミング言語の機能をどのように使うことが望ましいのかを学ぶということです。これは、知らなくても強引にコーディングすればたいていのことはできてしまうという種類のものなので、なかなか腰を据えて学ぶ機会はないと思いますが、「知っている」のと「知らない」のとではプログラミング時の意識に天と地ほどの差が出る場合もあります。(意識に差が出るだけで、成果物に差が出るとは限らないのが辛いところなのですが。) 特定のプログラミング言語は特定のアルゴリズム・データ構造に対して得手・不得手があるものなので、上記3つのうちどれか1つだけを、他の2つに全く関わらずに進めるということは現実的ではありません。ですので実際には、重心を3つのうちどれかに傾けつつ3つ平行して行うということになるでしょう。 1つ目に重点的に取り組むのであれば、まぁいろいろ言語のお勧めが出ているようなので、その中から取捨選択すればよろしいかと思います。 2つ目に重点的に取り組むとすれば、比較的近い関係の言語間のほうが機能の比較が行いやすく、理解しやすくなります。例えばC言語とC++言語とD言語とJava言語という感じです。 3つ目に重点的に取り組むとすれば逆に、遠い関係にある言語の関係を取り上げるほうが望ましいでしょう。近親言語では得手・不得手も似ているため、どうしてもそれを用いて表現するアルゴリズムやデータ構造は似てしまいます。既にC言語の知識をお持ちなのであれば、例えばLISP言語などは「C言語では通常考えもしないようなデータ構造の世界」を知ることができます。意外かもしれませんが、その知識はC言語等でも有効に利用できるので、決して無駄にはなりません。(例えて言えば、普段日本国内で日本語しか話さない人でも、海外生活経験があれば日本国あるいは日本語そのものに対する意識が大きく変わるようなものです。) 最後に、流行り廃りに関するお勧めはいくつも出ているので、私は上記の3つ目を主眼にしたお勧めとしてLISP言語を挙げておくことにします。とっつきの悪さでは定評のある(?)言語ですが、C言語をはじめとする手続き型言語とは大きく異なる「処理」や「構造」に対する考え方の存在を知ることは、将来どんな言語を使うときにもきっと役に立ちます。

ori08
質問者

お礼

ご回答誠にありがとうございます。 私は今まで、とりあえず言語を覚えればいいと安直に考えておりました。また、C言語をやっていた時も全く知らない状態でプログラミングをしなければいけない状態であったこともあり、ただひたすらC言語の関数等を勉強して、アルゴリズムやデータ構造といった基本的なことをほとんどやってこなかったので、少し視点を変えてアルゴリズムやデータ構造等の勉強もしようと思います。

その他の回答 (7)

回答No.7

再びNo.2です。 Ada→言語B→言語C→言語Dと進化してきていますから、オブジェクト指向言語Dの将来性は間違いないところと信じます。Dの次はEの時代に発展するでしょう。 SGML→HTML→XMLと変遷を遂げたとき、いち早くXMLに飛びついたグループは成功しましたが、その重要性に気がつかなかったグループは、一歩遅れをとってしまいました。 先駆者というものは苦労がつきものですが、最後には笑える得な面があります。

ori08
質問者

お礼

2度目のご回答誠にありがとうございます。 やはり時代はオブジェクト指向なのかと実感してきました。やはりこの業界で成功するには常に先を見る必要がありますね。

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.6

プログラマです。 Cの経験はそれなりにあるようですから、今後の応用を考えて何かオブジェクト指向の言語をやっておくといいでしょう。 クラスが使えれば他の言語もどれも似たような物でまあいけるでしょう。 C++でもいいですが結構煩雑ですから、JAVAとかC#あたりがいいかも知れません。 ただその意味ではVB.NETだけはやめた方がいいと思いますが。それならC++の方がいいです。VBやるにしても必要になってからで十分でしょう。 あと、他の言語よりCから遠い位置にある(?)ということで、扱う言語の幅を広げるという意味でDelphiを入れておきます。Pascalです。ただ、仕事で直接使う機会は大分小さいと思いますが。 言語は道具ですし、結局複数の言語を使えるような形で覚えておかないと、使っていた言語がすたれた時に仕事がなくなります。 あとDB関係はまたいろいろと違ってきますから、SQLも手をつけておくといいかと思います。

ori08
質問者

お礼

ご回答誠にありがとうございます。 痛い所をつかれたなという感じですね。以前からオブジェクト指向やDBに関しては必要だと思っておりました。特にオブジェクト指向はこれからの言語に不可欠だと個人的に考えていましたのでまずはここから始めないといけないかもしれません。

  • parapa
  • ベストアンサー率15% (42/273)
回答No.5

まずは、どの分野のプログラマーになりたいかです。 Web系ならPerl,PHP,JAVAなど WindowsGUIアプリならVB,C++,C# UNIX系アプリならC で共通してSQL。 >なおVBはやめておきなさい。技術者は腐るほどいますので。 ですから、必要なら覚える必要があります、 VBはVC++なんかと違って短時間に物が作れますからソフトハウスとしても VBで商品を作っている会社も多い(VBは重宝されています)です。 別の言語を覚える合間に覚えておくのがいいと思います。

ori08
質問者

お礼

ご回答誠にありがとうございます。 現段階では分野は特に考えていませんがおそらくwindows方面に行くと思います。以前はVBやVCに非常に興味を持って少しだけではありますが勉強したことがあります。VBの手軽さは私も実感はしており、合間合間に覚えるには良い言語かもしれませんね。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

ぜんぜん回答ではないような気もしますが... #2で紹介されているD言語は結構面白いと思います。 用意された現場の環境で何が必要かではなく、自ら牽引していけるような立場でD言語を普及させていくのがいいですね。 個人的には、gdc(D言語のGCC版)のクロスコンパイラがまともに使えるようになれば、組み込み用途にはC++より適しているのではないかと考えています。 D言語をやると何がいいかというと、それをアピールするためには、C++やJavaやObjective-CやDelphi等々をある程度かじる必要が発生するでしょうから、裾野が広がることが期待できるというのもあります。

参考URL:
http://www.kmonos.net/alang/d/
ori08
質問者

お礼

ご回答誠にありがとうございます。 私もいろいろ調べているうちに現段階ではD言語が一番興味を持ちました。ただ私の場合は、C言語しか知らないので、c++やjava等を勉強してそれからD言語に移行しようかと思います。

回答No.3

個人的にやってみたいものでは VB.net 旧来のVBとはかなり違うらしいです。 C#にも食指が動いています。

ori08
質問者

お礼

ご回答誠にありがとうございます。 私も以前からVB.netやC#に興味を持っていました。ただ、今までwindowsのプログラムをやったり勉強したりしたことが無いので、もし始めるならVBから勉強したほうがいいのかもしれませんね。

回答No.2

ずばりD言語。 C++,C,Javaのいいとこどりをした仕様になっていて、発展方向は未知です。 まだ公開されて日が浅く、揺籃期ですから、覚えるなら今のうちでしょう。 誰もやっていない言語を身につけておくと、現役は忙しくて習得のチャンスがないため、完全に覚えれば指導的立場に立てます。 情報処理業界はそんな世界ですもんね。 面接で、「D言語を学習しています」だけでも興味をひきますよ。 なおVBはやめておきなさい。技術者は腐るほどいますので。

ori08
質問者

お礼

ご回答誠にありがとうございます。 D言語というのはここで初めて知りました。知らない間にまた新たな言語があるとはおそらく他にもいろいろ聞いたことが無い言語があるかもしれません。 D言語について少し調べましたが、私の現段階ではD言語が一番勉強しやすい感じがしました。

  • tak2003
  • ベストアンサー率32% (174/540)
回答No.1

私も貴方と同じ転職組のSEです。 働いてみての感想なのですが、プログラムを付け焼刃で勉強してもこなせる案件が少ないです。 大学や専門卒などの専門の知識を持った4~7年生がプログラムに従事されていますので、新米の時は下についてデータの整理や部品の作成等を行います。 その時にOFFICEのエクセルやアクセスなどを人並みにこなせるように指導されます。 ・まずはOFFICE製品をうまく使えるようにしておくこと ・DBの概念を知っておくこと ・MS-SQLもしくはオラクルを使えるようにしておく この3つでいいとおもいますよ。 この業界はかなり高給に思えるみたいですけど、人間らしさを無くす仕事量なので離職率も高いです。 最後まで忍耐強く仕事をこなせば次の案件も必ず入ってきますので、体と相談しながら頑張ってください。 家庭を持ってらっしゃる方は、効率の良い仕事をしなければ辛いかも・・・

ori08
質問者

お礼

適切なご回答ありがとうございます。 私の場合、以前プログラムの仕事をしていた時は、プログラムの知識がない状態で、いきなりメーカーに出向して、直ぐプログラムの実務をさせられていました。 そこで仕事をしながら現場でプログラムを覚えてました。tak2003様とは全く違った経験をしておりますが、やはり私も、office関係は出来ている方が良いという実感はありました。(現職でも実感します。) それから、やはりこれからはDBは必須なのかなとも思いました。現段階ではどの言語を学習するかはわかりませんが、DBの知識は身につけたいと思います。