あなたのプロジェクトに新人開発者を含める方法は?


9

私たちは、ゼロまたは一般的な趣味レベルのプログラミング経験のある一部の従業員に、私からワークロードを取り除くように教えることを検討しています。

私たちはPython / Djangoを使用しています。Python/ Djangoには、最も親しみやすいドキュメントがいくつかあり、学ぶのも簡単です。

私は現在、私の会社の1人のIT部門であり、会社が必要とするすべてを開発するのに十分な時間がありません。私たちはソフトウェア会社ではありませんが、社内ITにタスクの自動化、顧客サービス機能の開発、データの分析などを行うのに役立ちます。

コードベースで作業している新人をどのようにゆっくりと統合しますか?あなたがインターンを持っているとしましょう-彼らは何をしますか?私たちは何年もの間彼らのミス/奇妙なデザインパターンに対処するつもりなので、私は彼らにコアコードを設計または開発させることを完全にためらっています。主な開発者として、コードを回避する必要があるのは私です。

私の考えは、新人が既存のコードを変更するだけで、コア機能を構築しないようにすることでした。機能自体をビルドした、簡単なタスクで彼らに作業をオフロードできます。

私たちは従業員に会社で価値を学び/見つけてもらいたいのですが、私たちは一般的に「階級を上げる」人々を持っています。

一般/趣味レベルのプログラミングを持つ人々を教えることは標準的な練習ですか?ソフトウェア会社の「ランクを上げる」ことは、ジュニアレベルのプログラマにとってどのように機能しますか?彼らはいつコアコードに取り組み始めますか?

ヘルプよりも被害が大きくなるかどうか、またはコアサイトコード(分離環境?)を危険にさらすことなくヘルプを使用できる方法があるかどうかを判断しようとしています。


3
「ジェネラル/ホビイストレベルのプログラミング」は、「ジュニアレベルのプログラマー」とはかなり違うと思います。前者は、システムを微調整するために週に1回シェル/バッチスクリプトをいじる人のように聞こえます。後者は、CSの学位を取得したばかりの人のように聞こえます。これら2つのタイプの処理は非常に異なります。Just sayin '...
FrustratedWithFormsDesigner

@FrustratedWithFormsDesignerありがとうございます!用語がよくわかりません。私が言う趣味家は、いくつかのプログラミング言語を独学し、プログラムを1つまたは2つ構築し、ウェブサイトを作成しました。ジュニアレベル私はソフトウェア会社で採用されるのに十分なプログラミング知識を持っている人だと思いましたが、今ではこれら2つは(私の定義では)かなり似ているかもしれませんか?
冨田裕二

3
正式なCS教育を受けた経験のない若者-世間知らずですが才能があり、新しいことをすばやく学び、仕事の実践に適応します。「趣味の獣医」は、自分の習慣の奴隷であることが多く、変化に消極的であり、エコシステムにうまく適合できない場合があるため、はるかに危険です。しかし、それにもかかわらず、彼らに自由を与えることによってのみ、あなたは彼らの愚かさ、または賢さを見ることができます。あなたが彼らに原始的な平凡な仕事を与えるならば、彼らは仕事について何も学ばず、あなたもそれらについて何も学べないでしょう。
c69

@ c69ありがとう!私の質問は、新人を私たちのコードベースに簡単にする方法ですか?目標は、それらをピジョンホールにすることではなく、平凡なタスクのみを実行することです。誰かに私たちのコードベースへのアクセスを許可し、彼らの最初のdjango /プログラミングプロジェクトを私たちのシステムの一部として構築することは危険です(または、これはあなたが何を意味するのでしょうか?試してみてください?)。PS:趣味の獣医について正式に言及
冨田裕二

回答:


5

あなたが新人を役に立たない役割に委任するならば、彼/彼女は実質的なことを決して学ばないでしょう、そして、彼らが確かにあなたにとってあまりにあまり役に立たないでしょう。

アドバイスをさせてください。学校での最初のIT職は、比較的小規模な製造会社でした。そこでは、セールスエンジニアがさまざまなプロジェクトの見積もりを書くのを支援するソフトウェアに取り組んでいました。私はまた、会社全体でITを独力で管理するIT担当者を支援することになっていた。

その男はストレスがたまりすぎて混乱し、私が今まで働いた中で最悪のマイクロ管理完璧主義者でした。私は彼のワークロードを軽くすることになっていたが、彼は私が仕事をしていたときと同じくらい心配して私と私の仕事をチェックするのにほとんど同じ時間を費やした(彼はほとんどオフィスを離れることはなかった、彼は家族を軽蔑したと思う)。私がたった一つの間違いを犯した場合、彼は完全に失望し、「私はこれであなたを信用すべきではないと知っていたので、それはあまりにも重要でした!」と他の暴言。

私が主張しようとしているのは、そうではないということです。それは新人を悲惨にし、彼らの士気を破壊するだけでなく、あなたは彼らの仕事を心配して両端でろうそくを燃やすでしょう。

彼らに自分自身を証明する機会を与えますが、正式な技術仕様、設計レビュー、およびコードレビューがあります。また、それらが生成するものをテストして、要件を満たしていることを確認できます。

それらのいくつかがどれほど有能であるかに驚くかもしれません。


1
また、新人が役立たないと感じている役割に委任した場合、彼らはより良い仕事を見つけるために得た経験を少ししか受け取らないことにも注意してください。新人でも指示に従うことができるはずですが、メンテナンスタスクは問題ありませんが、彼らの成長を支援する意欲がない限り、常に新人がいることを期待しています。
ラムハウンド、2011年

あなたの入力をありがとう-それは非常に感謝しています。文字通り経験のない人を考えているので、どこかから始めなければなりません。Python 101の紹介、djangoチュートリアル、bashスクリプト、バージョン管理の使用方法など、マイクロ管理ではないという警告に注意します。はい!私たちの人々はかなり有能だと思います。
冨田裕二

5

以前はソフトウェアショップで働いていましたが、そこでは大きなプロジェクトをコーディングしていました(大幅な立ち上げ時間)。

新人は獣医のように扱われた。彼らは技術リーダーに割り当てられ、「自分で」機能を開始しました。建築様式が決定されましたが、彼らは自由に独自のすっきりとしたデザインを思いつくことができました。「奇妙なデザインパターン」は、(毎日の)ピアコードレビュー中に取り除かれました。

私が別の店で見た1つの間違い:「コア」は難しく、「ui」は簡単だと思います。ルーキーはコアでより簡単な時間を過ごし、UIフロントエンドコードをめちゃくちゃにしました。

幸運を!


1
頻繁なコードレビューは、私が提案しようとしていたことです。それはあなたの一日のうち1時間かかり、あなたが彼らに何が悪いのか教えるとき、彼らはそれを修正しなければならず、彼らのスキルが向上するので、スペードで返済します。しばらくすると、コードレビューに最初の数週間ほど多くの時間を費やす必要がなくなります。また、ソース管理の使用方法(および使用方法)を知っていることを確認してください。そうすれば、間違いはかなり簡単に元に戻すことができます。
HLGEM 2011年

1
@isgab-効果的なユーザーインターフェイス設計は、30年の経験があっても達成するのが困難です。MicrosoftとAppleを見ると、どちらもユーザーインターフェイスがどのように機能するかについて異なる考えを持っています。
ラムハウンド、2011年

コアvs uiについてあなたが言っていることが大好きです。私は両方に長所と短所があると思いました(バックエンドの新人、フロントエンドの新人)。一方では、HTMLはしばしば経験についてです-何がうまくいかないかを知ること。プロジェクトが分離されているという点でも「安全」です。バックエンドは正確に機能しますが、現在ビルドされているコードは、将来的に維持および処理する必要があります。
冨田裕二

2

最初に、実装するための小さな個別の機能を提供する必要があります。約束する入力と期待する出力を定義し、それらにドットを接続させます。そして、チームリーダーのコードレビューを使用して品質を確保し、ピアレビューを使用して、お互いから学び、自分自身を教えるようにトレーニングします。

これは、分離された方法でロジックの原子単位を構築できるようにする全体的なアプリケーションアーキテクチャがあることを前提としています。そうでなければ、あなたは悲しみの世界に向かっています。それは、複数の開発者がそこで働いているためです。それは、古いプロの場合でもそうです。

必然的に、それに取り掛かり、すばやく学び、立ち上がる特定の人々がいます。彼らの現在の能力を超えたほんの小さなステップであるタスクを彼らに供給し続けることを確認してください。不可能から始まる仕事のような誰かを教育するものは何もありません。必然的に、それを試して実際につかまえない人もいます。それらの人々は彼らの努力に感謝され、そして何か他のものに優雅に移行されるべきです。


1
「彼らの現在の能力を超えたほんの小さなステップであるタスクを彼らに供給し続けることを確認してください。」-これが行われていない場合、それらの人々は知識を別の会社に持って行くことに気付くかもしれません。あなたが新人に餌を与え、訓練し、そして歩かなければ、彼らはあなたの犬のように逃げるでしょう。
ラムハウンド、2011年

その他のオプションは次のとおりです:既に(適切な)実装機能を提供して、出力を比較できるようにします
Etsitpab Nioliv 2017年

1

あなたの会社は、他の従業員から離れて時間を割く余裕がありますが、プログラミングの経験を持つ人を雇わないことはできますか?トレーニング、トラブルシューティング、および手持ちの時間はコストがかかります。

私がこの分野でこれまでに行ったことは、レポートライターやExcel用のVBA /マクロコードの使い方を教えることだけです。私は通常、再利用するデータセットを提供します。彼らがSQLを学ぶのは一続きですが、私はそれが終わったのを見てきました(彼らが外部トレーニングを受けるために支払われます)。これらの人々のほとんどは、コーディングを学ぶ能力を持っているが、時間をかけなかったかもしれない金融アナリストでした。運用中の何人かの人とこれを試すことはロングショットです。

適切な人材を確保し、彼らが本当にコーディングを学びたいと思っていることを確認してください。彼らにすべてを教える時間はありません。彼らは自分でたくさんしなければならないでしょう。


私は、これまでに経験のない(または非常に少量の)人々について話しているので、プロのプログラマーを雇うために必要な給与等級については話していません。
冨田祐二

ああ、そして私たちの会社は少し家族のようなものです:私たちは自分ですべてを行い、人々にランクを上げてもらいたいです。私は主に新人のワークフローを私のものにどのように構成するか興味がありました。
冨田祐二

0

@louisgabはコードレビューについて正しかった。それも私の最初のステップです。あなたが気になるであろう重要なことの1つは、あなたがコードレビューで、または後でそれを見つけても、彼ら自身の間違いを修正しなければならないことを確認することです。彼らは勝ちました;彼らがそれらを修正しなければならない限り、彼らが間違いを犯していることにさえ気づいていません。彼らが使用した解決策がなぜ間違いであり、なぜあなたが提案しているものがより良いのかについても説明してください。最初の数週間は、他の人がいるために仕事が増えたように感じられますが、コードのレビューを行って説明し、彼らが学ぶことを期待すれば、数週間であなただけの場合よりもはるかに役立つでしょう。すべて自分でやる。しかし、経営陣が認識しておく必要のある最新の速度でそれらを取得するために、あなたの時間の最初のコミットメントがあります。

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