7 ポイント 投稿者 GN⁺ 2023-12-21 | 1件のコメント | WhatsAppで共有

初級ソフトウェア開発者への助言

  • 人々が私の話を聞くのは、プログラミングの腕前ではなく文章力のためである。他の人の助言についても同じで、彼らの文章力ゆえに耳を傾けている。
  • ソフトウェアに関する科学的研究は非常に少なく、ほとんどの結論は不確かである。「客観的真実」についての主張は少し疑いながら、自分の状況にどう当てはめるか慎重に考えるべきである。
  • 間違ったことを学んだり、だまされたりすることをあまり心配しすぎず、気に入ったアイデアがあるなら試してみることを勧める。同僚に害を及ぼさない限り、最終的にはうまくいくはずである。

デバッグ: 9つのルール

  • 『デバッグ: 9つのルール』という本を読むことを勧める。図書館で借りてもいいし、会社に購入を依頼してもよい。初心者プログラマー向けの他の本がほとんど扱わない重要な技能を、わかりやすく教えてくれる。

正しいやり方の発見

  • いつかプログラミングの正しいやり方を発見し、みんながその方法を使えばこの分野はずっと良くなると確信するようになるだろう。
  • 正しいやり方にのめり込むなとは言わないが、その方法に夢中になっている事実を自覚し、自分のアイデンティティをその正しいやり方の人にしないよう助言する。
  • 結局のところ、プログラミングはどんな正しいやり方を使おうとも、もどかしく泥くさい作業であり、正しいやり方がなくても優れたソフトウェアは作れることを学ぶだろう。

ベストプラクティスの裏にある物語

  • ベストプラクティスの裏には、いつも恐ろしい話がある。ベストプラクティスを理解できないなら、それに着想を与えた恐怖のエピソードを探してみると役に立つだろう。
  • 多くのベストプラクティスや慣習は、歴史的・文化的要因の混ざり合いから生まれている。もはや関係のない問題を解決するために、メンターたちが使っていた方法に従っていることも多い。

さまざまなプログラミングの試み

  • キャリアの初期に可能であれば、さまざまな種類のプログラミングを試してみることを勧める。これは職を変えるという意味ではなく、ほとんどの会社では同時に複数の種類のプログラミングをしている。
  • さまざまなプログラミングを試すことで学べるだけでなく、自分が本当に好きなソフトウェア作業の種類を見つけられる確率も高められる。

ソフトウェア分野の変化

  • ソフトウェア分野は変化し続けており、フレームワークのトレッドミルに巻き込まれず、基礎技術を学ぶことに集中するよう助言する。
  • ソフトウェアでは情報が素早く広まる構造的な理由がある。インターネット、オープンソース、カンファレンスなどによって、アイデアを共有する障壁が低い。
  • 多くの技術は利用者が少数にとどまっているが、それらについて耳にする経路のために、広く採用されているように見えることがある。これが保守的なアプローチに意味がある理由である。

GN⁺の意見

  • この記事で最も重要なのは、開発者として自分自身の経験を通じて学び、成長していく過程である。他の人の助言は参考にできるが、最終的には自分の状況に合わせて適用することが重要である。
  • プログラミングの「正しいやり方」を探すことは個人的な旅であり、それを通じて多様なアプローチを学び、組み合わせる力を育てられる。
  • 技術の変化を理解し、新しいトレンドに対して合理的なアプローチを取ることは、持続可能な開発者キャリアのために不可欠である。

1件のコメント

 
GN⁺ 2023-12-21
Hacker Newsの意見
  • 1つ目のコメント要約:

    • 趣味プロジェクトで2人の開発者と協業した経験を共有している。
    • プロジェクトは小規模であるにもかかわらず、過剰なエンジニアリング要件への不満を述べている。
    • 「正しいやり方」に固執する開発者たちに対する批判的な見方を示している。
    • 自分も過去に似た経験があったが、実際に重要なのは動くコードだと気づいたと述べている。
  • 2つ目のコメント要約:

    • 15年の経験を持つソフトウェアの専門家が自身の経験を共有している。
    • 初期の仏教教育で学んだ教訓がソフトウェア開発にも有用だと感じている。
    • 開発者としての経験を通じて得た教訓を説明し、正しいやり方だけに執着しないことの重要性を強調している。
  • 3つ目のコメント要約:

    • TDD(Test-Driven Development)のような技術を学ぶことは、常に直接使うわけではなくても役に立つと主張している。
    • さまざまな技術や言語を学ぶことで、より良いコードを書く方法を学べると強調している。
  • 4つ目のコメント要約:

    • 「正しいやり方」への執着が開発者の成長を妨げる可能性があると指摘している。
    • 開発者が知識を広げるのに必要な注意力が不足しているか、今の立場に居心地の良さを感じすぎていることが原因かもしれないと推測している。
  • 5つ目のコメント要約:

    • コード、覚えておくべき情報、プロジェクトの詳細など、あらゆる形の状態(state)を最小化するよう助言している。
    • 状態を最小化することが問題解決に役立つと主張している。
  • 6つ目のコメント要約:

    • 優れた文章力は専門知識以上に読者へ大きな影響を与えることがあると述べている。
    • さまざまな業務タイプを試し、社内の他職種について学ぶことが重要だと助言している。
  • 7つ目のコメント要約:

    • YouTubeのような動画共有サービスで学んだ内容に対して懐疑的な姿勢を持つべきだと強調している。
    • ソフトウェア開発は問題を解決するためのものだと思い出させ、他の人と会話することでソフトウェアが解決すべき問題をよりよく理解できると助言している。
  • 8つ目のコメント要約:

    • デバッグに関する本を推薦し、この本がさまざまな技術的問題の解決に役立つと述べている。
    • その本は読みやすく興味深く、実用的な技術を提供してくれると評価している。
  • 9つ目のコメント要約:

    • コードを書くこと自体が目的ではなく、問題を解決するための手段であると強調している。
    • コードが解決すべき問題に集中すべきであり、そうでないならコードを書くのをやめて問題を明確にすべきだと助言している。
  • 10つ目のコメント要約:

    • 優れた文章力は他者とのコミュニケーションに役立ち、ソフトウェア開発者にとって重要だと述べている。
    • 初心者開発者に対して、自分の経験や考えを文章にしておくことを勧めており、それが後に役立つスキルになると助言している。