プログラマーの教育とトレーニング全体をどのように改善できますか?[閉まっている]


13

先週、私はちょうどSecond LifeのPhillip RosedaleのKevin Roseによるこの素晴らしいインタビューを見ていました。

そして彼らは、優れたプログラマーを見つけ、雇い、特定する方法と、優れたプログラマーを見つけるのがどれほど難しいかについて素晴らしい議論をしました。

これは私たちがプログラマーがどのように学んでいるかを本当に考えるようになった。私自身も含めて、私たちの大半は独学です。プログラマーであることは素晴らしいことであり、誰もがスキルを学び、開発することができます。

しかし、これはまた、優れたプログラマーが何であるかについての本当の基準が存在せず、どのような環境がプログラミングスキルの成長を促進するかを意味します。

これはそれほど質問ではなく、プログラミングの文化やプログラミングの管理者をどのように変えることができるかを知りたいという願望であり、教育と自己改善が奨励されています。

継続的な教育、YouTubeビデオ、書籍、会議には多くの方法がありますが、私たちが行うことの経験的な性質のため、何を学び、習得することが重要かは必ずしも明確ではありません。

The Joel 12 Stepsを見てみましょう。

ジョエルテスト

ソース管理を使用していますか?

ワンステップでビルドを作成できますか?

毎日ビルドしますか?

バグデータベースはありますか?

新しいコードを書く前にバグを修正しますか?

最新のスケジュールはありますか?

スペックはありますか?

プログラマーは静かな労働条件を持っていますか?

お金で買える最高のツールを使用していますか?

テスターはいますか?

新しい候補者はインタビュー中にコードを書きますか?

廊下のユーザビリティテストを行っていますか?

これらはすべて重要な価値があると思いますが、Experiential Gapと呼ばれるもののために、プログラマーまたはマネージャーがリストの項目を実行しなかったことに対する否定的な結果を一度も経験したことがない場合、そのうちの。

Experiental Gapは、私たちそれぞれが異なる仕事と異なる経験を持っているという私の基本的な理論です。そのため、常に何十人ものプログラマーと連携してきた一部の人にとって、ソース管理は必須です。しかし、常に唯一のプログラマーであった人々にとっては、ソース管理の必要性を想像することはできません。

そして、私たちが学ぶ方法におけるこの大きな欠陥のために、私たちは人々が行うベストプラクティスまたはしないベストプラクティスによって人々を評価し、どちらかの理由が火炎戦争を開始する可能性があります。

私たちは常に自分の分野で人々の行動を評価し、「この男/ギャルがxyzベストプラクティスを実行していない場合、彼/彼女は優れたプログラマーになれないので、時間やエネルギーを無駄にしないでください」 」

これがまさにプログラミングフレイムウォーを抱えている理由です。ExperientalGapのせいで、私たちがしなければならなかった決定をしていない人は想像できません。

そのため、プログラマーをどのように訓練、教育、管理するかを再考する必要があると考えるようになりました。

たとえば、マネージャーの何パーセントが会議に出席するよう奨励しており、それに対して支払いをしていますか?

私にとって、そして多くの人々にとって、これは非常にまれです。多くの人がカンファレンスに行き、詳細を知りたいと思っていますが、それをするためのお金はありません。

したがって、この質問のポイントは、どうすればより良いトレーニング、学習、および管理を行うことができるのか、多くを刺激することですか?

同じ職歴を持たないことで人々をs辱しない学習の新しい文化をどのように作成できますか。

はい、私たち全員が仕事と仕事をしていますが、仕事を上手に行う能力は、スキルの習得を向上させるための私たちの欲求、関心、サポートに依存しています。

今、私たちの文化はかなり混乱しており、エリートをサポートしていますが、良くなりたいと思っている私たちの多くは、自分自身を学び、改善するのに十分なサポートを持っていません。

つまり、私たちは業界として、単なる交換可能な歯車として認識されることを望んでいますか?

ありがとうございました...


+1:.NET RocksのCarl Franklinが、かつてプログラミング業界が「見習いを吸っている」と言っていたと思います。この引用が正しく帰されたことを願っています。しかし、私は、この感情に完全に同意します。最近、エントリーレベルの候補者がどのようにランクを上げているのか本当にわかりません。
ジムG.

すばらしいコメントをありがとう。しかし、私の目標の一部は、より良い教育メカニズムが必要であることを業界の巨人に呼び起こすのを助けることであり、会議や大学だけでは不十分だと思います。しかし、正しい答えが何であるかはわかりません。
クロセンブラム

私の目標は、特定のフレームワークや方法論を推進することではなく、より多くの教育を推進し、プログラマーが確実にサポートを受けるようにすることです。
crosenblum

誰もがスキルを学び、開発しようとすることができますが、ほとんどは必要な属性を持っていません。とにかく、私たちの業界のコストにそれを行います。
11

インタビューへのリンクはありますか?youtube.com/watch?v=irF-V9RUuXoこれ?
ルカシュマドン

回答:


13

うわー、考えるべき素晴らしい質問、答えるのは難しい。私たち全員が異なる経験と欲求を持っているので、すべてのソリューションに適合するサイズを見つけるのは困難です。しかし、私はこの同じトピックについて長年にわたって持っていたいくつかの意見を捨てます。

1)ジョブホッピングが悪いと思うのをやめて、励まします。数年ごとに会社を変えてください。プログラマーは、そのキャリアの中でさまざまなテクノロジー、方法論、およびビジネスに触れます。企業は新しいアイデアの着実な流れを獲得します。

2)自分をX社のプログラマーと見なすのをやめ、自分をX社にサービスを提供するプロフェッショナルと見なす。交換可能なコグと見られるのは、交換可能なコグのように振る舞うためです。

3)大学は変える必要がある。最初の2年間はコンピューターの基礎教育を受け、その後に選択が必要です。コンピューターサイエンスまたはコンピューターエンジニアリング。また、エンジニアリングトラックには、論文を書くだけの人ではなく、毎日現場で働く専門家が必要です。そして、教えられることは実用的である必要があるので、卒業の翌日に走り出すことができます。学位プログラムを受けていない人のための見習いプログラムがあるかもしれません。

4)編集:これは少し不機嫌だった。私が意味したのは、年齢や経験に関係なく、私たち全員がお互いから学ぶことがたくさんあるということです。

5)ポイント2に多少関係する。あなたの雇用主があなたのキャリアに責任があると見なすのをやめる。あなたは。そしてあなただけ。あなたが会議に参加したい場合、あなたの会社がそうしなくても、あなた自身がそれのために支払います。特に本やトレーニング、専門能力開発のために毎年お金を取っておきます。雇用主がトレーニングに参加するのを待つと、長い間待たされることになります。あなたのスキルを見るのに費やす時間は無関係になります。余裕がないのですか?ジョブを変更します。

6)私たちは自分自身と仲間のプログラマーに正直である必要があります。プログラミングは難しいです。とても厳しい。私はまだ卒業時に豊かさが保証されたコンピュータートレーニングの広告を見ています。それは、単に資格がないか、さらに悪いことにお金以外の本当の関心を持たない多くの人々を現場に連れてきます。私たちは、彼らが彼らのキャリアプランを再考するよう奨励する方法を見つける必要があります。

この時点で頭が爆発しそうだと思うので、結論を出します。

いい質問です!もっと回答を読むのを楽しみにしています。


3
ポイント2と5の大部分に対して+1。雇用主が必要以上にあなたを必要としていることに気付くのは、驚くべき瞬間です。
カールNorum

@Carl、それは本当に素晴らしい気持ちです。

素晴らしい質問の発言のために+1。完全に同意する。また、ポイント2と3に完全に同意します。
KeesDijk

コモディティ化の傾向が近い将来に逆転することはないと思います。ほとんどの企業のソフトウェアショップでの傾向は、役割の超専門化(ピジョンホール)に向かっています。
ビットツイダー

1
しかし、経済は私たちを仕事に追いやることができますが、そこでは自由や選択肢があまりありません。
crosenblum

1

私はそれが単に教育不足の結果として混乱したとは思わない。実際には、「ベストプラクティス」が仕事ごとに異なることを反映していると思います。「ベストプラクティス」は常に特定のコンテキスト内に基づいています。

仕事の最も一般的な分野のいくつかのクロスオーバーの多くが起こることがあります。ウェブ開発。しかし、ほとんどの仕事で特定の慣行に従事するのが良いという理由だけで、すべての仕事で使用されるべきであると信じるのは間違っていると思います。

あなたが従事するプラクティスは、あなたが仕事をより良くするものの分析と実験から生じるべきです。それらは盲目的な信念によって選択されるべきではありません。ネット上でしばしば何かが反響するからといって、それがあなたの状況の真実でも、真実でもない(すべての状況で)。


0

心を行使するための素晴らしい質問、私は何かをする必要があることに同意しますが、答えることは不可能だと思います。私の試み:

最初に一般的に創造性殺さないでください。私はケン・ロビンソンirに同意しなければなりませんこの素晴らしいTEDトークを見てください。私たちの教育システムは創造性を殺しているので、修正する必要があります。特にプログラマー向け。

2番目のティーチのようなパターン私たちの専門分野は十分に成熟していません。私たちは進むべき道だと思う多くの異なるものを持っていますが、私たちはそれらに本当に同意することはできません。(TDD、BDD、アジャイルvsウォーターフォール、必要なドキュメントの量、Javaまたは.Netなど)質問がどのような文脈で尋ねられているのかを知らずに正しい選択をすることはできません。また、1つのオプションしか知らない場合、正しい選択をすることはできません。これを教育に持ち帰ると、解決することは不可能に思えます。誰かがすべての可能なコンテキストとすべての可能なソリューションを知っていると期待することはできません。しかし、パターンを使用することで、一般的なソリューションと、適用されるコンテキスト、およびソリューションが故障した場合のコンテキストが得られるようになりました。私見これは私たちが教える必要がある方法です、

第三に、例免責事項を置きます。MSDN、ブログ、本などで示した例には問題があると思います。例は、作家が意図していることを理解するためにしばしば馬鹿げています。しかし、最も基本的な例では、すでに多くのレベルで決定が行われています。これらの例は、これらすべての他の決定が間違っていることを教えています。すべての例には、ポイントが何であり、一般的にすべきでないことを示す免責事項が必要であると思います。この素晴らしい例は、今日ここにブログされまし

Last Do Do Doもっとやるべきことがあると思う。私はほとんどのことをやって、失敗し、修正し、議論することを学びました。

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