2つのプログラミング言語を行き来するのは賢明ですか?[閉まっている]


28

私は2年近く、かなり多くのPHPを書いてきました。現在、.NET(主にc#)開発を行っています。ただし、時々戻ってphpを実行します。

私の主な質問は、これを続けるのが賢明なのか、C#での開発を続けるべきなのか、ということです。これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことに注意してください)、またはそれを行うことは良い習慣ですか?


30
より良い1つのトリックポニーよりも、すべての取引のジャックされるように
scrwtp

27
あなたがたった2つの言語に自分自身を制限するならば、それは確かにあなたを傷つけます。ツールボックスにさまざまなツールを追加してください。
SKロジック

4
この質問は、あなたがC#とPHPを完全に自由に選択できるかのように尋ねます。実際にそうなのでしょうか。
Doc Brown

10
1つの言語のすべての汚い詳細を知ることは、間違いなく非常に便利です。しかし、複数の言語で作業する場合、将来のある時点で、現在作業している言語に関係なく、プログラムの一部を特定の方法で設計していることに気付くでしょう。セカンダリとアプリケーションが重要なものです。これは素晴らしい場所です。なぜなら、人々が新しい派手なZ ++言語で作業しているときでも、将来プログラマーとしての可能性があるからです。

2
たった二つ?多くのプログラマーは、多くの言語で定期的に働いています。いくつかの知識があると、より多くのツールを使用できます。
カレブ

回答:


75

2つの言語を同時に使用することは何もありません。プログラマが毎日いくつかの異なる言語を使用することは珍しくありません。さまざまなタスクやさまざまなテクノロジーには、さまざまな言語が必要です。

ちょうど今日、私はすでに4つまたは5つの異なる言語を使用していますが、これはプログラミングを行ったことがないので興味深いことです。私がやったことは、プレゼンテーションの作業だけです。

優れたプログラマーとしては、いくつかの言語で自分のやり方を知っていることが本質的に必要であり、合理的な流encyさ達成する(そして保存する)唯一の方法はそれらの言語を使用することです。


4
少なくとも3つの言語を定期的に使用しなくても、誰がどのようにして効果的なプログラマーになることができるのかはわかりません。
ブライアンノブラウフ

1
@ブライアン-これらの3つの言語は、主な話し言葉/書き言葉、主なプログラミング言語、SQLおよび/またはHTMLですか?
キース

2
@KeithSクライアント側で非常に単純なページを作成し、サーバー側でXMLレコードに触れない場合のみ。CSSとJavascriptは、XPathとXSLTとXQueryと同様に、独自の言語としてカウントされます。
タクロイ

2
「ほとんどの人」または「ほとんどの開発者」を含むものには、何らかの引用を続ける必要があります。それ以外の場合、主観的です。私が出会った(そして私も含めて)開発者のほぼ全員がSQLをプログラミング言語と見なしており、チューリングの完成度はプログラミング言語に必要な要素ではありません(DSLは、完全にチューリングしないように設計されています。)HTMLとXMLは明らかにプログラミング言語ではありません(ただし、XMLベースのドメイン固有言語を使用できます)。正規表現はプログラミング言語ではありませんが、プログラム可能/構成可能なオートマトンはプログラミング言語です。
luis.espinal

2
それはソースではありません。これはディスカッションへのリンクであり(ディスカッション自体はソースではありません)、CSSとHTMLのみに焦点を当てています。「チューリング完了」テスト(DSLのテーマに関するMartin Fowlerの研究を読むことをお勧めします)や、SQLがプログラミング言語(つまり、実際のソース:en.wikipedia.org/ wiki / SQL、またはこのamazon.com/SQL-Programming-Language-Kirk-Scott/dp/0763766747)。どちらのあなたは完全に私の記事を読んでいない、またはあなたがstackexchangeへのリンクが元だと思う(ではありません。)
luis.espinal

37

するのは良い習慣ですか?

これは優れた実践です。さらに、新しい言語を試して、言語のリストを定期的に拡張することをお勧めします。

言語と技術は、数年のうちに非常に急速に好意的になります。たとえば、Objective Cは、20年近く死にかけていましたが、この業界の基準では永遠に続きました。

「すべての取引のジャックではない」ことを計画していることは重要ではありません。十分長く業界に留まることを計画している場合、少なくとも一度は技術スタックを切り替えなければならないと想定することは非常に安全ですあなたのキャリアを通して。複数の言語を使用することにより、かなり短い通知に切り替える準備が整います。


14

これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことに注意してください)、またはそれを行うことは良い習慣ですか?

2つ以上の言語知っていても害はありません。あなたの言語を非常に浅く知っていると(内なる働きを理解せずに)害を被ることがあります。

私の個人的な好みは、常に1つのオブジェクト指向プログラミング言語を最初に習得することでした。これにより、すべてのプログラミング概念を深く学習でき、必要に応じて次の概念を簡単に学習できます。

するのは良い習慣ですか?

はいぜったいに!

複数のことを学び、いくつかのアプリケーションを構築して実践することをお勧めします。一方、Web開発を行っている、または計画している場合は、いくつかのスクリプト言語(jQuery、KnockoutJsなど)およびライブラリを学習することもできます。


1
私は、OOPを学ぶことで関数型プログラミングから多くの概念を学べるとは思わない。1つは、JavaScriptのスコープルールはC#などの他の一般的なOOP言語とは非常に異なるため、他にも多くの概念が存在するためです。
phant0m

私は強く同意します。ただし、jQueryとKnockoutJはスクリプト言語ではありません。また、JavaScriptの基本的な知識がなければ「jQueryを学ぶ」ことはお勧めしません。
ブルーノシェーパー

jQueryは言語ではなく、言語で書かれたライブラリであるため、プロセスでJavaScriptを学習しないとjQueryを学習できません。
ILikeTacos

5

長い目で見れば害はないはずです。多くの言語に精通していると、開発者のバランスが取れます。「正しい仕事をするための適切なツール」を使用することが究極の目標であり、さまざまな言語に精通していると、他にどんなものがあるかを理解し、使用するプラットフォーム/フレームワーク/言語について十分な情報に基づいた決定を下すことができます何かを成し遂げてください。


答えてくれてありがとう、しかし頻繁なシフトは私の学習プロセスに害を及ぼさないのか、それを長引かせるのか、それとも単にその人の能力に依存するのか疑問に思っていましたか?
ラミンサンネ

@LaminSanneh別の言語を学習しても、最初の言語が悪くなることはありません。RPGではなく、各言語に割り当てることができる「プログラミングスキル」ポイントのセット数がありません。最悪の場合、別の言語に専念するのに時間がかかります。しかし、言語はあなたのアイデアを表現する方法に過ぎず、新しい言語を学ぶことは、あなたが既に知っているものに適用できる新しい新鮮な視点とアイデアを提供します。もちろん、あなたはすべての言語の構文を知らないでしょうが、誰がそれを気にしますか?Googleを使って簡単に検索できます
ジェイ

5

あなたのキャリアの過程で、新しい言語と新しい技術を学ぶ必要があります。業界は単にそれを必要とします。私の最初の専門的な割り当てでは、Ada、C、およびFortranで記述されたコードを、いくつかのSQLおよびシェルスクリプトとともに提供する必要がありました。ここ数年で、C ++からJavaに切り替え、また元に戻す必要がありました。私はシェルスクリプトをcsh、bash、およびperlで記述しました。

特に言語が異なるドメイン(OO、機能、論理など)にある場合は、時間をかけてさまざまな言語を学習すると、いくつかの点で役立ちます。それはあなたの脳を鋭く保ちます。概念を実装から分離するのに役立ちます(たとえば、ハッシュとマップは特定の言語のデータ型だけではありません)。与えられた問題にどのツールが適切かをよりよく理解できます(たとえば、CでWebサイトを構築したり、Haskellでデバイスドライバーを作成したりしません)。仕事を見つけやすくなります(「おい、彼はすでにIntercal 1を知っています。私たちは彼を訓練する必要はありません!」)。言語設計者が直面する課題を知ることができます。独自のプログラミング言語を作成するよう促される場合があります。

少なくとも、それはあなたを退屈させないようにします。


1.冗談。Intercalを学ぼうとしないでください。


4

Cが作成される前に、今年退職した人々はキャリアを始めました。プログラミング言語をあなたのキャリアの中で一度か二度切り替えるかもしれないと言っても安全です。あなたはそれを理解していない雇用主のために働きたくありません。

初心者の場合、2つの言語間のコンテキストの切り替えははるかに難しいため、切り替える前に1つの言語で少なくとも4〜8時間作業すれば生産性が向上します。後で、生産性を損なうことなく即座に切り替えることができます。言い換えれば、2つの言語を使用することは、あなたを遅くする代わりに、最終的に強みになります。


2

これには長所と短所があります。

ここに逆さまです...

他の人が言ったように、プログラミングで長いキャリアを積むためには、多くの言語とプログラミングツールを使って新しいことを学び、働くことができることがほとんど不可欠です。物事は年々変化し、ツール/言語は行き来します。確かに、1980年代に使用したのと同じメインフレームCOBOLでプログラミングすることに満足している人もいますが、これは比較的まれな状況です。ほとんどのプログラマーは、キャリアの過程で何度かツール/言語を変更することになります。古い技術を知っているか、会社が使用しているすべての言語を知っているために、採用される場合があります。

欠点は...

一部の雇用主は、あなたを「すべての取引のジャック、なしのマスター」とみなし、チャンスを与えずに申請を拒否します。彼らは特定の分野の狭い専門家を探しているだけでなく、単に優れた、丸みのあるプログラマーではありません。「[X]での5年間の継続的な経験」がないために、HRによって切断される場合があります。履歴書を職務に合わせて調整することでこれを回避できる場合がありますが、これは技術面接では役に立たない場合があります。

私にとっては、アップサイドははるかに優れていますが、少数の組織がそれをネガティブと見なしていることに注意する必要があります。


+1、さらに、この少数の組織と不適切なプログラミングと非効率性の間には相関関係があると確信しています。
K.ステフ

2
その否定は、正反対を考える雇用主によってキャンセルされます。私が仕事をしている場所で採用決定をすることはできますが、たった1つのプログラミング言語しか持っていない人を採用しても大丈夫だと納得させるのは非常に難しいでしょう。たぶん、ジュニア職のためですが、シニア開発者のためではありません。
ジョンハンナ

@JonHanna-主な問題は、開発チームが人事、時には自動化されたプログラムによって選別されるため、将来の開発者にインタビューすることさえできないことです。もちろん、これは大規模な組織ではより一般的な問題です。人事担当者が、arbitrary意的な基準に基づいて最適な候補者を選別しないようにすることが重要です。
jfrankcarr

短所を指摘するための+1 。私がどこから来たのかというと、「すべての取引のジャック、誰の支配もない」という見解を保持している企業の数はそれほど多くはありません。
lsoliveira

ええ、しかし、私たちはそれを良い品質に変えることができます。HRには品質が悪いと考えるバカが常に存在する可能性があります。最終的には、組織内のHRがばかである場合、彼らは悪い雇用をするでしょう。そして、雇用されている間は失業ラインよりも良いかもしれませんが、すぐに新しい仕事を探し、どこかで仕事を見つけます。 。
ジョンハンナ

2

PHP開発を行っていたときに、javascriptまたはSQLを作成しましたか?C#開発では、まだ両方を使用できます。1つのプログラミング言語を使用するほどカットとドライではありません。

あなたがそれをやって満足している場合、それを心配しないでください。両方(またはいずれか)を行いたくない場合は、問題が発生します。


2

新しいプログラミング言語を学習すると、プログラミングに関する知識が得られ、既に知っている言語に適用できます。たとえ少数しか持っていないのではなく、専門的にそれらを使用していなくても、少なくとも他のいくつかの言語で遊ぶことを確実に検討すべきです。

理想的には、すでに知っている人とはアプローチが大きく異なるものです。


2

いいえ、複数の言語を学習し、それらをすべてかなり頻繁に使用しても問題はありません。私の日常では、Ruby、PHP、JavaScript、CoffeeScript、Python、そして時々Cに出会うことができます。これらの言語はすべてよく知っているので、ある言語から別の言語に切り替えるだけで頭が変わります。確かに、私は別の言語に行くときにいくつかの言語の機能を見逃していますが、あなたはそれを乗り越えます。

私は常に詳細な言語を学び、それからもう1つの言語を「アップアンドカミング」として学ぼうとしています。このようにして、あなたは常に明確な教育目標を持ち、次に何かが地平線上にあります。現在、Rubyが私の主要言語であり、Goを実験しています。私はおそらくGo開発者として就職することは決してないでしょうが、新しい言語を学ぶことはより良い開発者になりました。

開発者にインタビューするとき、私はいつも履歴書にいくつかの異なる言語を見るのが好きです。開発者が履歴書に「C / C ++」または「PHP and Javascript」を持っている場合、4または5言語をしっかりと把握している人よりも面白く見えません。リストに載っている言語に慣れていることを確認してください。履歴書に記載されているものはすべて、面接では公正なゲームです。

要するに、複数の言語を定期的に使用することは、自分の技術に関心を持つ優れた開発者の証です。コーディングを続けてください!


開発者が履歴書で「C / C ++」と言ったら、それが唯一の言語になりたいと思います。しかし、他のフールプルーフ言語では、より優れています。
コーダー

2

履歴書を見るとき、通常、複数の言語を知っている人を探します。また、人の経験が増えると、使用する言語の数も増えるはずです。

私たちの環境では、多くの場合、新しい興味深い問題に取り組む必要があり、新しい言語を学ぶ必要があるかどうかに関係なく、それらの問題に飛び込んで解決する人を探しています。問題は、Windowsデスクトップ、Windowsサーバー、Linuxサーバー、またはブラウザーで実行されているコードにある可能性があります。

複数の言語を知っているということは、自分の技術に良い態度を持っている誰かのサインです。彼らは常に新しいことを学びたいのです。多くの言語を知らないということは、人は最低限のことしかせず、学習に興味がないというサインです。


2

人々が複数の言語を使用してプログラムすることは常に事実です。アセンブリを使用していた場合、アーキテクチャを変更するたびに新しいアセンブリ言語を使用する必要があります。

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#での開発を続けるべきなのか、ということです。これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことに注意してください)、またはそれを行うことは良い習慣ですか?

だから、短い答え、いいえ、言語を使用したり切り替えたりすることはあなたにクールを与えません。複数の言語を知っているからといってすべての取引ができるわけではありません。また、開発者が複数の言語を使用できないことで専門家になる方法はありません。


1

一次言語を参照して比較すればするほど、特定の事柄で特に強くしたり弱めたりする設計のトレードオフをよりよく理解し、それらの事柄を活用/補償します。少なくとも1つをマスターしますが、他の多くのジャックになることを心配しないでください。それはよさそうだ。

「上級」開発者からリストされた1つの言語のみで履歴書がどのように見えるかを尋ねる方が良いでしょう。その質問に対する答えは、「彼らが生計のために何をするかにあまり興味がない」です。


0

2つの言語が役立つ場合とそうでない場合があります-それは依存します。それはあなたに害を与えません、それは確かです。多くの開発者は、「メイン言語」以外の何かを使用することは時間の無駄であると考える傾向がありますが、私は強く同意しません。別の言語を学習(および使用)することは純粋な利点です。問題を解決する方法について異なる視点を提供します。いつでも特定のタスクにいずれかの言語の使用を開始することがあります(Pythonを学び、使用する機会を得た後、私はそうなりました)。


0

この状況では、JAVAからC#に切り替えて常に戻ることを求めているのではなく、C#とPHPを使用していますが、これは大した問題ではありません。

WAMPスタック(Windows / Apache / MySQL / PHP)とC#を使用しているWebベースのものを実行したいとします。C#を使用してSOAPベースのサービスを作成し、PHPを使用してそれらを使用します。

これは私には完全に受け入れられるようです。

とにかく、複数の言語を知っているのは良いことです。知れば知るほど良い。PHP / C#/ Java / Python / javascriptライブラリ[たとえば、JQuery]。できるだけ多くの人に役立ててください。

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