web-dev-qa-db-ja.com

プロフェッショナルコードレビュー/メンタリングは提供されていますか?

私は、非営利/慈善プロジェクトだけでなく、いくつかの個人的なプロジェクトにも携わってきた新しい開発者です。しかし、私は私のサークルの中で最も「上級」の開発者のようです。つまり、ほとんどの人が助けを求めて私に来て、助けが必要なとき、彼らは私を助けられません。

私はフルタイムのプログラミングの仕事を持っていないので、プロ級のコードレビューを取得する方法の点で少し迷っています。言い換えれば、私がフルタイムの仕事に応募する前に、私の現在のコードがどのように見えるか、どこを改善できるか、プログラマーとして私をどのように評価するかについて、信頼できる/評判の良い数人の意見を求めています。など...現在、私には少しも手がかりがないので、たとえそうだとしても、とにかく重要なのは私の意見だけではありません。もう1つの問題は、私のポートフォリオプロジェクトが「十分に良い」のか、雇用主が何を求めているのかという点で単なる冗談プロジェクトなのかわからないことです。私はもっ​​と大きなプロジェクトに取り組む必要があると考え続けていますが、それは永遠に続く可能性があります。問題は、インターネット上のランダムな見知らぬ人ではなく、地元の人と直接これを行うことです。その人のアドバイスが信頼できるかどうか、またはそれが私が行おうとしている場所と一致しているかどうかを判断する方法がないためです。センス。

このタイプのサービスはプログラミングコンサルタントによって提供されていますか?この問題に直面しているのは私だけではありません。独学のプログラマーとして、ポートフォリオやプロジェクトを立ち上げるとよく言われるので、これは非常に難しいですが、私のコードが「良い」かどうかを判断する方法は、次のような本から読んだものから自分自身の認識以外にはありません。ボブおじさんによるクリーンコードとスティーブマッコンネルによるコードコンプリート。もちろん、これのいくつかは主観的ですが、それは達成できないある種の専門的な基準がないという意味ではありません。アドバイスありがとうございます。

PS:「メンタリング」についてもよく耳にしますが、メンターを取得する方法をまったく知りません。私はメンターが大好きです、これは有料のサービスですか、それとも誰かがオフィスの文脈でより上級の同僚と通常持っているある種の関係ですか?私はYouTubeチャンネルではなく、実在の人物について話している。

2
the_endian

有料のメンタリングについて聞いたことがありません。その理由は2つあると思います。

  • 無料でメンターになるのは難しいことではないのに、なぜそれを払うのでしょうか。
  • 有償のメンターは、あなたを同業者ではなく有料の顧客と見なす傾向があります。これは、否定的な批評が必要な場合など、メンタリングに欠陥がある状況につながる可能性があります(あなたはあなたの手形を支払う人を批判したくないのですか?)

メンターの価値を判断するのが難しいということは、あなた自身のレベルを判断するのと同じ問題です。ただし、役立つ可能性のあるいくつかの手法があります。

1。複数のメンターが1人よりも優れています

あなたがメンターされている場合、alwaysはいくつかのメンターに耳を傾けます。特定のメンターの専門知識とは関係なく、中立的で客観的な批評とメンター自身の意見の間には狭い境界があります。たとえば、他の開発者を指導するとき、さまざまなテーマについて強い意見を共有することは珍しくありませんが、それらの意見はコミュニティ全体で共有されているわけではありません。

たとえば、プログラミングプロジェクトはスタイルルールに従う必要があると私は絶対に信じていますが、それらのルールは事前コミット中に必ず適用する必要があります。この慣行に反対するかもしれません。これは、1人以上の開発者のチームがバージョンを使用する必要があるなど、業界で真実であると世界的に認められている概念とは対照的です。コントロール。

あなたのメンターの意見が絶対的な真実であると思わせられないためには、他のメンターによって与えられた情報と情報を関連付けることが不可欠です。もちろん、情報が異なる場合、誰が正しいかを見つけるのはあなた次第です。あるいは、すべてのメンターが意見を述べている場合は、どの意見をフォローしたいかはあなた次第です。

2。メンターのプロフィール

ソフトウェア開発分野のすべてを知ることはできません。メンターは、学んだ言語、読んだ本、メンバーのコミュニティに基づいて、知識と専門知識をあなたと共有します。

関数型言語を日常的に使用している人は、使用する言語に関係なく、コレクションを操作するときに関数型スタイルを採用するように促します。広範な最適化を必要とする組み込みシステムやソフトウェアで作業する人は、プロファイリング、ベンチマーク、最適化を行います。

あなたの目標に応じて、一部のメンターは他のメンターよりあなたによく合うかもしれません。あなたがウェブ開発者であるなら、彼ら自身がウェブ開発に積極的であるか、少なくとも最近活動していたメンターを持つことが賢明かもしれません。組み込みソフトウェアに取り組んでいる場合、Web開発者はあなたにとって最良のメンターではないかもしれません。

。メンターに関する信頼できるフィードバック

優れたメンターを選ぶことは、企業にとって優れた開発者を選ぶことと同じです。したがって、技術は企業が人を雇うために使用するものと非常に似ている必要があります。

  • CVはあま​​り関係ありません。履歴書は何度も彼らの無関係を示した。これらは今でも多くの企業で人気のあるフィルタリング手法として使用されていますが(主に優れた選択肢がないため)、印象的なCVが候補者に適しているとは限らないことは明らかです(印象的でないCVは、非常に興味深いものを隠すことがあります)。人)。

  • 関連する要素に焦点を当てる:オープンソースプロジェクト。コミュニティへの貢献。ブログ記事;ビデオ;その人が書いたチュートリアル。技術、プロトコル、開発ツール、その人が取り組んだプログラミング言語。これらすべての要素は、潜在的なメンターに関する貴重な情報を提供する可能性があります。一部の要素はその人の関与のみを示しますが、他の要素にはピアレビューの追加の利点があります。たとえば、StackExchangeは、ピアレビューの観点から特に興味深いものです。科学の世界で使用されているシステムと同様のメリットはありませんが、StackExchangeレピュテーションシステムは、熟練していない人が多くのポイントを獲得するためにだまされることはほとんどありません。

  • コミュニケーションスキルが鍵となります。スキルを効果的に伝えることができない専門家は、メンターとしては役に立たず、チームのメンバーとしては有害です。

3

フリーランスの開発者がコードをレビューできるこのスタックエクスチェンジでは、キャリアに関するアドバイスを提供することはトピックから外れていますが、質問するのは良い質問だと思います。また、あなたがこの種のことを尋ねているのは良いことです、好奇心と改善したいという願望は私が開発者に見つけた最高の資質のいくつかです。

  • codereview.stackexchange.com があります
  • 「オープンソース」コミュニティは、コードをレビューして、チームでどの程度うまく働いているかを知るためのかなり良い方法です。
    • 取り組みたいプロジェクトや参加したいプロジェクトについては、GitHubをご覧ください。
    • 自分のプロジェクトを開始して、他の人に投資してもらう
  • 友人はしばしば迅速なレビューに適しています

たとえプログラミングがあなたより下手であっても、人々を過小評価しないでください。彼らの意見はまだ持つ価値があります。

  • 彼らにあなたのコードをレビューしてもらってください。 それが理解できたかどうかを尋ねる
  • プログラミングは、あなたが知らないことを彼らが知ることができるほど広い領域です
  • 彼らは物事に異なる優先順位を付け、あなたが逃した何かに気づくかもしれません。

専門的には、プロジェクトの事前知識がない人、初歩的なプログラミングスキルを持つ人、または類似した人がコードを読みやすくする必要があります。あなたも彼らが何かを学ぶのを手伝うかもしれません。

7
Erdrik Ironrose

他の人が言ったことに加えて、あなたの地域にプログラミンググループがあるかどうかを確認することをお勧めします。私は多くのiOSとmacOSのことをやっていて、全国的にNSCoder NightとCocoaHeadsが集まっています。まだいくつかない場合は、自分で開始できます。月に一度、コーヒーショップやメーカーのスペースで会い、1人を選んで、グループの残りの人に1つのトピックについて教えます。データベース、グラフィックス、ネットワーキングなどが考えられます。私はこれらのタイプの集まりから多くを学びました。

0
user1118321