チームリーダーとしての経験を積むために、私は最近、プログラマーを監督する任務を与えられました。
私が見つけたのは、彼が単純なif
条件の記述に問題を抱えているということです。彼はstring
に問題があります。そして、彼はaddClass
条件でjQueryのif
関数に変数を渡す方法を知りません。
そして、彼はいつfor
ループを使用するかを知りません。または、for
ループが何に使用されるかさえも。
彼にこれらの基本的な概念をすばやく理解させる方法は?
if
変数にaddClass
条件を使用する方法をGoogleに伝えました。しかし、彼はそれを見つけられなかったので、私は彼に早朝にそれをすぐに行うように言いました、彼がそれが何であるかという理由を述べていると話し合ったとき、私は彼にそれを行う方法を示すと言いました、そして彼は私に言いましたあなたは前にそれをするべきだった。
彼に何を返信すればいいですか?彼はあなたが私にすべてを教えるべきだと私に言っていますまたは私はそれをして毎回彼に見せるべきですか?それは時間がかかるかもしれません、そして私が仕事をしなければならないたびに。彼に自立してもらいたい。
免責事項:私のアドバイスに従う前に、マネージャーや人的資源部門に確認することをお勧めします。
わかりやすくシンプル:チームから彼を解雇します。
彼はプログラマーになるために必要な基本的なスキルを持っていません。あなたの会社は確かにプログラミング学校ではありません、そしてあなたはフルタイムのチームリーダーと学校の先生になることはできません。
将来的には、会社の採用プロセスに参加して、チームに所属する人を選択し、実装を支援する必要があります プログラマーの採用のベストプラクティス 。そうしないと、チームリーダーとしての目標を達成するのに苦労するでしょう。チームリーダーがあなたの会社の採用プロセスに関与していない場合、あなたができる最善のことは、プログラマーであり続けるか、あなたの役割に伴う責任を与える新しい会社を見つけることです。
チームリーダーとして、上司に「この人は私のチームには適していない」と言って行動しない場合、あなたはもっと関与するのではなく、不必要な手持ちで時間を失う責任があります。会社のための建設的なタスク。上司の答えが何であれ、あなたはデューデリジェンスを行っているでしょう。
この特定のケースのために、十分な数のチームリーダーが最初の割り当てに失敗するのを見てきました。
基本に戻ります。コードの記述は、いくつかの重要なプログラミングスキルの1つにすぎません。彼が問題を解決できない場合、彼に言語構文を教えることは役に立ちません。
男に簡単な問題を与え、その問題を解決するために必要な手順を英語で書き留めてもらいます。 FizzBuzzや エラトステネスのふるい のように、本当にシンプルなものにします。
彼が解決策を思いついたら、座って、彼と一緒に手でそれを実行します。それが正しければ、素晴らしい。そうでない場合は、彼が問題を特定して解決するのを手伝ってください。彼のためにそれをしないでください-ただいくつかのガイダンスを提供してください。彼のふるい「プログラム」が8を放出する場合、8が素数ではないことを指摘し、それがどのように起こったかを尋ねるかもしれません。ここでのアイデアは、彼にプログラマーのように考えさせることです。彼はこれを一度行う方法を知っていたかもしれないので、うまくいけば、それは彼を軌道に戻すことの問題です。
「プログラム」が正しければ、英語から使用している言語に翻訳するように彼に依頼します。彼は本当にその言語を話さないように聞こえるので、この時点で彼はあなたからのより多くの助けを必要とするかもしれません。彼に、すべての新しい言語構成、その目的、およびその使用方法のリストを保持してもらいます。
翻訳が完了し、あなたにとって正しいように見えたら、彼にそれをコンピューターに入力してもらい、コンパイルして実行してもらいます。おそらく最初は実行されません。それは問題ありません。ここでの考え方は、コンパイラーの操作に慣れ、エラーの解釈を学ぶことです。繰り返しますが、おそらくあなたの助けが必要になります。
プログラムが実行されたら、正しい出力が生成されることを確認します。その場合は、新しい問題があるステップ1に戻ります。彼がプロセスに慣れ、単純な問題を解決できるようになるまで、必要に応じて繰り返します。その後、問題の複雑さを徐々に増やします。
ある時点で、彼のプログラムの1つが誤った結果を生成するか、まったく機能しなくなります。デバッガーやその他のツールを使用して問題を特定して修正する方法を彼に示します。
奇跡を期待しないでください。誰も一週間でプログラムすることを学びません。少しずつそれを維持してください、そしてうまくいけば、あなたはすぐにあなたのプロジェクトで彼にいくつかの簡単な現実世界のタスクを与えることができるでしょう。その過程で、彼は少なくともいくつかの基本的なスキルを学び、あなたが管理する人々がより効果的になるのを助ける経験を積むでしょう。
ここに見られる問題があります2。それらは非常に分離していますが、どちらも等しく重要です。
@Matthieuが示唆しているように、あなたにはbadの従業員がいるようです。このタイプは、非生産的(影響なし)であるだけでなく、進捗状況とチーム(士気、融合/ゲル化、親しみやすさ)。この従業員が採用された理由を理解する必要があります。それが人事エラー、または面接中の有能な嘘つきである場合は、経営陣(または上司)にこの従業員のプログラマーとしての雇用の終了を勧めることで解決できる可能性があります。おそらく彼らは有能なITシステム管理者であり、プログラミングを求められている理由に戸惑っています。 -過去に(わざと)めちゃくちゃになっていた人材紹介会社の面接をしたことがあるので、社員のせいではないかもしれません。
しかし騒ぐ前に知っておく必要があるかもしれない上級スタッフ/幹部との関係など、社内政治があるかもしれません。これは静かに行う必要があります前上司/上司以外の人に何かを言う。その場合、主に隔離(問題の封じ込め)と損傷制御である封じ込め戦略を開発する必要があります。
次に、2番目の問題は、この従業員を維持することになった場合、潜在的なプログラマーを育てることができる健全で前向きな環境で、安全に学習して進歩できる独自の環境、間違いなどを提供する必要があります。これは、最終的には「実際の」プロジェクトが必要になることを意味します。孤立していることを明確に知っている従業員は、さらに権利を剥奪され、意欲を失います。この従業員のために、ミニチュアの「キャリア開発」戦略を作成する必要があります。将来、彼らが有用な従業員になるには何が必要でしょうか?通常、教育および/またはトレーニングから始まります。職場での基本的なスキルの感覚を発達させることと組み合わされます(しばしば労働倫理と呼ばれます)。
年齢については明示的には触れていませんが、この従業員は若くて新しいので、おそらく経験が浅く、職場での付き合い方を学ぶように勧められると思います。人事部は、職場でどのように行動すべきかを学ぶ機会となる可能性のある「キャリア開発」トレーニングオプションを提案できる可能性があります。大規模な雇用者は、社内での選択肢さえあるかもしれません。多くの場合、人事がここで役立ちます。
あなたは何かがおかしいという正しい方向に進んでおり、行動を起こす前に将来の情報を収集する必要があると思います。
私も取るもう1つの行動は、従業員と一緒に座って自分自身について尋ねることです。そうすれば、彼らの経歴と経験についてもっと知ることができます。それが雇用の基礎である場合、家族のつながりが言及される傾向があります。
幸運を祈ります。
彼に必要なことをするための簡単なタスクとツールを与えて、彼を沈めたり泳いだりさせてください。
この男が少なくとも学ぶために仕事をしていなければ、彼はあなたにとってどんなに良いですか?すべてを知らなくても大丈夫ですが、彼があなたにすべてを説明してくれることを期待しているのなら、それはうまくいきません。
私たちをプログラマーにしているのは、学び、より良くなりたいという私たちの絶え間ない願望だと思います。この男があなたと一緒に仕事をすることができないか拒否した場合、彼がすることはあなたとあなたのチームを遅くすることだけです。
この男が必要としているのは現実のチェックであり、あなたは私の友人ができるだけ早く彼にそれを与えるべきです。
彼に何を返信すればいいですか?
「ほら、これは非常に基本的なことです。基本を教えるのは私の仕事ではありません。あなたに仕事を割り当て、それが正しく行われていることを確認するのが私の仕事です。この種のことを知らず、理解できない場合それなら、あなたはプログラマーではありません。トレーニングコースに参加してもらうことについてお伺いしますが、このようなことができなければ、仕事はできません。」
まず、@ Matthieuは、そもそもあなたのチームにいるべきではないという点で同意します。彼はチームの生産的なメンバーではなく、あなたのアカウントからは、チームになることにあまり関心がないようです。彼は自分の仕事をすることに興味がないようで、あなたが彼のためにそれをすることを期待しています。
また、「前にやるべきだった」という彼への直接の返答は、「いいえ、それはあなたの責任です。私はあなたにその仕事を与えました。あなたの能力を最大限に発揮するのはあなたの仕事です」という線に沿ったものです。
そうは言っても、もしあなたが彼に教えるのに行き詰まっている(またはあなたが学習環境にいることに気付いた)なら、ここに私が家庭教師としてプログラミングの基本について学ぶのを助けるためにしたいくつかのことがあります。
あなたが本当に彼が仕事で学ぶのを手伝いたいと思っていて、あなた自身に最もよく知られている複雑な理由(例えば、彼がCEOの息子であるような政治)のために彼を解雇しない/できないと仮定すると、言及された問題は本当に基本的ですプログラミングの経験が1学期ある学生は知っておく必要があります。私は次のことを提案します:
上司とのミーティングを手配して、彼がプログラマーとしての基本的な仕事にはまだ適していないことを知らせます。彼があなたが彼と一緒に働き続けるべきであると主張するならば、ステップ2に進んでください。
彼に正直になり、 http://www.codecademy.com/ などのWebサイトを紹介し、「HeadFirstJava」などのプログラミングの簡単な紹介をして彼を苦労させます。これらのリソースには彼の質問に対する答えが含まれていること、そしてあなたは助けたいと思っていますが、この期間中は本当に忙しいことを彼に伝えてください。簡単に連絡できるように方法を閉じてください。そうしないと、彼はあなたに頼ることになります。本当に忙しい行動!
彼が各就業日の終わりに彼の学習の日次および週次レポートを提出することを義務付けることによって彼の進歩を追跡し、彼が軌道に乗っていないかどうかを確認し、あなたが作ろうとしていることを示すために週に一度フィードバックを提供します彼のためにもしばらく。
彼が最低限の基本を習得したと感じたら、毎週の宿題として彼に小さな実際の仕事を優しく紹介し始めるかもしれません。
言い換えれば、彼はそのようなレベルにあるので、彼を初心者の学生のように扱ってください。彼が辞めることにした場合、あなたもできることをしたと思います。その間、私はあなたが彼の仕事をするか、可能であれば時間通りに物を出荷するために追加のヘルパーを得る必要があるのではないかと心配しています。
おそらく、その人は彼をチームから外したいと思っていた誰かによってあなたに割り当てられました。あなたに人を与えたい他のチームに注意してください。
しかし、もしあなたが彼と行き詰まっているなら、MIT Opencoursewareのようないくつかのオンラインハウツープログラムコースを見つけて、それを通して働くように彼に言ってください。
または、ヘルプデスク/電話のテクニカルサポートに彼を割り当てます。
一方、他の誰かを見つけるためにプロジェクトを時間どおりに完了させたいかどうかをマネージャーに伝えます。