私はプログラマーのプログラムに騙されて、ずっと走り続けました。 26歳になるまでコーディングの経験がほとんどなかった私は、大学院卒業後、偶然、研修が受けられないスタートアップ企業を選んでしまい、会社が倒産するのではないかという不安と恐怖の三重苦に耐えました。解雇され、1 年間毎日同僚に無視されました。彼は半年後に退職し、500 万人のユーザーを抱える製品のメイン バックエンド マネージャーになりました。私はコンピューターテクノロジーを恐れていましたが、熟練した人々は仏陀の光に包まれ、日夜太陽のように働き、何万行ものコードを吐き出すことができると信じていました。少し世界が見えてきた今、不安で不安だったあの時期を初めての夜のことのように振り返ってみると、感動的な意味は見出せませんが、当然のこととして受け止めています。理想的なプログラマーも、理想的な建築家も、理想的な会計士も、理想的なマッサージ師も、本質的には職人の集団です。私は誰でも理想のプログラマーになれると信じています。
過去 3 年間、私はインターネット サークルに参加し、何人かの PHP プログラマーに会い、何人かのプログラマーと仕事をし、何人かのプログラマーを率い、何人かのプログラマーにインタビューしました。彼らの学歴は様々で、北京大学出身者もいれば、北京大学ジェイドバード出身者もいるし、博士号取得者もいるし、高校中退者もいるし、BAT出身者もいるし、破産したファンド会社出身者もいる(まだ販売員です); 経験年数も 0 年から 15 年までさまざまです。しかし、プログラマーは天才プログラマー、理想的なプログラマー、凡庸なプログラマーの 3 つのカテゴリーに分類するだけでよいと思います。これは運命だとしか言いようがありません。あなたは精子の頃から、優れた数学的才能、冷静で緻密な論理、そして問題を解決するために24時間努力し、問題を解決することに大きな喜びを感じる技術的な熱意を持っており、3つのポイントは早くから始めることで得られます。そして、泥んこでプレイするときは、大学を卒業するまでに 10,000 時間のルールを破らなければなりません。
天才プログラマーを見つけるのは難しく、ましてや私が会うプログラマーの 90% は依然として凡庸なプログラマーです。 IT 時代の拡大により、プログラマーはルネサンス期の印刷業者と同じくらい普通のものになりました。祖先の見習いに参加する人のほとんどは、より大きな仕事、より高い給料、より良い生活を求めています。凡庸なプログラマーは腐ったコードを書き、標準も一貫性も持たず、旧世界の言語にこだわり、大きなアーキテクチャやパフォーマンスについて自分たちよりも上手に話します。例外なく、彼らはテクノロジーに未来はなく、製品、マーケティング、マネジメントはより高度なスキルであると信じており、彼らの 99% は自然に自分がその才能を持っていることを明らかにします。プロセスについては、なぜクラッシュするのかなどの小さな疑問が残ります。理解する気にもならない何か。
そして、私は理想的なプログラマーと仲良くなるのが一番好きです。許されるなら、彼らと一緒に食事をしたり、一緒に暮らしたりするのが待ちきれません。理想的なプログラマーは、善良な心を持ち (社内政治の寵児になったことは一度もありません。素朴で明るく幸せな職人集団です)、無邪気な好奇心を持っています (彼らの目はよく「すごい、どうやってこんなことができるんだろう」と目を輝かせます)。 )、常に卓越性を目指して努力し(彼らの合言葉は「もう少し勉強してみます」です)、喜んで共有します(GitHub、主要な Q&A コミュニティ、およびあなたの周囲で積極的に活動しており、貴重な時間を喜んで費やして支援します)初心者)。はい、管理する必要はありません。一般的な方向性を与えるだけでよく、常に予期しない結果を返す可能性があります。
理想的なプログラマーと凡庸なプログラマーの間には壁があるだけです。両者の差はわずか 6 ポイントであり、時間の経過とともに蓄積されたこれらの小さなポイントによって、人々の間の格差は永遠に拡大します。興味深いことに、これらの 6 つのポイントはすべて意識に関連していることがわかりました。つまり、プログラマーも新興産業の他の職種と同じであり、意識と時間さえあれば、誰もが理想的な段階に到達することができます。理想的なプログラマーは、優れた問題解決者でもある必要があります。
最初のポイント: 現在に集中する
私は注意力散漫なプログラマーをあまりにも多く見てきたので、「現在に集中する」ことを第一のルールとして置く必要があります。彼らは、小さなお茶農家になりたい、ガチョウ売りになりたい、製品を作りたい、販売したい、投資したいなど、さまざまな小さな夢を持っていることがよくありますが、プログラマーの高収入や転職する勇気のなさによって「先延ばし」にされています。集中力がなく、自分の役割を果たすこと、スキルを磨くこと、新しいテクノロジーを学ぶことなどには関心がありません。この世には素晴らしい製品 (ジョー氏のような)、素晴らしいセールスマン (エリソンのような)、そして偉大な投資家 (ピーターフィーのような) が存在し、例外なく全員がプログラマであることは否定できません。しかし、バフェットがゲイツについて言ったことを聞いたことがありますか? ビル・ゲイツが犬の販売にキャリアを変えたら、彼は世界最大の犬販売業者になるに違いありません。私は、少数の天才を除いて、すべての生き物は、十分な集中力を維持している限り、複数の分野で成功を収めることができると強く信じています。そして、来年犬を売りたいと思ったとしても、プログラマーとしての経験を活かして、強力な論理、慎重さ、忍耐力を養うことができ、どんな業界でも十分な競争力を身につけることができます。
2番目のちょっとしたこと: 思考と原動力
バグ、クラッシュ、チューニング、侵入などの緊急事態に対処することは、プログラミングそのものよりも、平凡なプログラマーと理想的なプログラマーとの間のギャップをよりよく反映していると思います。未知の問題に直面したとき、複雑な状況下で核心的な問題を特定する方法、問題の潜在的な原因を詳細に分析する方法、干渉を排除して最小限の検証可能なシナリオを復元する方法、推測を検証するために重要なデータを取得する方法、実験、それらはプログラマーの思考力を反映する最高のシナリオです。そう、理想のプログラマーを測るには、経験よりも思考力の方が重要なのです。
時々、友達が家に来て、「タスクを提出して行き詰まってしまったのですが、どうすればいいですか?」と尋ねると、私はいつも、彼ならもっと上手くやれると感じます。たとえば、他のタスクをチェックしてテストして、コード自体の原因を取り除くことができます。Web UI を通じて例外をチェックできます (アカウントがない場合は、アカウントの提供を依頼できます)。ログをホストするか、キャッシュを削除しても問題が解決しない場合は、必ずタスク ID とコンソール ログを提供してください。理想的なプログラマーは、物事が前進するのを決して待つことはなく、物事を前進させるために必要なことは何でも行います。
3 番目のちょっとしたコツ: 絶対にノーと言わない
前の工場での仕事を辞める前に上司と話したときのことを覚えています。彼は、私の最大の利点は私ができないことを上司に言わなかったことだと言いました。その後、多くのチームでテクノロジーと製品の間に対立があることがわかりました。プログラマーは「技術的に不可能」と言って製品のニーズを阻止し、製品は「Facebook はできるのに、なぜできないの?」と言ってプログラマーを嘲笑することがよくあります。プログラマー。この 2 つの文は、プログラマーと製品犬の間の愛にとって根本的に好ましくない禁句であるべきです。
「技術的に不可能」と言うのは簡単ですが、この文を100%確信して言える人はどれだけいるでしょうか?よくわからない場合は、答える前に戻って Google で調べてみてはいかがでしょうか。もともとプログラマーは想像力に富んでいると思っていましたが、その想像力のおかげで私たちの生活を変えるようなソフトウェアやインターネット製品がたくさん生まれました。さらに見てみると、ほとんどのプログラマーはバグとの戦いにおいて保守的になっていて、リスクを負いたくないと同時に、多くのチームが失敗を許容しようとしないことに気づきました。それで、「Say No」が習慣的な抵抗になったのですが、曽国帆が湖南軍を解散させた理由をまだ覚えていますか?同氏は、軍は「疲労しつつあり」、もはや戦うことができないと述べた。理想的なプログラマーになりたいなら、自分にイライラする機会を与えるべきではありません。不当な要求に直面した場合は、時間を費やして国を救う計画を立てることができます。それは、シンプルで粗暴な「ノー」と言うことです。お勧めできません。
4 番目のポイント: 未来に投資する
プログラマーは非常に残酷な職業です。あなたが学び、使用してきた言語、フレームワーク、パターンは、数年後には昨日の花になる可能性が高く、今あなたが笑っている別のプログラマーのグループがすぐに振り向いてあなたを笑うかもしれません。したがって、理想的なプログラマーは、仕事をうまくこなすだけでなく、将来への投資にも時間を費やします。 「投資」とは何ですか?投資とは、今投資する時間であり、将来的にはより多くの時間やお金が戻ってきます (数年前に iOS を学んだプログラマーの現在の給与を見てください!)。私自身の分野であるデータ マイニングを例に挙げてみましょう。Hadoop は 2008 年頃から台頭し始めました。当時は「ビッグ データ」という概念が注目を集めていましたが、インターネット企業はデータ統計とデータの間で人材を見つけるのが困難でした。分散プラットフォーム上での分析とデータマイニング。ここ数年、Hadoop は反復を続けてきましたが、Spark が突然登場し、Hadoop が保持するソート記録を一気に更新しました。中間データをメモリに保存することによってもたらされるパフォーマンスの利点と豊富なデータ構造は、人々を魅了します。 -stop さまざまな奇妙な小さなバグと急な学習曲線が気を落とします。まあ、目の肥えた人なら誰でも、Spark が将来のトレンドであることを知っています (メモリはますます安価になります)。主なビジネスを Hadoop に置く場合は、いくつかの小さなモジュールを Spark に適切に切り替えて、Spark の開発に注意を払うことができます。コミュニティ。 Spark から得られるパフォーマンスの向上により、学習に費やした時間はすぐに回収されます。
5 番目のポイント: ツールを上手に活用する
ツールを上手に使うには 4 つのレベルに分けることができます:
1 検索エンジン
2 重複を信じない
3 コード スニペット
4 自動化
最初にこの業界に入ったとき、コンピューター サイエンスを専攻して公務員になった友人から、「あなたはプログラミングをまったく学んだことがないのですが、普段はどのようにコードを書いていますか?」と尋ねられました。 「Google、Google」と言うと、容赦なく嘲笑され、私のアカウントはあちこちで「2shou」と呼ばれ、恥知らずな中古プログラマであると自分を戒めました。冗談ですが、今でもそう聞かれたら、私は Google と答えるでしょう。プログラマーの成長は膨らんだ丸いケーキのようなもので、外側には無限の海があります。丸いケーキが大きくなればなるほど、理解できる範囲が広がります。コンピューターサイエンスはまた別です。非常に更新の早い科目であり、従来の授業形式の指導法や学習方法では得られにくい科目でもあります。検索エンジンを通じて最新の知識を得ることができます。
私は繰り返しを信じていません。マスターはそれを DRY 原則 (繰り返しはしないでください) と呼んでいます。コードを書きすぎると、コードの良し悪しを直感的に判断することになります。私の基準は単純さと標準化です。シンプルであることは美しさの基準ではありません。重複が少ないほど、間違いを犯す可能性が減り、後のメンテナンスのコストが低くなります。
不幸にも 3 週間前のコードを紛失してしまった場合、並外れた記憶力を使って頭の中に残っている断片をコピーできるかもしれませんが、3 か月前のコードを紛失した場合はそうはいかないかもしれません。ラッキー。 。理想的なプログラマーは、データを保存する効果的な方法を見つけようと努め、仕事中にインスピレーションによって書き留めたコード、スクリプト、構成、経験などの短い断片をいつでも見直せるように保存します。
理想的なプログラマーは怠け者でなければなりません。彼らにとって、繰り返されるステップはコードの繰り返しと同じくらい醜いものであり、ジョブが長期間繰り返される可能性があることがわかっている場合は、早ければ早いほど良いと考えます。
6 番目のポイント: 時間の管理
プログラマーにとって時間の管理が特に重要である理由は、タスクを完了するとき、荒野をオオカミのように「一人で歩く」必要があるからです。外部からの制約を受けずに安定して自分をコントロールし、仕事や勉強を効率的に行うことができれば、時間が経てば必ず普通の人よりも優れた人になることができます。
プログラマーは、通常、1 日 4 ~ 5 時間自分の仕事に集中するだけで十分ですが、仕事以外にも学習の時間を確保する必要があります。勉強だけでなく、お茶を淹れたり、コーヒーを飲んだりする合間の時間を利用して、自分自身の貴重な時間を確保し、前向きに考え、半分の労力で2倍の成果を得ることが必要です。
ここまで言って、理想のプログラマーになるために一生懸命働くことに何の意味があるのかと疑問に思う人もいるかもしれません。高い給料が出るのでしょうか?いいえ。昇進できるでしょうか?必ずしも。白富美と結婚するのはどうですか?犬も売ったほうがいいかもしれない。
明治時代の職人たちは、勉強をしなかった田舎者だったが、生涯一つのことに一生懸命に取り組む高貴な気質を持っていた、と稲盛和夫氏は語っていました。理想的なプログラマーは、この高貴な気質に従う必要があります。
LAMP BrothersオリジナルPHPビデオチュートリアルCD/「Essential PHP in Detail」を無料でプレゼント 詳細は公式サイトカスタマーサービスまでお問い合わせください: http://www.lampbrother.net
PHPCMS二次開発 http:// yun.itxdl.cn /online/phpcms/index.php?u=5
WeChat 開発 http://yun.itxdl.cn/online/weixin/index.php?u=5
モバイル インターネット サーバーサイド開発http://yun.itxdl.cn/online/server/index.php?u=5
Javascript コース http://yun.itxdl.cn/online/js/index.php?u=5
CTO トレーニングキャンプ http://yun .itxdl.cn/online/cto/index.php?u=5
|