4

Java と Web 開発の経験が豊富で、C++ の経験もあります。最近、私は Java (それに飽きた) を C++ に任せることを考えていました。その後、Python が登場しました (Ruby は好きではありませんでした)。私は抵抗するには良すぎると感じ、それを使い始めました。しかし、C++ は今でも頭に残っています。

今、私は 1 つの言語に「固執」して、流暢に話せるようになりたいと思っています。

Python は素早いプログラミングには優れていますが、あまりにも簡単すぎて、頭がおかしくなるのではないかと心配しています。C++ の方が難しいですが、コンパイラを満足させるために多くの時間を浪費するような言語を使用する必要があるかどうかは疑問です。

どの言語に固執する必要がありますか。コメントはありますか?

4

7 に答える 7

13

言語に「固執する」ことを心配せずに、問題の最善の解決策が何であれ、そこに出入りすることを学ぶことをお勧めします.

最高のプログラマーとは、単純に優れた問題解決者であり、特定の言語は重要ではありません。

于 2011-01-24T05:42:42.993 に答える
4

私は、あなたが言語を「離れる」ことはないと考えています。それはまだあなたのツールボックスにありますが、おそらくそれほど頻繁には使用されていません. 次のように見ることをお勧めします。

「新しい言語を学ぶことで選択肢を広げようと考えています。」

ちょうど先週、私は C#、Java、Bash、Python、Javascript を扱ってきました。問題解決者として見られると、来月何を手伝うように頼まれるかわかりませんが、何かをすることはわかっています...

于 2011-01-24T05:48:35.023 に答える
3

少なくともしばらくの間は、もっと難解な言語を調べることをお勧めします。Smalltalkで小さなGUIを作成するか、CommonLispまたはSchemeでユーティリティを作成します。Javaの知識をこれらの言語に適合させようとするだけでなく、実際には、世界中のRonJeffriesとPaulGrahamsが使用する方法で言語を使用するようにしてください。

求人市場に適用できる何かを学びたいだけなら、それらはPythonやC++ほど良くはありません。ただし、すでに知っている言語とは大きく異なる言語を学ぶことは、興味深い課題を提供し、プログラミングについての考え方を恒久的に変えるはずです。

于 2011-01-24T06:10:09.437 に答える
3

私はほとんどの場合、いくつかのドメイン固有言語といくつかの汎用言語 (C、C++、Java、Delphi など) の経験があり、Python の経験はありません (一般的な概念のみ)。

言葉の難しさで言語を判断してはいけません。あなたは、C++ コンパイラを喜ばせるためにコードのデバッグに時間を費やさなければならないという事実を考慮する必要があると言っています。私は経験豊富な C++ プログラマーであり、一度に数千行のコードを記述し、コンパイルして実行すると、最初の試行ですべてが機能します (他のプログラミングと同様に、いくつかの避けられないタイプミスやその他のものがあります)。 . したがって、その議論は実際にはプログラミング言語のスキルレベルのみを指しています。この言語でコーディングすることは(私にとって)非常に効果的であるため、私は自分のプロジェクトで常に C++ を好みます。これは、(短期的に) 実際に生産性を発揮できる言語でプログラミングする必要があるという実用的な見方を考慮に入れることができます。

しかし、学習に関しては、自分のドメインに適用できると思われるものに向けて舵を取らなければなりません。私はロボットを制御するための人工知能を扱っているので、ハードウェアへのアクセスと、OOP、GP、および TMP が提供する複雑なプログラミング構造が必要です。したがって、C++ の選択は、私にとって非常に簡単です。あなたのドメインで一般的なタスクは何ですか? 低レベル対高レベル、ネットワーキング対数値解析、ユーザー指向対計算指向などのスケールで、それらはどこに立つのでしょうか? あなたの分野で最も広く使われている言語は?

また、Linux ユーザーとして、Linux ソフトウェア エコシステムのオープンソース開発者の間で非常に普及しているように見えるセットアップは、C で低レベルのドライバーを実装し、C++ で複雑なソフトウェアを実装し、高レベルのソフトウェアを実装することです。 Python のインターフェイスとプラグイン。それは、私が多くのオープンソースソフトウェアで観察しているように見えることであり、3つの言語すべての最良の側面を使用しているように見えることは理にかなっている.

于 2011-01-24T07:12:14.573 に答える
2

個人的には、C/C++/Assembly をメインに活動し、その他の言語についても探求しています。これは、問題解決の部分であろうと、ハードウェアに優しい側であろうと、私の目標は可能な限り鋭敏であり続けることだからです。個人的には、とりわけハードウェアの隣にいることがよりエキサイティングだと感じています。また、後者の言語で定期的にコーディングすると、ポインターやメモリなどの管理が自然になり、本質的にコーダーとして、さらには問題解決者としての能力が向上します ;^)。

お役に立てれば!

于 2011-01-24T05:49:19.070 に答える
2

どんな種類の仕事を計画しているかによって大きく異なります。しかし、実際には、ほとんどの高水準プログラミング言語は非常によく似た原理で動作します。基礎となる概念をすべて理解していれば、ある言語から別の言語に切り替えることは、構文を変更するだけの問題です。

それでも、どうしても 1 つの言語に固執するなら、私は Java のファンです。大規模なタスクには C++ が少し扱いに​​くいというのは正しいと思います。Python でできることはすべて Java で実現できる可能性がありますが、Python の滑らかさの一部と引き換えに、実行していることと実際に起こっていることとの間のより直接的な関係が得られます。(少なくとも、Python を使用するよりも Java を使用する方が多くの時間を費やしてきた私の意見です。両方の専門家は私に反対するかもしれません。)

于 2011-01-24T05:52:42.027 に答える
1

愚かなプログラマーは優れたプログラマーです。私は私よりずっと賢い人々のコードを維持してきました。おかしなことに、本当に賢いプログラマーのコードが実際に機能することを除けば、プログラミングができない人にも同じことが起こります。

どちらの場合も、他の人が引き継ぐのは難しく、同時に賢いプログラマーは退屈して別のことをしています。

優れたプログラマーは、「ばかげた」わかりやすいコードを作成し、それを他の誰かに渡して維持できるようにします。そうすれば、リファクタリングが真剣に必要な厄介な巨大なソフトウェアの一部を維持する代わりに、より興味深いことを続けることができます。

プログラマーは賢くあるべきです。コードはばかであるべきです。

于 2011-01-24T10:48:48.473 に答える