- ベストアンサー
複数の言語を覚えるについて。
職業プログラマーです。会社にはいっていると色々な言語をおぼえなくては 仕事にならないと思うのですが、無理があるような気がしています。 もちろん、事前に勉強期間を設けている会社もあると思うのですがそうでない会社は自宅で勉強しなくてはなりません(こうなると勉強するというよりも実践している)。正直メインで使用している言語でさえ、ちょっとした事が出来ずに業務が進まない事はあると思います。その為にネットなどや本を調べています。正直そのちょっとした事がいかに早く解決できるかどうかが ベテランとそうでないない人の境のような気がします。(基本的な事はある程度みんな一緒のレベルだとおもいます) そのちょっとした事が言語習得のキモになっているのに色々の言語が出来て あたりまえという事はどういう事でしょうか?。 私の会社では複数の言語をつかっていませんが(細かいところで通信手段に他言語を使うなどありますが)。この場合複数の言語を使えるというのは システム使用するメイン言語が複数言語覚えるという事なのでしょうか? また細かいちょっとした事を解決する能力(これらは本やネットに書いてなく経験でしか解決できなかった事も含みます。)を備えているのでしょうか?できれば。最小公倍数的な回答ではなくて具体的に教えてもらえると幸いです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
がると申します。本職でエンジニアやってます。 拝見している限りでは…失礼ながら、基礎ができあがっていないように思われます。 > 基本的な事はある程度みんな一緒のレベルだとおもいます とかかれてますが、私が見ている限りでは、基本的な部分「が」極端にレベルの高低があり、その結果として、様々な言語への習熟度合いが異なるように思います。 無論「言語毎に異なる書き方」というモノはありますが。 極論、プログラムというものは「CPU命令としてデータを移動/計算する」だけのものなので。 そうですねぇ具体例としては。 参照(ポインタ)とはどんなものでしょうか? 状態遷移プログラムは書けますか? 言語仕様に「よらない」クラス設計が出来ますか? など。 言語ではなく、「プログラミング」について学ばれると、見えてくるモノも多々あるかと思います。 所詮言語は「プログラミング」をどう表現するか、だけのものなのですから。 以上、私見で恐縮ですが。
その他の回答 (4)
- isle
- ベストアンサー率51% (77/150)
わたしは特殊な業界なので参考になるか分かりませんが、 プラットフォームが違うと使用言語が違うことも少なくないので、 必然的に複数言語を扱わなければならなくなります。 あと同じC言語でも処理系が違えば低レベルな部分の実装は大きく変わります。 具体的な例だと、ケータイのドコモのiアプリとソフトバンクのS!アプリは同じJava言語を使いますが、iはDojaプロファイル、S!はMIDPなので使用できる命令が違います。 ちなみにauのEZアプリ(BREW)はC/C++で作ります。 そういう中で三大キャリア向けに同じアプリをひとりで作ったりします。 コードを書くとき高レベルの汎用な部分と、低レベルな非汎用の部分はきっちり分けてるので複数言語や複数環境に対応するのはぜんぜん苦ではありません。
私は、いろいろできて当たり前とは思えません。 言語の文法は似ていても、開発環境や言語使用を考えるとまったく違ったものになると思ってます。 ソースをちょっと弄る程度ならそれでもいいと思いますが。 その言語を使えるというのは、自分で環境を構築できて問題を自分で解決できるようになって初めて言えることだと思ってます。 プログラムが書けることとは違います。 さて私事ですが、 メインはJavaでやっています。自慢できるほどのスキルを持ってると思ってます。 ほかには、C#とVBがちょっと分かる程度です。 私くらいになると、ほぼメインの言語しかやらないです。 スペシャリストに、得意でない分野をやらせることが無駄だからです。 開発はひとりの人ですべてをつくるんじゃなく、分担して得意な人がやるものなんですから。
- jacta
- ベストアンサー率26% (845/3158)
若いころは、かなり多くのプログラム言語を使っていましたが、最近では2、3種類しか使っていません。その経験から少し書かせてもらうと... 数多くの言語を使っていたときは、とりあえず一通りのことはできるようになってはいたのですが、そこから先が見えない状況でした。つまり、誰かが用意した枠組みの中でなら十分やっていけるのですが、そこから先が難しいのです。ある程度のレベルに達すると、そこから先は限られた言語に絞り込まないと上達が困難になります。ただし、その「ある程度のレベル」に達するには、複数言語の経験が有効であることもまた事実です。 自然言語の場合でも、英語でも中国語でもアラビア語でもアフリカーンス語でも日常会話程度ならできますというのも、職業によってはそれなりの価値があります。しかし、英語しかできないけれども、法律に関する専門的な会話や読み書きも任せてください、あるいは、フランス語しかできないけれど、美しい詩が書けます。という方ができることのレベルが高いことはいうまでもありません。 「誰でもできることなら何でもできる」のを目指すか、「自分にしかできないことができる」のを目指すかによって、どうすべきかは変わってくると思います。 > 最小公倍数的な回答ではなくて具体的に教えてもらえると幸いです。 やや具体性に欠ける回答になってしまいましたが、どんな分野のプログラミングに関わっているのか、あるいはどんな分野をこれから目指したいのかを補足していただければ、(私がわかる分野なら)もう少し具体的な回答ができるかもしれません。
- sapporo30
- ベストアンサー率33% (905/2715)
・ ベースとなる言語をきっちりと習熟しておくこと ・ アルゴリズムをきっちりとわかること その上で、各、言語の特性をおぼえて、応用することですね。 言語特有の命令は、使用経験がないと 誰もわかりません。 調べるしかないのは、みんな一緒です。 調べるのが早いか、遅いかは、具体的になにをしたいかを 明確になっている。 他の言語だとこういう表現をするとか そうなると、ネットの検索も早くなります。 ネットでも検索がうまいひとと、へたなひとっているでしょ。 それは、キーワードの選択のし方 いってみれば感のつけどころ がよい、わるいなので、そこを強化するしかないですね。 ベース(基礎)がない人が、いろいろな言語をやっていると むちゃくちゃなコーディングをしますので、まずはベースを 固めることですね。