私は2年近く、かなり多くのPHPを書いてきました。現在、.NET(主にc#)開発を行っています。ただし、時々戻ってphpを実行します。
私の主な質問は、これを続けるのが賢明なのか、C#での開発を続けるべきなのか、ということです。これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことに注意してください)、またはそれを行うことは良い習慣ですか?
私は2年近く、かなり多くのPHPを書いてきました。現在、.NET(主にc#)開発を行っています。ただし、時々戻ってphpを実行します。
私の主な質問は、これを続けるのが賢明なのか、C#での開発を続けるべきなのか、ということです。これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことに注意してください)、またはそれを行うことは良い習慣ですか?
回答:
2つの言語を同時に使用することは何もありません。プログラマが毎日いくつかの異なる言語を使用することは珍しくありません。さまざまなタスクやさまざまなテクノロジーには、さまざまな言語が必要です。
ちょうど今日、私はすでに4つまたは5つの異なる言語を使用していますが、これはプログラミングを行ったことがないので興味深いことです。私がやったことは、プレゼンテーションの作業だけです。
優れたプログラマーとしては、いくつかの言語で自分のやり方を知っていることが本質的に必要であり、合理的な流encyさを達成する(そして保存する)唯一の方法はそれらの言語を使用することです。
するのは良い習慣ですか?
これは優れた実践です。さらに、新しい言語を試して、言語のリストを定期的に拡張することをお勧めします。
言語と技術は、数年のうちに非常に急速に好意的になります。たとえば、Objective Cは、20年近く死にかけていましたが、この業界の基準では永遠に続きました。
「すべての取引のジャックではない」ことを計画していることは重要ではありません。十分長く業界に留まることを計画している場合、少なくとも一度は技術スタックを切り替えなければならないと想定することは非常に安全ですあなたのキャリアを通して。複数の言語を使用することにより、かなり短い通知に切り替える準備が整います。
これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことに注意してください)、またはそれを行うことは良い習慣ですか?
2つ以上の言語を知っていても害はありません。あなたの言語を非常に浅く知っていると(内なる働きを理解せずに)害を被ることがあります。
私の個人的な好みは、常に1つのオブジェクト指向プログラミング言語を最初に習得することでした。これにより、すべてのプログラミング概念を深く学習でき、必要に応じて次の概念を簡単に学習できます。
するのは良い習慣ですか?
はいぜったいに!
複数のことを学び、いくつかのアプリケーションを構築して実践することをお勧めします。一方、Web開発を行っている、または計画している場合は、いくつかのスクリプト言語(jQuery、KnockoutJsなど)およびライブラリを学習することもできます。
長い目で見れば害はないはずです。多くの言語に精通していると、開発者のバランスが取れます。「正しい仕事をするための適切なツール」を使用することが究極の目標であり、さまざまな言語に精通していると、他にどんなものがあるかを理解し、使用するプラットフォーム/フレームワーク/言語について十分な情報に基づいた決定を下すことができます何かを成し遂げてください。
あなたのキャリアの過程で、新しい言語と新しい技術を学ぶ必要があります。業界は単にそれを必要とします。私の最初の専門的な割り当てでは、Ada、C、およびFortranで記述されたコードを、いくつかのSQLおよびシェルスクリプトとともに提供する必要がありました。ここ数年で、C ++からJavaに切り替え、また元に戻す必要がありました。私はシェルスクリプトをcsh、bash、およびperlで記述しました。
特に言語が異なるドメイン(OO、機能、論理など)にある場合は、時間をかけてさまざまな言語を学習すると、いくつかの点で役立ちます。それはあなたの脳を鋭く保ちます。概念を実装から分離するのに役立ちます(たとえば、ハッシュとマップは特定の言語のデータ型だけではありません)。与えられた問題にどのツールが適切かをよりよく理解できます(たとえば、CでWebサイトを構築したり、Haskellでデバイスドライバーを作成したりしません)。仕事を見つけやすくなります(「おい、彼はすでにIntercal 1を知っています。私たちは彼を訓練する必要はありません!」)。言語設計者が直面する課題を知ることができます。独自のプログラミング言語を作成するよう促される場合があります。
少なくとも、それはあなたを退屈させないようにします。
1.冗談。Intercalを学ぼうとしないでください。
Cが作成される前に、今年退職した人々はキャリアを始めました。プログラミング言語をあなたのキャリアの中で一度か二度切り替えるかもしれないと言っても安全です。あなたはそれを理解していない雇用主のために働きたくありません。
初心者の場合、2つの言語間のコンテキストの切り替えははるかに難しいため、切り替える前に1つの言語で少なくとも4〜8時間作業すれば生産性が向上します。後で、生産性を損なうことなく即座に切り替えることができます。言い換えれば、2つの言語を使用することは、あなたを遅くする代わりに、最終的に強みになります。
これには長所と短所があります。
ここに逆さまです...
他の人が言ったように、プログラミングで長いキャリアを積むためには、多くの言語とプログラミングツールを使って新しいことを学び、働くことができることがほとんど不可欠です。物事は年々変化し、ツール/言語は行き来します。確かに、1980年代に使用したのと同じメインフレームCOBOLでプログラミングすることに満足している人もいますが、これは比較的まれな状況です。ほとんどのプログラマーは、キャリアの過程で何度かツール/言語を変更することになります。古い技術を知っているか、会社が使用しているすべての言語を知っているために、採用される場合があります。
欠点は...
一部の雇用主は、あなたを「すべての取引のジャック、なしのマスター」とみなし、チャンスを与えずに申請を拒否します。彼らは特定の分野の狭い専門家を探しているだけでなく、単に優れた、丸みのあるプログラマーではありません。「[X]での5年間の継続的な経験」がないために、HRによって切断される場合があります。履歴書を職務に合わせて調整することでこれを回避できる場合がありますが、これは技術面接では役に立たない場合があります。
私にとっては、アップサイドははるかに優れていますが、少数の組織がそれをネガティブと見なしていることに注意する必要があります。
いいえ、複数の言語を学習し、それらをすべてかなり頻繁に使用しても問題はありません。私の日常では、Ruby、PHP、JavaScript、CoffeeScript、Python、そして時々Cに出会うことができます。これらの言語はすべてよく知っているので、ある言語から別の言語に切り替えるだけで頭が変わります。確かに、私は別の言語に行くときにいくつかの言語の機能を見逃していますが、あなたはそれを乗り越えます。
私は常に詳細な言語を学び、それからもう1つの言語を「アップアンドカミング」として学ぼうとしています。このようにして、あなたは常に明確な教育目標を持ち、次に何かが地平線上にあります。現在、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では、バッチスクリプトに加えて、Turbo PascalまたはCでプログラミングします。後にWindowsが登場したとき、それはVBまたはPowerBuilderのようなもので、SQLとバッチインストールスクリプトが組み合わされていました。
今日では、人々が特定の日に2つ以上の言語で「働く」という事実があります(「仕事」とは、実際の日常的なコーディングを行うか、実用的な知識を持っていることを意味します)。JavaまたはC#またはVBと、少なくともJavaScriptおよびSQLの混合。次に、他の言語がバッチ/ジョブスクリプトなどに使用されます。次に、言語ごとに、それ自体がミニ言語である内部DSLを実装するフレームワークがあります。
したがって、複数の言語で作業することは有益であるだけでなく、必要です。単一の言語で現代的で複雑なシステムを構築する方法はありません(「ビルド」とは、単にコンパイルするがらくたをコーディングすることではなく、まともなデザインで何かを構築することを意味します)。
ヘック、私は手足から出て、この職業に真剣に取り組んでいるなら、大学の子供たちが2つ以上の言語に堪能であることを期待すると言います。
だから、あなたの質問に関して:
私の主な質問は、これを続けるのが賢明なのか、C#での開発を続けるべきなのか、ということです。これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことに注意してください)、またはそれを行うことは良い習慣ですか?
だから、短い答え、いいえ、言語を使用したり切り替えたりすることはあなたにクールを与えません。複数の言語を知っているからといってすべての取引ができるわけではありません。また、開発者が複数の言語を使用できないことで専門家になる方法はありません。
この状況では、JAVAからC#に切り替えて常に戻ることを求めているのではなく、C#とPHPを使用していますが、これは大した問題ではありません。
WAMPスタック(Windows / Apache / MySQL / PHP)とC#を使用しているWebベースのものを実行したいとします。C#を使用してSOAPベースのサービスを作成し、PHPを使用してそれらを使用します。
これは私には完全に受け入れられるようです。
とにかく、複数の言語を知っているのは良いことです。知れば知るほど良い。PHP / C#/ Java / Python / javascriptライブラリ[たとえば、JQuery]。できるだけ多くの人に役立ててください。