より良いプログラマーになるには?7つの提案をまとめました

より良いプログラマーになるには? 7つの提案をまとめました

 

数人の人が、Reactカンファレンスで、より良いプログラマーになるための質問を私に尋ねました。人々は私を非常に経験豊富なプログラマーと見なしているので、私のアドバイスを聞く価値があります。長年にわたってプログラミングにおける私の「考え方」を共有できると思います。

簡単に自己紹介させてください。私の名前はジェームスロングです。私は32歳で、10年以上の豊富な仕事の経験があります。しかし、ここ数年で仕事に自信が持てるようになりました。今でも自分は疑い続けています。重要なのは、この感情が消えないということです。それを無視して、技術的な知識を掘り下げ、経験を積み重ねてください。

これらは、あなたのスキルを向上させるためのほんの一部の提案であることを改めて思い出させてください。最終的には、何が自分に適しているかを理解する必要があります。

あなたに刺激を与えることができるが、彼らを崇拝しない人々を見つける

過去数年、私は多くの人々を賞賛し、それらを通して新しい技術に注意を払いました。私はそれらが正しいと信じており、私は彼らが何をしたかを研究し、多くを学びました。

これらの人々は非常に効率的で、才能があり、刺激的である傾向があります。あなたはそれらを見つけるために可能な限りのことをしなければなりません。

しかし、それらを崇拝しないでください。ツイッターで投稿を見るだけでは、手の届かないところにあるでしょう。しかし、彼らの実際の仕事に近づくと、あなたは彼らと何の違いもないことに気付くでしょう。あらゆる場所で試してみるだけで、実験中です。

最後に、盲目的にそれらを信頼しないでください。意見が異なる場合は、意見の衝突のプロセスから学び、参加するように依頼してください。

私の最も実り多い会話のいくつかはこのように起こりました。かつて、私のEmacs構成はめちゃくちゃでした。理由はわかりませんが、OCamlのオートコンプリートはもう使用できません(1か月以上壊れていました)。自動化するものがないので、必要なコマンドをシェルの履歴で探す必要がある場合があります。問題を解決するために、私は醜いコードを書き始めました。私は物事をグローバルオブジェクトとして書き、最後まで何をしたのか理解できませんでした。

最も経験豊富なプログラマーがそれに取り組んでおり、最も重要なことは、タスクを完了して目標を達成できることです。

あなたの仕事を軽視しないでください

プログラマXiaobaiは、初心者であるため、自分の仕事はほとんど価値がないと考えています。または、経験豊富なプログラマーでも、新しい分野で働くと不快に感じるでしょう。しかし、私の意見では、最良のアイデアは、既存のテクノロジーの改善を見ることができる新しいプログラマーからしばしば生まれますが、確固たる考え方を持つ人々はそうではありません。

いずれにせよ、あなたの仕事は価値があります。最悪の場合、たとえあなたのアイデアが失敗したとしても、コミュニティはそれからこの方法がうまくいかない理由を知ることができます。

(コミュニティへのヒント:それは私たちがそれをどのように行うかによって異なり、新規参入者が参加しやすくなります。)

取り残されることを恐れているので仕事を止めないでください

毎日新しいテクノロジーが登場します。テクノロジーに一晩中触れないと、世界に遅れずについていくことができないかもしれません。本当じゃない。実際、頻繁に仕事を手放すと、新しいアイデアが生まれるので、上手くいきます。

仕事をしていないときは、いつも新しいアイデアを思いつきます。

実際、毎日インターネットに投稿されるコンテンツのほとんどは「新しいボトルに入った古いワイン」であり、真に革新的なテクノロジーが登場するのは数年おきです。この問題については、このビデオハンモック駆動開発をご覧ください。

綿毛を無視する

客観的に言えば、あなたがより速く進歩することができる主な方法の一つは、あなたのスキルを向上させない「ふわふわ」を無視することです。つまり、「時間を賢く使う」ということです。1日の時間には限りがあり、より深いことを掘り下げる時間を費やす必要があります。時間の経過とともに、あなたは自分自身が大きな進歩を遂げていることに気付くでしょう。

では、「毛羽立ち」とは何でしょうか?それはあなた自身の状況に依存します。ただし、私が「fluff」であると考えるものの例をいくつか挙げます。言語構文、ライブラリAPI、および構成ビルドツールです。たとえば、新しいES7 JS構文を習得しても、より優れたプログラマーになるわけではなく、コンパイラーのしくみを学ぶようなものです。同様に、同じアイデアを実装して新しいAPIを使用する新しいライブラリを採用することはあまり意味がありません。もちろん、これらは重要ですが、より深い概念を学ぶためにより多くの時間を費やすことをお勧めします。これらの概念は、あなたの人生を通じて多くの利益をもたらします。

私はあなたに質問があります:コードを美しく見せるために多くの時間を費やしていますか?もしそうなら、そのようなことにあまり注意を払わないことをお勧めします。いずれにせよ、コードは時間の経過とともに大きく変化します。

抽象化レイヤーを慎重に検討するなど、解決しようとしている中心的な問題に焦点を当てることが最善です。これらのタスクをすべて完了したら、少し時間をかけてコードを改善できます。これは、DRYの原則にも当てはまります(自分自身を繰り返さないでください。繰り返しコードを記述しないでください)。しかし、そんなに心配しないで、自由にコピーして貼り付けてください。

過去の研究成果を徹底的に研究

新しいアイデアを思いついたら、とてもワクワクしますし、座ってすぐに行動したいと思わずにはいられません。ただし、これを行うべきではありません。まず、前任者がそれをどのように解決したかを理解するために、大まかな調査を行う必要があります。同様の状況に遭遇した場合は、最初にそれを調査するのに数日かかります。これにより、最終的に問題の解決方法が完全に変わります。

学術論文を読むことを学ぶことは非常に貴重なスキルです。表記や操作のセマンティクスについて何も知らないので、多くの論文を読むことができません。ただし、多くの論文では問題を説明するために数式ではなくコードを使用しているため、読むのはそれほど難しくありません。過去30年間、論文を通じて大量の知識が公開されてきました。この情報を得るのが得意であれば、すぐにソートリーダーになります。

きれいな例が良い例です。私は何をしたいのか知っていますが、それを達成する方法がわかりません。いくつかの調査を行った後、私はこのペーパーを見つけました、そして、数日で、私はそれをする方法を知るでしょう。主な作業は1週間で完了しました。他人の研究結果を無視するともっと時間がかかります。

あなたが論文を探しているなら、GitHubで私たちが愛する論文がお勧めです。

いくつかの大きなプロジェクトに参加するには

経験は何よりも貴重です。誰もが試す機会があるわけではありませんが、時間があれば、いくつかの大きなプロジェクトを試すことができます。完成させる必要すらありません。コンパイラのようなものを書いてみてください。最初の数週間で多くを学ぶことができます。

正直なところ、複雑な問題を解決する方法がわからないというのは嫌です。これは痛いです。解決策に取り組む前に、私は多くの研究と研究をしなければなりません。このような辛い経験をした後、私はいつでも昇進してより良いプログラマーになることができます。

新しい言語を学ぶことから始めます。これは、現在の習慣を取り除き、新しい視点から問題を見るのに役立つ最も効果的な方法です。

私にとって、私が若いプログラマーだったとき、私がした最も良いことは、Schemeを学ぶことでした。これは非常に単純な言語であり、すべてを機能的な方法で実行し、コード作業の基本原則を本当に理解することを強制します。私はSchemeに数年を費やしましたが、今日でもまだ恩恵を受けています。そして、コードに対する私の見方は根本的に変わりました。

6つのこと

プログラマーとしての私のキャリアに大きな影響を与えたいくつかのことをお勧めします。さらに、それらの多くは依然として微妙な方法で私に影響を与え、新しいアイデアを分析するのに役立ちます。優れたプログラマーになるためには、まったく同じことをする必要はありません。自分自身を改善するために他の多くのことを学ぶことができます。

1. C言語を習得します。まだ習得していない場合は、いくつかの基本を学習します。誰もがそれについて不満を言う理由について考えてみてください。これは非常に貴重です。

2.コンパイラーを作成します。これにより、非常に不快になる可能性があります。超小型コンパイラープロジェクトを確認できます。

3.マクロについて学ぶ-Scheme、Lisp、Clojure(スクリプト)を参照してください。マクロは実際にコードの見方を変えます。

4. SICP-SICPは古い本ですが、今日でもまだ非常に貴重だと思います(この見解に同意できない人もいます)。プログラミングに関する知識がほとんどない場合は、メタサーキュラーエバリュエーターとコンパイラーを実現するためのガイドとなります。私が非常に好きで、コンパイラーについて徹底的に研究したもう1つの本は、Lisp In Small Piecesです。Pythonに興味がある場合は、教師のWeChat:abb436574を追加して、無料で学習教材とビデオコースのセットを入手できます〜

5.継続の理解:継続は、低レベルの制御フローメカニズムです。Schemeはそれを実装する唯一の言語です。運用環境では決して使用しませんが、制御フローの認識を変えます。私はそれらを説明しようとしたブログ投稿を書きました。

6.可能であれば、新しい言語を使用してみてください。何をするにしても、他の言語を実際に探索する必要があります。Clojure、Rust、Elm、OCaml / Reason、Go、Schemeのいずれかをお勧めします。それらはすべて、新しい考え方を学ぶようにあなたを駆り立てる独自の特徴を持っています。

おすすめ

転載: blog.csdn.net/weixin_45820912/article/details/108470738