プログラムを学んでいくうえで少しスランプ気味になっているので質問させていただきます。
多くの言語を浅くか、一つの言語を狭くか
自分の趣味で色々なものを作ってみたりするのですが、UnityやXamarinではC#を、競技プログラミングではC++を、たまにHTMLとCSS(プログラム言語と呼ぶかは別)、普段はPythonを書いていますが、それぞれを浅くしかやっていないので、C#ならLINQ、C++ならSTLという言語の主要の機能がやっと使える程度しか書けません。
でもそれじゃあまりに使えない人になるのかなと思っているのです。
大人になった時にはどっちのほうがいいのか教えていただけると嬉しいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
ベストアンサー
「深く狭く」と「広く浅く」
「深く狭く」か「広く浅く」か、というよりも、
言語は手段なので、目的に応じて選びます。
たとえば、Webサイトが作りたいなら、
HTML、CSS、JavaScript、Python(やPHPなどのP言語)、
さらにSQLやjQueryなどのJSライブラリなど、
いわゆる「フルスタック」を覚える必要があります。
あるいはもし、(3Dなど計算量の要る)ゲームが作りたいなら、
C++やC#一本、ただし画像も音楽も
制作する(あるいは調達する)必要があります。
はたまた流行の機械学習がしたいのでしたら、
Python一本ですが、数学の勉強も必要になります。
計算量を稼ぐために関数型プログラミング、並列処理、
さらにGPU計算やハードの知識も必要になるかもしれません。
(もちろん、各例はほかの言語でもできますが、
例でしかないので、単純化しています)
ですから、言語単体だけで決めても仕様がありません。
たとえればこれが外国語なら、
とつぜんフランス語を覚えるか、スペイン語を覚えるか、
という前に、どこの国に行きたいかがまずあるでしょう。
大人になった時にはどっちのほうがいいのか
ですから、それは質問者の方が
「何がしたいのか」「何になりたいのか」
によって違ってきます。
投稿2016/09/11 17:28
編集2016/09/11 17:30総合スコア5592
0
まずは一つの言語を追究し、仕事が
受けられるようにすることが一番
重要です。
そして必要に応じて新しい言語を
覚えていく。プログラミングの基礎が、
固まっていれば二つ目、三つ目の
言語は簡単に覚えられるはずです。
私の場合でも
CがわかればjavaもわかりVBAもわかり
html,javascript,phpもわかり
ついにはRubyもわかりという風に
どんどんと広げているわけです。
仕事で強制されているのでなければ
興味のある所から手をつけられると
良いと思います。
ご健闘を心よりお祈り申し上げます。
投稿2016/09/11 13:06
総合スコア1628
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
こんにちは。
プログラマとしてつぶしが効くのは広くそこそこ深くですね。
広く浅くもありですが、プログラマとは少し方向性が異なるだろうと思います。
逆に、狭く超深くもありですが、特定の分野に特化することになるのでその仕事に出会えないと中々辛い思いをするかもしれません。良い仕事に出会えれば幸せになれると思います。
まだ学生さんなら、中々歯ごたえがありますがC++をある程度極めておくと後々強いと思いますよ。
ポインタや数値の内部表現から、オブジェクト指向をそこそこ使えるようになれると強いですよ。
社会にでると中々まとまった時間を取ることが難しくなりますから。
投稿2016/09/11 12:29
総合スコア23272
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 17:37
2016/09/11 18:32
2016/09/11 19:11
2016/09/12 01:55
2016/09/12 04:54
2016/09/12 06:37
2016/09/12 13:57
0
今やっている感じのままで良いと思います。
大人になった時
というのが、仕事のことを指しているのか、趣味として新しいことをやることを指しているのかはわかりませんが、いずれにしても知らないことをやるときに、「知らないからできない」と簡単に匙を投げるのではなく、「知らなくても調べて行動に移す」ことができればそれでいいと思います。
ただし今やっていること、知っていることだけを追求していってももったいないので、プログラミングに関する情報収集はしていた方がよいでしょうね。
言葉の意味くらいは知っておく、その中から興味があることは追求してみる、というのがよろしいかと思います。
投稿2016/09/12 00:30
総合スコア16998
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
「プログラミングをどう使うか」に依存します。見たところ、十分のコーディング能力をお持ちのようですが、「作りたいもの」が先に確定しないことには適切な言語や環境を選択できません。
**以下、話が反れるので不要であれば無視してください。
**
「大人になった時」とありますが、(冷たい言い方かもしれませんが)現在の社会においてプログラミングは「手段」としか考えられていません。これだけで生活できる人間など一人もいないでしょう。それどころか、「ファイル共有ソフトを作製、公開した」というだけで逮捕されたプログラマも実在します(東京大学元助手、故・金子勇氏)もっとも、判決は当然の無罪であり、この「判例」は日本の全技術者の重要な遺産であるといえます。死してなお、先生は生きているといえるしょう。
「大人になった時」のことを考えるならば、「少なくとも自分ひとりの生活を支えることができる資源、環境を確保すること」が大事です。もちろん、家庭を持つ(または人を動かす立場になる)ならばそれ以上が必要です。社会は「プログラミングは手段」としか考えていない以上、「不都合な副作用」や「代替え手段」が重なれば容易に切り捨てられることが想定されます。これは「技術者の立場」としては対処できない課題です。
例を挙げます。録画媒体として「VHS」と「ベータ」が規格争いしていたことがありました。結果的には前者が勝利しましたが、「技術的には後者に理があった」という意見も多々あります。勝因は「売り込み方」や「ユーザの囲い込み」にあったと言われております。つまり、『ベータは「非技術要素」によって社会から消えていった』ということができます。このように技術の探求のみでは社会に生き残ることができません。それどころか度を越せば迫害されうることを肝に銘じなければなりません。
投稿2016/09/11 19:25
総合スコア4830
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 19:41
2016/09/11 19:58
2016/09/12 04:51
2016/09/12 06:43
2016/09/12 13:57
0
多くの言語を浅くか、一つの言語を狭くか
この質問であれば、「多くの言語を浅く」の一択です。私もここで門外漢の言語(一行もコーディングしたことのない言語)の質問に答えてますが、どうやってるかというとググってます。質問にこたえるだけではなく、もし、その言語とフレームワークで仕事しろと言われればググりながらこなせる自信があります。
それは、プログラミングにおける概念モデルを知ってるからです。 Java では XXX と呼ばれてる、 C++ ではYYYと呼ばれてる、でも私は最初に覚えたのは C++ なので頭のなかで YYY と呼んでいるけどすぐに翻訳できるみたいな感じです。
言語仕様、フレームワーク、ライブラリを勉強するときに Intrduction に書いてある、その仕様の意味付け、背景などを熟読することをおすすめします。
C#ならLINQ、C++ならSTLという言語の主要の機能がやっと使える程度
いや、 STL とはまたマニアックなものを・・・
今、新しく勉強するなら JavaScript をおすすめします。原理主義者からは嫌われてますが、一方で「もっとも(悪い方向に)誤解された言語」とも言われてます。キーワードとしては c10k、クロージャとかです。
投稿2016/09/11 13:37
総合スコア3401
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 14:17
2016/09/11 17:48
2016/09/12 00:21
2016/09/12 04:53
2016/09/12 06:02
2016/09/12 13:56
0
設計したアプリがちゃんと完成させられるレベルの言語が1つでもあればいいと思います。
(アプリは商用レベルです。)
投稿2016/09/11 12:51
総合スコア1046
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 17:40
2016/09/11 18:01
2016/09/11 19:44
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 17:55
2016/09/11 18:54
2016/09/11 19:09
2016/09/11 20:36
2016/09/12 04:52