上級プログラマーの自信を取り戻す[終了]


21

私の上司は、私が彼が思ったほど賢くないことを知った。

私の経験からの例:

私はジュニアプログラマーであり、上司(シニアプログラマー)と私自身の2つのチームで働いています。

私は、私たちが働いている会社の内部Webアプリケーションの開発を任されました。バックエンドをフロントエンドに作成しました(データベース設計はすでに整っていて、サーバーテクノロジーが選択されていました)。彼は、動作中のWebアプリケーションを観察することで定期的に私の進捗状況をチェックし、それがやってくるのを喜んでいた。私がウェブアプリを完成させたとき、彼は最終製品がどれほどうまくできたか喜んでいた。

数日前、彼はコードに興味を持つようになったので、私は(フロントエンド用に)私がどのテクノロジーを使用したかを彼に話しました。Webアプリのフロントエンドには、Javascriptフレームワーク(Backbone.js)を使用しました。なぜそんなことをするのかと聞かれたとき。私の応答は、フレームワークがこのアプリに非常にうまく適合し、最初から作成した場合よりもコードをよりよく構築するのに役立つと感じたためです。...「まあ、それは気分を害します」彼の応答でした。

したがって、この例を考えると私の質問は:

上級プログラマーであり、ジュニアプログラマーの能力に自信を失った場合、自信を取り戻すために後輩から何を見たいですか?

編集:素晴らしい回答と協力的なフィードバックをありがとう!


4
私はアプリを知りませんが、適切なフレームワークは、特にあなたが初心者である場合は特に、自分で何かを書くよりも良い決定であるようです。そのようなコメントに失望させないでください。とは言っても、ペットプロジェクトの演習として、コードを一から作成することをお勧めします。
セバスチャンガイガー

50
あなたの先輩があなたが思っているほど賢くないと思ったことはありませんか?a)彼があなたの監督者であり、あなたがどのフレームワークを使用しているか知らなかった場合、彼は監督の役割に失敗しました。b)メリットのあるフレームワークを使用する価値が見当たらない場合、そこで失敗しました。
GrandmasterB

5
@ jmort253、いいえ、しかし彼は何か新しいことを学ばなければならないことに腹を立てていました。
fbynite

17
Red Flag!® ...彼は何か新しいことを学ばなければならないことに腹を立てていました。私は1973年からこのゲームに参加しており、平均して毎月新しいテクノロジーやツールを習得しなければならないと考えています。私は基本的にサーバーの男ですが、過去3か月で、Bootstrap、Enyo、「シングルページアプリ」フレームワークなどのプロジェクトのために、JSフロントエンドのやり方を完全に再考する必要がありました。サーバーはそれらをサポートします。
ピーターローウェル

3
ここでうまくやっていますが、「Backbone.js」を成長させる必要があります。一部の「シニア」プログラマーが考えていることを気にかけないでください。
カズ

回答:


27

彼があなたが作った製品を気に入ったが、Backboneの使用にこだわっている場合、あなたは両方とも希望する技術スタックについて会話する必要があります。

開発者として、すぐに利用できるツールを使用する必要があり、その結果、作業の流れをスムーズに移動する必要があります。彼がフロントエンドをゼロから構築することを期待していた場合、彼は明確であり、正当な理由があったはずです。

彼が最初にこの製品を楽しんだという事実は、あなたがうまくやったという十分な証拠であり、十分に「スマート」です。

tl; drよくやった。先輩と話して、彼があなたに何を期待しているのか見てみましょう。


15

彼は、そのような簡単な判断を下すために、私にとってあまり「シニア」ではないようです。「四角い車輪を再発明する」アンチパターンの代わりに、常に適切なフレームワークを使用する傾向があります。彼が本当に年長だったなら、彼は良いフレームワークの価値を理解し、知っているでしょう。せいぜい、プロセスのかなり早い段階で、別のMVC JavaScriptフレームワークよりもBackbone.jsの選択に疑問を呈することを期待しています。彼はあなたをジュニアとして適切に指導し、チェックアップすることに失敗し、適切な開発パスに沿ってあなたを助けました(彼の心の中)。

彼の側に方向性がないことを前提にプロジェクトを開発する際にあなたが正しい選択をしたと思われ(仮定)、より有能な開発者になることを目指しています。フレームワークの選択、フレームワークが適切であると感じた理由を彼に説明することは価値があると思います。あなたが進歩を遂げることができない場合、おそらく彼の目に良く見えることに価値はありません。あなただけがそれに答えることができます。


5

回答とコメントの大部分は、あなたとシニアが何らかの議論をする必要があり、あなたのシニアがあなたの選択に同意しなくても、あなたが意思決定を強化し、守ることが重要であるという点で正しい考えを持っています。

私が先輩として見たいものに関するあなたの質問に答えるために:

私は後輩の開発者が、たとえわずかな失望があっても立ち上がって彼の決定を守ることができるかどうかを見たいです。製品に満足しているが実装には満足していない場合、後輩が製品を提供するときに仕様でより具体的にすべきであると指摘することを期待します。私は彼らが彼らの立場に立つことができるようにしたいだけでなく、もしそうなれば彼らは正しい選択をしなかったかもしれないことを認めたいです。

PS:私は新しいことを学ぶ機会を与えてくれるので、私はプロレベルで間違っていることが証明されるのが大好きなシニアだということを言わなければなりません。そして、スプリント/タスクの終わりに驚きがない/少なくなるように、私のチームの他の人がどのように物事を行うかを知っているのが好きです。


良い答えですが、彼が開発をリードできなかったことは言及しませんでした(コードレビューはありませんか?)
BЈовић13年

@BЈовић-ありがとう。-私はそうしなかったのは、ただ先輩になってもあなただけが行動するわけではないと信じているからです。ジュニアが開発における何らかの「リーダーシップ」を期待している場合、またはその欠如に気づいた場合、彼らはそれをシニアの注意を引く必要があります。高齢者が「リーダーシップ」を提供しないことに決めた場合、彼らは与えられた地位と給与に値しません。:P
デビッド「はげた生inger」

3

まず、これは失敗ではなく機会として見られる必要があると思います。期待に明らかに不一致があり、それがどこから来たのか、すべてを軌道に戻すために何が起こる必要があるのか​​などは明確ではありません。

第二に、これを現在の失敗と考えている場合、またはあなたが望んでいない力関係をセットアップするほど賢くないと思う場合。したがって、防御可能なと判断した決定を行う場合は、ある程度までそれらを防御する意思がある必要があります。

私はあなたが会話をしたいというduggieawesomeに同意しますが、それだけでは十分ではありません。入る準備をし、設計のアイデアについて話し合い、なぜ自分がしたことをしたのかを説明し、推論を守る必要があります。また、正しい答えが1つだけではなく、シニアプログラマーが別のデザインを好む正当な理由がある可能性があることを受け入れる必要があります。あなたが知っていたことについて(あなたがより良く知っているべきであると決定しない限り、それは別の問題です)

通常、設計はトレードオフの問題であることに留意してください。トレードオフが何であるかを議論し、将来のデザインのトレードオフについて議論できるようにするために、両方ができることを確認したいと考えています。たぶん、あなたはあなたよりもあなたが同じページにいることを期待しているのでしょうか?たぶん、あなたの上司はばかです(時々起こるかもしれません)?要件について知っていることを考えると、間違った決定を本当に下したのでしょうか?しかし、心を開いて自信を持って入り、このことについて本当に話してください。

編集:スマートであることについて何かを追加したいと思います。私が知っている最も賢い人は、みんなから学ぶべきことがあると思っている人です。閉鎖されており、正しい方法が1つしかないと信じている人は、デザインなどの分野で想像力に富んだ良い決定を下すことになりません。アイデアを共有したり、アイデアをやり取りしたりすることは、賢明で自信があることの表れです。設計の違いは、必ずしも一方が他方より優れているという問題にはなりません。有能なデザイナーを想定して、異なるデザインは異なる方法で最適化されます。


3

私はここであなたが何も間違ったことをしていないという一般的な意見を持っています。シニア開発者として、彼はあなたがアプリケーションをどのように開発しているか、そして結果に興味を持っていたはずです。プロジェクトが完了した後にやって来て、彼がそれがどのように行われたかが嫌いだと言うのは、彼の側ではあまり専門的ではありません。

しかし、あなたの主な質問に答えるために:それは失われたかもしれない後、あなたはあなたの先輩の意見をどのように取り戻しますか?まず第一に、彼らはあなたがそれをやるべきだと思うか尋ねてください。理解できない場合は質問し、メモを取ります。学びたいことを示します。

第二に、あなたの次のタスクで、説明から除外されたものがあれば、あなたのアイデアを考え出し、それを上級開発者が実行します。b / cこれはあなたの意見を助けるものではありません。しかし、あなたがあなた自身のアイデアとあなた自身の解決策を思いついたら、彼らがあなたが正しい軌道に乗っているかどうか尋ねてください。これは、「やあ、yをやるときにxを使うつもりだ。」という簡単なメールと同じくらい簡単です。

第三に、彼らがあなたの様子を見るために頭をぽんと鳴らしたとき、あなたのコードを見ずに彼らを放置させないでください。

基本的に、通信回線を開きます。あなたの上級開発者は、あなたやあなたのコードにふさわしいタイプではないようですので、あなたはステップアップしてコミュニケーションをとる人である必要があります。関係者全員が、何かが当初より正確に考えられていないことを、後でよりも早く見つけることをお勧めします。


2

すぐにわかる必要があることの1つは、フレームワークの選択を包括的に防御できなかったために落胆したのか、それともフレームワークを使用したためかということです。

前者の場合、プロジェクトに含めるサードパーティのコードを評価および選択する方法を学習し、その決定を上司に明確に伝え、正当な理由でそれを支持する準備をすることが重要です。これは学ぶのが難しいスキルですが、経験が必要です。サードパーティのライブラリをプロジェクトに含めるとすぐに、他の開発者が完全に理解できないコンポーネントを導入したり、それらが完全に制御できなかったり、バグが含まれたりする可能性があるため、学ぶのも良いスキルです。セキュリティホールやその他の注意点があります。

あなたが最初からそれを書いていないので彼が失望しているなら、それは全く別の問題です。彼がフレームワーク(上記で説明したものなど)の使用を思いとどまらせる正当な理由があるか、またはそれらに対する会社のポリシーがあるか、作成できるフレームワークの選択を制限している可能性があります。いずれにせよ、彼はそれをあなたに伝え、彼が彼の側に失敗を示さなかったという事実を伝えるべきでした。一方、彼はフレームワークへの偏見のケースを持っているだけかもしれません。フレームワークがもたらす可能性のある問題にも関わらず、あなたが知っていると確信しているように、それらにも大きな利益があるからです。「Not Invented Here症候群」のためにすでに行われ、公開されている作業をやり直すことを意味する場合でも、すべてを自分で作成する必要があると彼は考えるかもしれません。

彼がフレームワークを使用してあなたを失望させた理由を説明しなかったことは、確かに彼の側の効果的なコミュニケーションの失敗です。彼は、答えが「何もない」とき、あなたが何を間違えたのか疑問に思うようになりました。また、彼はあなたに自分自身に疑問を抱かせました。そして、それはあなたが将来あなた自身のイニシアチブを使用する傾向をより少なくすることになります。優れたプログラマが持つ余裕のない特性がある場合、それはイニシアチブの欠如です。それは意図的ではないと確信していますが、彼の態度は士気を傷つけています。彼はあなたが仕事をどのように成し遂げたのかという細かい点でよくやった仕事に対する賞賛を突然取り下げました。

彼が上級プログラマーだからといって、彼を間違いなくするわけではありません。


2

ボスは何か新しいことを学ばなければならないことに腹を立てていると言ったフォローアップコメント。

あなたが言及していないこと以外に、私は彼に腹が立つでしょう。

新しい技術を学ぶことは私たちの仕事の大部分であり、すべてのチームは学習と自己改善を受け入れる必要があります。

しかし、経営者には他にも心配することがあります。彼らには会う期限があり、トレーニング予算が限られているか、まったくありません。

人的管理の観点から見ると、あなたの代わりにプロジェクトのフェーズ2で作業している誰かかもしれません。あなたの上司は、その仕事をするために他の誰かの耳に印を付けるかもしれません、そして、彼はその人が今何か新しいことのための学習曲線を持っていることを知っています。

そして今、前のBUTのBUT ....これはあなたのボスのせいです。あなたが新しくて若い場合、彼は少なくともいくつかのガイダンスを提供する必要がありました。それほどではありませんが、使用する技術に関するガイダンスを求めることもできます。


2

あなたが上級プログラマーであり、後輩プログラマーの能力に自信を失った場合、自信を取り戻すために後輩から何を見たいですか?

あなたが使用したフレームワークの使用方法を学びたくないと言ったことを考えると、質問は次のようになります。「上級プログラマーであり、自分から学ぶ能力を失った場合ジュニアプログラマー、自分を整理するにはどうすればいいですか?

プロの開発者として、学習をやめることはありません。今まで。そうした場合、停滞します。そして、それはいくつかの地域でうまくいくかもしれません。銀行には運用中の多くのレガシーシステムがあり、保守が必要なので、非常にゆっくりと移動する古いシステムの知識は問題ありません。私の友人は、銀行のCOBOLを編集して、自分が修正していたソースコードが約30年も触れられていなかったことを発見しました(元の著者は大学のCOBOL講師でした)。古いシステムを新しいシステムに統合する必要があるため、新しいことを学んでください。

上級開発者に戻りましょう。あなたは「彼は何か新しいことを学ばなければならないことに腹を立てている」と言っていましたが、私の意見では、それはかなり大きな警報ベルを鳴らします。

私はいつも学んでいます。私は毎年雇用主に教育費を徴収してもらいたいと思っていますが、実際に必要なものに近い金額を使うことはめったにありませんが、雇用可能なままでなければならないことを知っているので、私は£2000のどこかで過ごします毎年、私自身の教育でGBP(約3000米ドル)。

あなたの先輩が新しいことを学んでいない場合、彼らは貧弱な決定を下し始めます(おそらく既にそうです)、あなたが扱っているコードの品質は下がっていきます。彼らはわだちに立ち往生しており、取得する必要性を感じていないためですそのわだちから。

私が一緒に働いた最高の開発者の一人は、私が見る機会がなかったあらゆる種類のものを知っていたジュニア開発者でした。彼は私がしばしば圧倒されるテーブルにたくさん持ってきました。しかし、私は彼の努力に感謝し、私はそれによって「落胆」することはありませんでした。彼が時間をかけてすべての可能性を評価し、チームに提示してくれたことを嬉しく思いました。彼は現在、チームを率いており、テーブルに物を運ぶ開発者と彼が彼らから学んでいることについて私に語り続けています。

上級開発者は物事を学ぶ必要があります。彼らは自分の不備を隠すために感情的な言葉(「落胆」など)を使わないことを学ぶ必要があります。彼らは新しいフレームワークを学ぶ必要があります(全体を学ぶことができず、それが何をし、どのように問題を解決するかを学び、将来必要な場合は、より深く学ぶことに時間を費やすことができます)。そして、彼らは常に学習し続けなければならない仕事にいることを学ぶ必要があります。

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