新しい言語を学ぶべきでしょうか、それとも既に知っている言語にのみ集中し、その知識を増やすべきでしょうか?[閉まっている]


22

どちらがより有益で生産的ですか?


1
これは仕事やプロジェクトの種類に依存していませんか?大企業で働いているなら、技術をあまり頻繁にシフトしているのではないでしょう。フリーランスなら選択できます。
クリス

@Chris:提案、「言語とフレームワーク」、ほとんどの開発者はコマンドラインコンパイラとテキストエディタでのみ動作しなくなりましたが、ライブラリ、IDE、BD、Thrid-Partyツール、... ;-)
umlcat

1
投票数から判断すると、この質問多くの人の意見で建設的です。マークトラップは、実際には質問を締めくくるために書かれたコンピュータープログラムだと思います。
T.ウェブスター

回答:


18

両方が必要だと思います。あなたのコアコンピテンシーに焦点を合わせ、それらの理解を向上させる必要がありますが、同時に外を見て、他に何があるかを見ることが有益です。他のアプローチや他の言語に触れることは、開発者を全体的に優れた開発者にするために非常に重要です。猫の皮を剥ぐ方法はたくさんありますが、可能な限り多くの猫を知ることで、特定のタスクに適したツールを選ぶ上でサイコパスをより良くすることができます。

だから、あなたの時間のほとんどをあなたが選んだ習熟度で良くなるのに費やし、あなたの時間のいくらかを新しい何かを学ぶことに費やしてください。


4
+1「ハンマー」の使い方をよく知っているが、「ドライバー」、「のこぎり」、「スティッキータック」などが存在することも知っている。
ライアンヘイズ

1
そして、ほとんどの場合、新しい言語を学ぶことは、あなたがあなた自身の言語を使うことを考えたことがなかったデザインパターンまたは役に立つ何かにあなたをさらすかもしれません。
AttackingHobo

8

誰かが「プログラミングについての考え方を変えない言語は学ぶ価値がない」と言った。

したがって、Javaを知っていれば、C#を学習すること(またはその逆)にはほとんど利点がありません。実用的な理由でない場合(つまり、問題を解決するために必要な場合)、パラダイマごとに1つの言語に固執することをお勧めしますが、スケジュールはまだ十分です;)。

一方、専門化は、私の経験ではほとんど「現場」で、つまりプロジェクトに取り組んでいるときに達成されるので、当然のことです。


1
C#はJava開発者に興味深い新機能を提供します。Linqとラムダ式は、新しい世界に目を向けることができます。
カーラ

実際、C#プログラムを市場に投入することは(少なくとも私にとっては)より簡単であり、Javaプログラムを市場に投入することは簡単でした。その意味で、Javaの便利さを享受しながら、Javaの不足を回避できるという点で、私の目は開かれました。言語の炎の戦争に無防備で、私はそれが良い点だと思います。
リウォーク

+1私は.NETで始めて、Objective CとJavaScriptに手を出して多くのことを本当に学びました。
トレバー

@Carra:私はそれを認識していませんでした(Java 1.5が最新だったとき、両方での最後の深い経験でした)。あなたの経験では、違いは十分に大きくなり、両方を学習するための推奨事項を保証するのに十分な違いがありますか(「アカデミック」の観点から)?
ケプラ

おそらく、1つの関数型言語を習得する方が良いでしょう。全体的に私はあなたに同意します。
カーラ

3

両側には本当に良い議論がたくさんあります。何年も前に、私はその正確な質問を提示されました...私の第一言語に集中し、「専門家」になるか、新しい言語を取り上げて市場性を広げようと試みてください。1つの言語に集中することにしました。

本当に間違った答えになることはありません。どちらにもメリットがあり、どちらがあなたに合っているか、そしてあなたがあなたのキャリアをどこに行きたいか、それは本当に要約されます。


2

新しい言語を習得することは、主にプログラミングで新しい概念を獲得し、効率を高めるための手段です。プログラミングの学習自体は、プログラミングする新しい言語の学習とは大きく異なります。

プログラムの改善に集中する必要があります(また、多くの主観的なものを測定するための多くのメトリックがあります;重要ではありません。メトリックを選択し、時間をかけてそれらを調整し、教育に使用してください)。

とはいえ、Python古いリスト(「C」など)で「新しい」言語(など)を学習すると、より効率的に考え、改善すべきコアコンセプトに集中できます。さらに例を見ると、すぐには表示されないかもしれませんがC、Pythonで考えていたのでプログラミングが良くなっているかもしれません。のpsudo-codeの代わりにPythonの記述を開始することもできますC。さて、それははるかに読みやすく検証可能な擬似コードです。

それは、私たちが主な質問に要約することをもたらし
ます:はい、あなたがすでにあなたが使用している限り、あなたはすでに知っている言語に焦点を合わせ、それらの知識を増やすべきです。そして、あなたはあなたの脳にあなたのプログラミングのニーズのための(おそらくもっと速い)解決策を考えるための新しいツールを与えるために新しい言語に手を出すべきです。


1

プログラミングフレームワーク(および関連言語)を支配し、別の、できれば異なる「ドメイン」のためにいくらかの空き時間を残します。例:C ++クライアントサーバー、Ruby on Web


1

新しい言語を学ぶ

それはあなたが言語を学習している目的に依存します。異なるパラダイムを使用している、または特定の問題領域に適しているために言語を学習している場合。ただし、既に知っている言語と非常によく似た言語であり、既存のコードをすべて新しい言語で書き直すことだけを計画している場合は、おそらくそれほど価値はありません(たとえば、python webappをルビー)

現在の言語のより深い知識

すでに言語でのプログラミングが非常に快適で、そのすべてのイディオムに精通しており、ライブラリ呼び出しごとにドキュメントを調べることなくプログラムを記述できる場合は、おそらくそれ以上学ぶ必要はありません。一方、言語の知識がそれほど深くない場合は、さらに学習する価値があるかもしれません。言語Xの前のキャンプか後のキャンプにいるかを評価する良い方法は次のとおりです。

  1. 言語Xで書いたプログラムはいくつありますか?
  2. Stack Overflowに進み、Xというタグの付いた質問を見ると、どれくらいの数の質問に答えられますか?
  3. 言語Xのサポートのために人々があなたのところに来ますか?

これらの質問に対する答えが「たくさん」、「ほとんどの」、「はい、迷惑になっている」という線に沿っている場合、それはあなたが言語を習得し、何かに進むべきであるという良い兆候です新しい。


0

すでに慣れ親しんでいる言語に十分慣れている場合、少しクールにするには、非常に詳細で具体的なトリックを学ぶのは良くありません...それは完全に時間の無駄になります。ただし、言語に非常に不満がある場合は、まずその言語を習得することをお勧めします。

言語に加えて、フレームワーク、パターンなどがあります。フレームワークを学習するには、言語を知っている必要があります。そのため、非常に似た言語を学習する場合、それほど面白くない面白さをもたらす以外に何も役立ちません。

私の個人的な意見では、より多くのプラットフォームでより速く、より安全で、より堅牢なソフトウェアを作成し、時間を短縮するために常に能力を開発し、その目的のために新しい言語、新しいフレームワーク、新しいIDEを学ぶ必要があるかもしれません(それは言語と同じくらい重要です)、そしてあなたがその目的のためにあるときだけ、あなたの投資は価値があります。

少なくとも、あなたが知っている言語の数を増やすために新しい言語を学ばないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.