言語に関する開発者の長年の経験の違いは何ですか?[閉まっている]


9

タイトルで述べたように、開発者の観点から、特定の言語での長年の経験の違いは何ですか?たとえば、1人の開発者が言語Aで5年間作業し、もう1人の開発者が言語Bで2年間作業した後、言語Aで3年間作業した場合、両者に認識できる違いはありますか?

回答:


26

"場合によります"

<>の知識または理解を体験します。

プログラマー1は、非常に優れたグルである場合もあれば、過去5年間言語をいじり回している誰かである場合もあります。

プログラマー2は、使用している言語とは関係なく概念を理解する人かもしれません。または、言語Bが難しすぎてAの方が簡単だと思っている人。

コーディングホラーの「The Years of Experience Myth」は一読の価値があります


6
彼らが言うように、あなたの開発者は言語Aで5年の経験があるかもしれません-または彼は5回繰り返された1年の経験があるかもしれません。
Carson63000 2010年

1
真実のための+1-私は8年以上の経験を持つ新入社員と仕事をしてきましたが、最高で平均的な人でした。逆に、私たちは大学を卒業して1年の男性を雇っただけで、彼はすべての期待を超えています。
Damovisa

4

場合によります。

私には1つの言語にこだわる傾向がある友人がいるので、彼を「プログラマーA」と見なすと、その言語で1年間、5回の経験があります。

言語が異なれば、さまざまなことができます。私が特に好きなエッセイの1つは、ポールグラハムによって「Beating the Averages」と呼ばれています。その中で彼は人々にlispを学ぶよう説得しようとしていますが、彼はまたいくつかの非常に有用なポイントを作ります:

プログラマーはお気に入りの言語に非常に執着しており、私は誰かの気持ちを傷つけたくないので、この点を説明するために、ブラブと呼ばれる仮想的な言語を使用します。ブラブは、抽象的な連続体の真ん中に落ちます。最も強力な言語ではありませんが、Cobolや機械語よりも強力です。

そして実際、私たちの架空のブラブプログラマーはどちらも使用しません。もちろん、彼は機械語でプログラムするつもりはありません。それがコンパイラの目的です。そして、Cobolに関しては、誰もがそれを使って何かを成し遂げる方法を彼は知りません。xもありません(お好みのBlub機能)。

私たちの架空のブラブプログラマーがパワー連続体を見下ろしている限り、彼は自分が下を見ていることを知っています。Blubよりも強力でない言語は、彼が慣れているいくつかの機能がないため、明らかに強力ではありません。しかし、私たちの架空のブラブプログラマーが、パワーコンティニュームを逆方向に見たとき、彼は見上げていることに気づきません。彼が見ているのは単に奇妙な言語です。彼はおそらくそれらをブラブと同等のパワーについて考えていますが、他のすべての毛むくじゃらのものも同様に投入されています。彼はブラブで考えているので、ブラブは彼にとって十分良いです。

しかし、強力な連続体で上位の言語のいずれかを使用するプログラマーの視点に切り替えると、次に彼はブラブを見下ろしていることがわかります。Blubで何かをするにはどうすればよいですか?yもありません。

一般的に、私のアドバイスは複数の言語を学び、言語の長所と短所を知ることです。


私は複数の言語を知ることが重要であることに同意します。言語はツールボックスのツールであり、言語の長所と短所を知ることは、仕事を成し遂げるために重要です。ドライバーやハンマー、ペンチで釘を打つことができますが、他の釘よりもはるかにうまく機能します。もちろん、ハンマーはネジを外したり、ボルトのナットを締めたり緩めたりするのにひどいです。
Tin Man、

2

もちろん、1つの言語で長年の経験を持つ開発者は、その言語のコアライブラリと特異性についてよりよく理解できます。言語が同じパラダイム(命令型と関数型)を採用している場合、その言語を習得する以外に、その言語を習得するのに問題はないはずです。

新しい言語を選択する際の最大の問題は、C#からErlangに切り替えようとしたことです。これは、新しい構文だけでなく、プログラミングに関する新しい考え方も表していたためです。


5
開発者が有能であると仮定します。
gbn 2010年

2
@gbn:私の場合、あなたがその仮定を行うことができないことを絶対に保証できます:)
Watson

2

これが私が期待する/期待することです:

  1. 流暢さ-彼らは頭上からより多くのコードを書くことができ、構文を調べる時間を短縮できるはずです。
  2. 以前のバージョンと現在のバージョンの違い、およびコードを別のバージョンに移行する方法を理解します。
  3. アップグレードとパッチのコンパイル、配布、テスト、および作成について十分に理解してください。
  4. IDEへのアドオンを作成/組み込み、それらから効率を得る。

2

言語は問題ではありません。数日で言語全体を学ぶことができます。吸収に時間がかかるのは、規約、API、さまざまなサードパーティのフレームワークです。Xの5年間を尋ねるとき、彼らは言語に関心がなく、その言語の問題を解決した経験が豊富で、学習曲線にお金を払う必要がない人を求めています。


言語全体をすばやく学習できますが、わからない概念があると、時間がかかります。すべての言語に同じ概念があるわけではありません。
David Thornley、2010年

2

専門知識と意図的な練習。

意図的に練習しなければ、専門知識は得られません。(あなたは自分のエラーを調べて修正し、自分の弱点を練習し、専門家にあなたが間違っていることを教えてくれる必要があります。)

あなたが改善しようとしない場合、あなたは永遠に初心者になることができます!

1万時間の慎重な練習の後、専門知識を習得します。(教育/トレーニングからのこの発見はネット全体に及んでいます。)

プログラマーAが意図的に練習していないと、改善されることはありません。

プログラマーBが意図的に練習していない場合、彼らは決して良くなることはありません。

同じ調査からのもう1つの発見:私が15000時間、あなたが10000時間持っていて、私が練習を続けているなら、あなたは私より優れていることはありません。

2つの言語を知っていれば、おそらくBはより優れたプログラマーになるでしょう(ルールを練習する必要があります)。


1

そして、それらを言語Aに使用していると思いますか?(明らかに、言語Bに違いがあります。)

これは、AとBの違いに一部依存します(特に、2番目の開発者のAでのエクスペリエンスを短縮する場合)。それらがかなり類似している場合、基本的に経験に違いはありません。Aの概念がかなり異なる場合でも、3年で十分学習できます。非常に大きなライブラリと複雑なツールを考えると、3年と5年の間に違いがあるかもしれません。

もちろん、ここで最も重要なのは個人です。優れた開発者は3年間で新しいプラットフォームを完全に学ぶことができるため、これは問題になりません。


1

言語は言語であり、概念は概念であることに同意します。

私の問題は、最近、高度なIDEなしではまったくプログラムできないプログラマーがたくさんいることです。彼らは本当にプログラマーではありませんが、本当にデザイナーのようです。

私は個人的な経験から、厄介なMicrosoftの開発環境で悩まされている人がたくさんいることを知っています。テキストボックスを画面にドロップしてから、ウィザードでプロパティを設定し、データベースの画像からデータをドラッグするのは間違いではありませんが、基本的な同等性テストをすべてセットアップしている場合、それらは実際に任意の言語のコーダーですか?

それらの人々は、彼らが学んだ概念を取り、それらを別の言語に適用することは決してできないでしょう。

私が人々にインタビューするとき、彼らが彼らの開発をどのようにしたか、そして彼らがどのフレームワークを使用したかにもっと興味があります。「イベントハンドラーをどのように記述しますか」、「どのように正確にデータをDBに入力しますか?」、または「この特定のボタンをクリックしたときに紫色にするにはどうすればよいですか?」これはすぐにデザイナーを排除し、プログラマーから離れます。3年か4年は実際に私の選択した言語で1年をプログラミングすれば十分です。

ちょうど別の意見、

タル


1

「X言語/プラットフォームの経験年数」は、主に採用の病理です...

それは解釈の自由があり、一見したところほど有用ではありません。言われたように、経験年神話は良い読み物です。

また、重要なことに、「経験年数」自体の測定は非常に不正確になる可能性があります。これが私の現在のギグの例です。私の主なタスクはJava Webアプリの開発と保守です。ただし、これはMFC / C ++ / SQL Serverであるバックエンドで実行されます。その結果、私もC ++コードをほぼ毎日処理しています。しかし、このC ++の経験は比較的表面的で保守指向であり、MFC / C ++で大きなコンポーネントやプログラム全体をゼロから作成することはもうありません(ただし、以前の役割で使用していました)。

これらの過去5年間を「C ++の5年間の経験」として数えることはできますか?多分。そうでないかもしれない。特定の役割を確保するためにどのように販売したいかによって、あからさまに嘘をつくことなく簡単にオーバープレーすることができます。:)この種の「測定の不正確さ」の問題に同様にオープンなケースがたくさんあると私は確信しています。経験の深さは、経験の質を著しく曇らせる可能性があります。したがって、「C ++で費やされるXの時間」は、それ自体にはあまり意味がありません。


-1

はい、プログラマ1には言語Bの構文に関する知識がありません。

プログラミングの概念はプログラミングの概念です。言語は単なる構文です。


5
ああ、とても間違っている...
ハビエル

ハビエルの言う通り、言語は構文だけではありません...慣習で学ぶ慣習、サードパーティのライブラリ、APIがあります。
Daniel S
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.