PHP)を2年近く書いています。現在.NET(主にc#)の開発を行っていますが、時々戻ってphpを実行します。
私の主な質問は、これを続けるのが賢明ですか、それともC#で開発を続けるべきですか?これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことを覚えておいてください)、またはそれを行うのは良い習慣ですか?
2つの言語を同時に使用しても意味がありません。プログラマーが毎日いくつかの異なる言語を使用することは珍しいことではありません。異なるタスクと異なるテクノロジー必須異なる言語。
ちょうど今日、私はすでに4つか5つの異なる言語を使用していますが、これまでにanyプログラミングを行ったことがないので、興味深いことです。私がやったことはすべて、プレゼンテーションの作業です。
優れたプログラマーとして、本質的に必須はいくつかの言語で自分のやり方を知っていることであり、合理的な流暢さを達成(そして維持)する唯一の方法は使用これらの言語です。
行うことは良い習慣ですか?
それは素晴らしい習慣です。さらに、新しい言語を試すことにより、言語のリストを定期的に拡大することをお勧めします。
言語とテクノロジーは、数年のうちに非常に迅速に賛否両論になります。たとえば、 Objective Cは驚くほどの強さで離陸しました 2年半の間ほとんど死んでいた後-この業界の基準では永遠です!
「すべての取引のジャックにならない」ことを計画していることはそれほど重要ではありません。業界に十分長く留まることを計画している場合、少なくとも1回はテクノロジースタックを切り替える必要があると考えるのは非常に安全です。あなたのキャリアを通して。複数の言語を使用することで、かなり短い通知をオンにする準備が整いました。
これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことを覚えておいてください)、またはそれを行うのは良い習慣ですか?
2つ以上の言語を知っているが害を及ぼすことはありません。あなたの言語を非常に浅く(内部の仕組みを理解せずに)知ることはあなたに害を及ぼすかもしれません。
私の個人的な好みは常に最初に1つのオブジェクト指向プログラミング言語を習得するでした。これにより、すべてのプログラミング概念を深く学ぶことができ、必要に応じて次の概念を簡単に学ぶことができます。
行うことは良い習慣ですか?
絶対にそうです!
私は間違いなく学ぶこと複数を提案し、いくつかのアプリケーションを構築することによってそれらを練習します。一方、Web開発を行っている、または計画している場合は、一部のスクリプト言語(jQuery、KnockoutJsなど)とライブラリの学習を計画することもできます。
あなたのキャリアの中で、あなたは新しい言語と新しいテクノロジーを学ぶために持っています。業界は単にそれを必要としています。私の最初の専門的な割り当てでは、Ada、C、およびFortranで記述されたコードを、いくつかのSQLおよびシェルスクリプトと共に提供する必要がありました。私はC++からJavaに切り替えて、ここ数年で再び戻す必要がありました。csh、bash、およびPerlでシェルスクリプトを記述しました。
特に異なるドメイン(OO、関数、論理など)にある場合は、時間をかけてさまざまな言語を学習すると、いくつかの点で役立ちます。それはあなたの脳を鋭く保ちます。概念を実装から分離するのに役立ちます(たとえば、ハッシュとマップは特定の言語のデータ型だけではありません)。これにより、特定の問題に適切なツールがわかりやすくなります(たとえば、CでWebサイトを構築したり、Haskellでデバイスドライバーを作成したりすることはありません)。それはあなたが仕事を見つけるのをより簡単にするかもしれません(「ねえ、彼はすでに知っています Intercal1、私たちは彼を訓練する必要はありません!」)それはあなたに言語デザイナーが直面する挑戦のアイデアをあなたに与えます。それはあなた自身のプログラミング言語を作成するように刺激するかもしれません。
少なくとも、飽きることはありません。
1.冗談。 Intercalを学ぼうとしないでください。
長い目で見れば害はないはずです。多くの言語に堪能であることは、あなたを総合的な開発者にします。 「適切なツールを使用して適切な作業を行う」が最終的な目標であり、さまざまな言語に精通することで、他に何があるかを理解し、どのプラットフォーム/フレームワーク/言語を使用するかについて十分な情報に基づいた意思決定を行うことができます。何かを成し遂げる。
今年退職する人々は、[〜#〜] c [〜#〜]が作成される前にキャリアをスタートさせました。キャリアの中でプログラミング言語を1、2回切り替える可能性があると言っても安全です。あなたはそれを理解していない雇用主のために働きたくないのです。
初めての場合、2つの言語間のコンテキスト切り替えははるかに難しいため、切り替える前に1つの言語で少なくとも4〜8時間作業すると生産性が向上します。後で、生産性を損なうことなく瞬時に切り替えることができます。言い換えれば、2つの言語を使用することは、あなたを遅くする代わりに、結局は強みになるでしょう。
新しいプログラミング言語を学ぶことは、あなたがすでに知っている言語に適用できるプログラミングについての事柄を教えてくれます。少数の言語ではなく、専門的に使用していない場合でも、少なくとも他の言語で遊ぶことを検討してください。
理想的には、すでに知っているアプローチとは非常に異なるアプローチです。
いいえ、複数の言語を学び、それらをすべてかなり頻繁に使用することに何の問題もありません。私の日常では、Ruby、PHP、JavaScript、CoffeeScript、Python、そしてたまにCに出会うことができます。これらの言語はすべてかなりよく知っており、ある言語から別の言語に切り替えると、スイッチを切り替えるだけです確かに私は他の言語に行くといくつかの言語の機能を見逃しますが、あなたはそれを乗り越えるでしょう。
私は常に徹底的に学習している言語を使用し、次に「新進気鋭」の言語を使用するようにしています。このようにして、あなたは常に明確な教育目標を持ち、それから何かが地平線上にあります。現在Rubyが私の主な言語であり、私はGoを実験しています。Goの開発者として就職することは決してないでしょうが、新しい言語を学ぶことは、より優れた開発者になりました。
開発者にインタビューするとき、私は常にいくつかの異なる言語を彼らの履歴書で見たいと思っています。の開発者が履歴書に「C/C++」または「PHP and Javascript」を持っている場合、4または5言語をしっかり理解している人よりも面白くないように見えます。あなたがリストするどの言語でも快適に感じることを確認してください、あなたの履歴書はインタビューで公平なゲームです!
簡単に言うと、複数の言語を定期的に使用することは、自分の技術に関心を持つ優れた開発者のしるしです。コーディングを続ける!
履歴書を見るとき、通常は複数の言語を知っている人を探します。また、人の経験が増えるにつれて、彼らが使用した言語の数も増えるはずです。
私たちの環境では、新しい興味深い問題に取り組む必要があることが多く、新しい言語を学ぶ必要があるかどうかにかかわらず、それらの問題に進んで解決してくれる人を探しています。問題は、Windowsデスクトップ、Windowsサーバー、Linuxサーバー、またはブラウザーで実行されているコードにある可能性があります。
複数の言語を知ることは、彼らの技術に対して優れた態度を持つ誰かの兆候です。彼らは常に新しいことを学びたいと思っています。多くの言語を理解していないことは、人が最低限のことしか行っておらず、学習に興味がないことを私に示しています。
人々が複数の言語を使用してプログラミングすることは常に当てはまります。人々がアセンブリを使用していたとき、彼らはアーキテクチャを変更するたびに新しいアセンブリ言語を学習しなければなりません。
COBOLやFortranを使用している場合は、通常、RPGやJCLも使用していました。
Unixでは、人々はC、sed、awk、シェルスクリプト、およびUnixキッチンシンクのほぼすべてを操作します(UNIXのほとんどすべてのコマンドラインツールは、独自の非常に特別なDSLです)。
DOSでは、人々はバッチスクリプトに加えてターボパスカルまたはCでプログラミングしているでしょう。後にWindowsが登場したときは、VBまたはSQLとバッチインストールスクリプトを組み合わせたPowerBuilderのようなものでした。
今日では、特定の日に2つ以上の言語を使用する人々「仕事」が(および "work"実際の日々のコーディングを行うか、実用的な知識を持っていることを意味します)。 JavaまたはC#またはVB JavaScriptとSQLを少なくとも組み合わせたものです。その後、バッチ/ジョブスクリプトなどで他の言語が使用されます。次に、言語ごとに、内部DSL、つまりミニ言語を独自に実装するフレームワークがあります。
したがって、複数の言語で作業することは有益なだけでなく、必要です。単一の言語で近代的で複雑なシステムを構築する方法はありません(そして「構築」とは、コンパイルするがらくたをコーディングするだけでなく、まともなデザインで何かを構築することを意味します。)
ヘック、私は手足から出て、私は大学の子供たちがこの職業にいることに真剣であれば2つ以上の言語に堪能であると期待しますと言います。
だから、あなたの質問に関して:
私の主な質問は、これを続けるのが賢明ですか、それともC#で開発を続けるべきですか?これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引をジャックにすることではないことに注意してください)、またはそれを行うのは良い習慣ですか?
だから、短い答え、いいえ、使用または言語間の切り替えはあなたに商品を与えません。複数の言語を知っているからといって、すべての取引がうまくいくわけではなく、開発者が複数の言語を使用できないためにエキスパートになる方法はありません。
これには良い面と悪い面があります。
ここが良い面です...
他の人が述べたように、新しい言語を学び、多くの言語やプログラミングツールで作業できることは、プログラミングで長いキャリアを積む上でほとんど不可欠です。物事は年月とともに変化し、ツールや言語は行き来します。確かに、1980年代に使用したのと同じメインフレームCOBOLでプログラミングすることに満足している人もいますが、これは比較的まれな状況です。ほとんどのプログラマーは、キャリアの過程でツール/言語を数回変更することになります。古いテクノロジーを知っているか、会社が使用しているすべての言語を知っているために、採用されることがあります。
欠点は...
一部の雇用主はあなたを「すべての取引のジャック、何もなしのマスター」と見なし、機会を与えずにあなたの申請を拒否します。彼らは特定の分野の狭い専門家を探しているだけでなく、優れた、よく丸みを帯びたプログラマーを探しています。 「[X]での5年間の継続的な経験」がないために、人事部から切り離される場合があります。履歴書を仕事に合わせて調整することでこれを回避できるかもしれませんが、技術面接では役に立たない可能性があります。
私にとっては、有利な点ははるかに優れていますが、少数の組織がそれを否定的なものと見なしていることを認識しておく必要があります。
PHP開発を行っていたとき、javascriptまたはSQLを作成しましたか?C#の開発では、まだ両方を使用している可能性があります。1つのプログラミング言語を使用するほど、それほど単純でドライではありません。
あなたがそれをやって幸せなら、それについて心配しないでください。両方(またはどちらか)を実行したくない場合は、問題があります。
主要言語を参照して比較する必要があるほど、特定の事柄を特に強くまたは弱くすることになった設計のトレードオフをよりよく理解し、それらの事柄を利用/補償します。少なくとも1つはマスターしますが、他の多くのジャックになる心配はありません。見栄えがいいだけです。
「上級」開発者からリストされた1つの言語のみで履歴書がどのように見えるかを尋ねるのが良いでしょう。その質問に対する答えは、「彼らが生計を立てるために何をしているのかにはあまり興味がない」です。
2つの言語が役立つかどうかは、状況によって異なります。それはあなたに害を及ぼすことはありません、それは確かです。多くの開発者は、「メイン言語」以外の何かを使用することは時間の無駄だと考えがちですが、私は強く反対します。別の言語を学ぶ(そしてそれを使用する)ことは純粋な利点です。問題を解決する方法について別の見方をすることができます。特定のタスクで常にいずれかの言語の使用を開始する可能性があります(Pythonを学び、使用する機会を得た後、私はそう思いました)。
この状況では、JavaからC#に切り替えて常に元に戻すことについて尋ねるのではなく、代わりにC#とPHP大したことではない。
WAMPスタック(Windows/Apache/MySQL/PHP)とC#を使用しているWEBベースのものを実行したいとします。 C#を使用していくつかのSOAPベースのサービスを記述し、次にPHPを使用してそれらを使用します。
これは完全に受け入れられるようです。
とにかく、複数の言語を知っていることは良いことです。知っているほどよくなります。 PHP/C#/ Java/Python/javascriptライブラリ[インスタンスのJQuery]。できるだけ多くの人に役立つようにしてください。