大学に行く前の数ヶ月間、私たちと一緒にインターンが始まります。インターンは高校を卒業したばかりで、プログラミングの経験はありますが、大学レベルのコンピュータサイエンスコースを受講したことも、プログラミングの仕事をしたこともありません。さらに、インターンは当店でテクノロジーの99%を使用したことがありません。チームのリーダー/マネージャーとして、チームが実行する必要のある100の異なるプログラミングタスクがあることを知っています。私はインターンに負荷をかけたくないのですが、インターンが役立つようにしたいのです。
同様の経験を持つ誰かから、以下に関してインターンをどのように管理しましたか?
質問に答えて、1〜4で最も効果があったと思われる点を挙げてください。
何か忘れましたか?
インターンをマイクロマネージメントしましたか、それとも気楽でしたか?
私たちが取り組んでいるプロジェクトはかなり高いストレスを受けていたので、それをインターンに伝えたかったのですが、あまりストレスをかけたくありませんでした。だから私たちはかなりのんびりしていた。
割り当てたタスクを実行する必要がありましたが、優先度は低かったです。つまり、彼らが行っていた部分は「クリティカルパスから外れている」ということです。
そうは言っても、最初はインターンとかなりの時間を過ごしました。これが「マイクロマネージメント」であったのか、単に「スピードを上げた」のかは判断が難しい。
コードベースの一部について説明しましたか、それともインターンに任せて理解しましたか?
私たちが始めたのは、いくつかのテストを自動化することでした。コードベースはQtでしたが、使用していたライブラリはコマンドラインツールでラップできました。すでにいくつか完了していますが、さらにいくつか(APIの異なる部分)が必要なので、既存のインターンをインターンに紹介し、新しいインターンに何が必要かを示しました。
ソース管理へのアクセスをインターンに与えましたか、それとも確認後に変更を手動でコミットしましたか?
最初の数週間は、ソース管理の外で彼らを働かせましたが、しばらくすると、それは二重の仕事であることが判明したので、直接アクセスできるようにしました。確かに、彼らはそれを1、2回吹き飛ばしましたが、メインの開発チームと同じかそれ以上(またはそれ以下)でした。
コーディング標準/ルールを適用しましたか?
間違いなく。これは本当のプロジェクトでした。標準の一部に簡単に準拠できるツールがいくつかありましたが、他のビットを学ぶ必要がありました。
何か忘れましたか?
あんまり。私が付け加える唯一のことは、あなたがインターンを専門家として扱うべきであるということです。おそらく(まだ)プロの開発者ではなく、プロとしてです。つまり、彼らを信頼し、あなたが彼らを信頼していることを彼らに知らせます。彼らが間違いを犯したとしても、それは問題ありません。彼らが信頼を裏切る(または誤用する)場合、それは問題です。
気づいたらすぐに問題を認識させます。繰り返しますが、専門的に。
ええと、私は雇用主ではなく、現在はインターンなので、私の視点からあなたに何かを与えることができると思いました。私は2年生を終えたばかりで、サプライヤのWeb開発を行う人々のチーム(データベースの管理やその他すべての楽しいもののような)でインターンシップを獲得しました。あなたのインターンがどの程度経験を積んだかはわかりませんが、オブジェクト指向プログラミングのクラスを数年経験したので、基本的なことはやや落ち込んでいました。おもしろいのは、サーバー側のプログラミング経験がほとんどなかったことです。それが、このチームの人々がしたことです。新しいコンセプトをたくさん学ばなければなりませんでした。私が雇われたとき、彼らは私がそれについての経験がないことを知っているので、それは学習経験になるだろうとさえ言った。
これは非常に研究志向のインターンシップです。ほとんどのプログラミングインターンシップは、学生が採用したテクノロジーについての経験がない可能性があるためだと思います。彼らは、私が障害にぶつかったとき、または単に何か新しいことを知りたいときに、GoogleとStackExchange Webサイトを使用することを勧めています。そうは言っても、インターンがマイクロマネジメントを行う必要はないと思います。なぜなら、彼または彼女が、そのテクノロジーについてできる限りのことを学びたくないのなら、彼らはおそらくそこで働くべきではないからです。私は、インターンシップのプログラミングは、インターンまたは従業員が学び、進化する意欲と意欲を示している限り、かなりのんびりしているべきだと思います。
すでに.NETフレームワークの経験はありましたが、最初の週にメンターが私をトレーニングルームに連れて行って、できるだけ多くのトレーニングを行いました。私たちは基本から始め、私がすでに知っている、または快適であることに気付いたら、彼に知らせました。誤解しないでください。私たちはwasteの時間をすべての小さなことをやり直すことでなくしました。
ソース管理に関するあなたの質問については、おそらくあなた次第、またはどれだけあなたがインターンを信頼するかです。個人的には、すべての企業開発データベースと、チームやメンターがアクセスできるほとんどの項目にアクセスできます。しかし、私は大きな変更をコミットする前に、彼らにそれを行わせなければならないので、それらをチェックしてから変更をコミットするのが最善かもしれません。
プログラミングは、構文を記憶し、多くのコードをクランクアウトできるようにすることではありません。それは、私のような多くの初心者が学んでいることだと思います。私のメンターが私に示す特定の事柄があり、彼はこれが彼がそれをするのが好きな方法であり、それを行う他の方法があると具体的に言っています。彼は何かを行うには複数の方法があるが、何かを行うには間違った方法もあると述べた。ですから、インターンにコードの背後にある概念を理解してもらいながら、あなたのやり方が唯一の方法ではないことを彼らに確実に知ってもらうことが重要だと思います。
私はインターンシップの3週目です。これまでのところ素晴らしい経験でした。これが少しお役に立てば幸いです。
あなたが誰かを管理するのと同じ:
インターンは他の従業員と明確に異なるわけではありません。他の従業員と同じように、自分の能力と性格を持つ個人のように扱う必要があります。
バージョン管理について:自分のブランチにコミットさせる。 (gitのような)分散システムでは、誰もがとにかくブランチにコミットしているはずです。
私の方法は、彼らができることを知っているタスクでインターンを開始することですが、私は私にとって役立つと思います。いくつかの例は、いくつかのHTMLのクリーンアップ、コードへの細かい変更などです。
私は彼らに最初からソース管理の使い方を教え、彼らがそれを終えたときに彼らの仕事をチェックしました。彼らがタスクを正常に完了した場合、私は少し複雑な新しいタスクを彼らに与えました。新しいコードベース/ツール/言語を人々に習得させる最も簡単な方法は、彼らに実際にやることを与え、成功するために必要なリソースを紹介することです。
私の意見では、あなたがインターンを教えることができる最も重要なことは、自分で学ぶ方法です。何を検索し、どこで答えを探すべきかを理解するのに十分な情報を提供しますが、スプーンで餌を与えるのはやめます。あなたが与えるタスクの複雑さを徐々に上げていくと、彼らがどれだけ迅速にスピードアップできるかに驚かれることでしょう。
私は、10年未満のインターンであるという個人的な経験から話しています。
初日から私には多くのことが期待されていましたが、私は決して管理されていませんでした。初日から戦略的に重要であるが優先度は高くないカスタムエンタープライズモジュールを作成する必要がありました。時間管理と成果物に関して、上司は厳しいが公平でした。邪魔としてではなく、従業員として扱われることに感謝しました。
上司が私のインターンシップで私に与えた最大の影響は、私が何を求めているのかを考えずに質問をやめるように彼に頼まれたときでした。自分で質問に答えられるかどうかを徹底的に調査するように頼まれました。これにより、しばらくの間、質問をすることを恐れましたが、長期的には、より優れたプログラマーとより効果的な従業員になる研究と分析のスキルを学ぶことができました。
私のコードは、実稼働コードに適用される前にレビューされました。インターンのための安全なテスト環境を確立することを強くお勧めします。
あなたのための2つの言葉。ペアプログラミング。彼をチームの上級メンバーとペアにします。あなたの先輩がいい人なら、それは邪魔になりません。インターンがいい人なら、数日の観察の後に貢献するでしょう。あなたが来年も彼を招待すべきかどうかを判断する素晴らしい方法です。
インターンをマイクロマネージメントしましたか、それとも気楽でしたか?
1-簡単に行くと、インターンを信頼していることがわかりますが、頻繁にチェックポイントとマイルストーンを設定します。毎日のスクラムは、彼らがいる場所のベースに触れるためにも非常にうまく機能します。
コードベースの一部について説明しましたか、それともインターンに任せて理解しましたか?
2-両方のあなたの悪化を保存し、広いストロークを説明し、難しい部分のいくつかがどこにあると思うかを説明します。それ以上に、インターンに率先してもらい、あなたが質問に対応できることを明確にしてください(それで、対応できるようになります)。コードの文書化が優れているほど、実行する必要のあるアクティブな役割が少なくなります。
ソース管理へのアクセスをインターンに与えましたか、それとも確認後に変更を手動でコミットしましたか?
3-手動での取り組みにより、品質基準のコードを確認する機会が得られると思いますが、実際のインターンにフィードバックを提供し、改善のためのルートを提案する絶好の機会も提供します(ただし、単なるセッションではありません) )。この場合、あなたのインターンの経験が不足しているため、コミットを許可するのではなく、おそらくレビューしたいと思います。
コーディング標準/ルールを適用しましたか?
4-はい。インターンシップは、現実の世界で期待されていることを学ぶことです。制作された作品は、あなたにとって価値のあるものでなければなりませんが、インターンにとっても価値のあるものでなければなりません。
インターンがその出力を生成するためにより多くの時間、ガイダンス、忍耐力、および支援を必要とすることを基本的に受け入れる限り、プロ品質の出力を期待することは問題ありません。
お役に立てれば
最初に、実行する必要がある最も単純なタスクを提供し、熟練度に応じて、より複雑なタスクに進みます。
それらを効果的に管理するには:
全体として、必要なものにそれらを成形しますが、自分で学ぶ時間を与えます。彼らはあなたのための質問をするので、彼らが利用できるようにします。
一度はこのような状況がありました。大学が始まる直前の夏にインターンがやってきた。しかし、彼はコンピューターサイエンスプログラムに参加していました。
実際に彼が自分でコードを作成することはできませんでした。私たちは彼が他の開発者をシャドウイングすることから始めました。私が彼を隠したとき、私たちは彼が楽しんでいるように見えるいくつかのペアプログラミングをしました。これは彼に質問をしながらいくつかのコードを書く機会を与えました。それは彼にとって良い学習経験でした。
人と交流した後、私たちは彼をQAチームに入れることにしました。リードQAは、テスト計画の実行方法、欠陥のチケットの作成方法、およびQA環境でのさまざまなタスクの実行方法について彼に説明しました。彼は実際、チームで最高のQAの1人であることがわかりました。
あなたの質問も。
別のインターンの視点。
私はビジネスとしてソフトウェア開発をしなかった会社で働いています。ただし、テクノロジー関連の問題の解決を担当するIT部門があります。私はここで2つのインターンシップを行っており、私はまだ学校にいるので、パートタイムの従業員になっています。
私が始めたとき、他に4人の「プログラマー」がいました。そのうち2人はSQLレポートを主に処理する請負業者であり、他の2人と1人は、会社全体が依然としてヒップホップに結びついているレガシーシステムも扱っていました。
上司に来たとき、上司は私が考えていたこれらのプロジェクトすべてに取り組むことを望んでいましたが、単に取り組むためのリソースがありませんでした。それ以来、タスクの自動化と、使用している一部のソフトウェアからデータを取得し、ライブアップデートWebプラットフォームを介してデータを利用できるようにすることに取り組んできました。さらに、私は顧客向けのiPhoneアプリやその他のプロジェクトに取り組んでおり、Webプラットフォームを通じて顧客に連絡することで会社にお金をもたらすのを支援しています。
ほとんどの場合、作業中は監督されておらず、最終結果を表示し、自分が行ったことについてフィードバックを取っています。さらに、iPhoneのプログラミングなど、馴染みのないテクノロジーを使用した多くのプロジェクトで、かなりの深みに陥っています。
私は1と思います。マイクロ管理をしないで、あなたのインターンで簡単に行ってください。支援を必要とする場所を調査および確認するための余地を与えます。最初から彼または彼女の首を呼吸しないでください。簡単ですが、結果が予想されることを知ってください。
2.これは本当に「依存する」種類の質問です。既存のコードベースを必要とするコードをインターンで作成する場合は、そうする必要があります。説明する必要があります。彼らが既存のコードベースを使用せず、プロジェクトの他の部分からある程度離れている何かに取り組んでいる場合、コードベースを説明するメリットがわかりません。
3.ソース管理は改訂を許可しますか?誰かがコードを提出する前に自分のコードを調べてもらい、提出を許可するのは良いことかもしれません。他のメンバーがあなたのインターンのコードを提出しなければならないのは退屈だと思われます。
4.Yesコーディング標準とルールを適用する必要があります。インターンは学ぶためにそこにいます!