ホームページ > バックエンド開発 > PHPチュートリアル > 私はインターネット会社で 1 年間働いている Zhenai.com プログラマーです。どうすれば進歩できるでしょうか?まず、Zhenai.com での私の勤務経験を紹介します。

私はインターネット会社で 1 年間働いている Zhenai.com プログラマーです。どうすれば進歩できるでしょうか?まず、Zhenai.com での私の勤務経験を紹介します。

WBOY
リリース: 2016-08-10 08:50:39
オリジナル
2562 人が閲覧しました

まず私自身について話させてください。私は主要な学部プログラム (985 番、211 番) を卒業し、コンピューター サイエンスを専攻し、学校での成績は平均以上でした。卒業後は間違いなくプログラマーになると期待され、Zhenai.com に入社しました。オファーをもらってから約 1 年が経ち、それまでまったく理解していなかったこの会社がどのような会社なのか、ということもいくつか考えました。テクノロジー環境はどうですか?成長の余地についてはどうでしょうか? 1年が経った今、今年を振り返って自分の進歩をまとめてみました。実はまだたくさんの思いがあります。私はまた、「貧しい人々」の成功例をもっと見てみたいと思っています。
私の好きなテクノロジーは主に Java と php です。近年、ビジネスの発展に伴い、一部の企業では C++ が使用され始めています。会社には全体的に優秀な人材が多く、10年以上の積み重ねもあり、新人の私も入社してから学ぶことが多かったです。しかし、開発から 10 年が経つと、古いシステムの技術的枠組みが時代遅れになったり、コードが複雑になったり、特定のビジネスの詳細が誰にも理解できなくなったりするなど、多くの技術的負債も蓄積されています。新人は入社後、基本的に何度か騙されます~~私も騙されました~~
社内の技術的な雰囲気は相変わらず良く、プログラマーは皆、技術に対する知識欲が旺盛で、自分の意見もしっかり言えるところがあります。 。あるプロジェクトで、ネストされたサブクエリを使用して SQL の記述を最適化する方法について、数人のプログラマーが長い間議論しました。その後、多くの情報を調べたところ、最終的に 2 つの記述方法は実際には似ていることがわかりました。議論のおかげで、基礎となる mysql についての理解がかなり深まりました。笑、これは予期せぬ利益と言えるでしょう。
ジェナイが現在直面しているより差し迫った問題は、「人々の増大する物質的・文化的ニーズと後進的な社会生産性との間の矛盾」を解決することである。同社のビジネスは急速に発展していますが、一方で、同社の既存の技術システムは、基礎となる DB から技術アーキテクチャ全体に至るまでにはまだ長い道のりがあります。その過程で、開発者のスキルは大幅に向上しました。近年のインターネットの急速な発展により、インターネット業界全体の技術開発が促進されたことについて、上司は次のように述べています。 「偶然の問題」。
Java の基本と SSH フレームワークの基本的な使用法しか知らない新卒者として、私が初めて参加したときは、基本的な mysql マスター/スレーブの練習すらしていませんでした。今では、基本的なシェル プログラミングから、 HadoopやSparkなどは基本的には耐えられるので、今年は個人的には生まれ変わる年とも言えるのではないかと感じています。もちろん、結局のところ、環境の制限により、見えるもの、感じるものにも一定の制限があります。たとえイェランの傲慢さの疑いがないとしても、そのような自己評価は依然として可能です。そこで、インターネット企業で皆さんがどのように成長しているのか、またどのくらいのスピードで成長しているのかを聞いてみたいと思います。それについて一緒に話し合ってもいいでしょう。

返信内容:

私はプログラマーではありませんが、インターネット企業で長年働いてきました。インターネットに関するいくつかの提案をまとめます。

1. 狭い範囲で役立つテクノロジをいくつか選択し、徹底的に学習し、採用します。その後、この範囲を拡大し続けます。

2. メモリ内とハードディスク上でのそれぞれのパフォーマンスを含め、さまざまなデータ構造の長所と短所を理解します。

3. さまざまなアルゴリズムの長所と短所を理解する。

4. 自分の仕事分野を知る。コンピューターの電源を切り、ユーザーが行っていることを行います。

5. いつでも複数の技術レベルに投資できるよう準備を整えてください。表面下の技術原則を知る必要があります。 「さまざまな技術レベルの習得」と「プログラミング能力」の間には密接な関係があります。

6. 想像力を働かせてください。 「もっと良い方法はないか?」と常に自問してください。最適な解決策はまだ見つかっていない可能性があります。

7. 優れたプログラマー: コードを最適化します。より優れたプログラマー: データを設計します。最高のプログラマー: 何が違うのでしょうか?

8. データを正しく構造化します。欠陥があると、コードに無限の技術的負債が生じます。

9. 物事に正しく名前を付けます。プロシージャと関数に名前を付けるには、「動詞-形容詞-名詞」形式を使用します。変数名は十分に長く、できるだけ短く、意味のあるものにする必要があります。他のプログラマーがあなたのコードを理解できない場合は、コードを十分に明確に記述していないことになります。ほとんどの場合、環境のためのコーディングよりも、次のプログラマのためのコーディングの方が重要です。

10. 分析とプログラミングを分離する。これらは同じものではなく、異なる種類の労働リソースが必要であり、まったく異なる時間と場所で別々に実行する必要があります。両方を同時に行うと、どちらもうまくいきません。 (私は一日の終わりに非技術的な分析をして、翌朝プログラミングをするのが好きです。)

11. 決して楽な方法を取らないでください。同じコードを 2 回デプロイしないでください。変数に別の変数名の一部として名前を付けないでください。ルールを理解していないのかもしれないし、自分を守りたいのかもしれません。しかし、これを行うと、これらのルールによってプログラムを正しく構成することが制限されてしまいます。低レベルのプログラマがいつまでも低レベルのままである理由は、トラブルを避けるためです。

12. プログラムのパフォーマンスを測定する方法を学びます。そこからどれだけ多くのことを学べるか驚かれるでしょう。

13. 問題の詳細と結果を異なる方法で扱うことを学びます。問題の詳細には大きな違いはありませんが、問題の結果は世界を終わらせる可能性があります。結果だけに集中してください。

14. ユーザー/顧客/管理者に注目してください。彼らが「何を」理解できるように助けることは、「どのように」理解するかを助けることよりも重要です。

15. 使用する予定があるかどうかに関係なく、フレームワークを作成します。そこでは他では学べないことを学ぶことができます。

16. 口頭または書面を通じて、自分の知っていることを他の人に教えましょう。結局のところ、これは自分自身を教育する機会になります。

17. たとえ確信が持てない場合でも、顧客/ユーザーには常に「はい」と言ってください。 90% の確率で、最終的にはそれを実現する方法が見つかります。 10%の確率で、あなたは彼らに謝罪するでしょう。これは重要な個人の成長のために支払うべき小さな代償です。

18. 素晴らしいことをするがめちゃくちゃな他の人のコードを探します。リファクタリングしてください。それからそれを捨てて、彼らが犯したのと同じ間違いを決して繰り返さないことを誓います。 (そのようなプログラムはたくさん見つかります。)

19. データは常に理論または意見よりも優先されます。ものを開発することでデータから学びます。

20. 可能であれば、自分のビジネス(サービスまたは製品)を始めてください。会社員では決して学べないプログラミングについて多くのことを学ぶことができます。 くそー、Zhenai.com のプログラムはすべてシングルですか?ブラインドデートの特典はありますか?^_^ 以下の提案は、プログラマー自身のスキルの向上と将来のキャリア開発に大いに役立ちます。鍵はあなたの実行能力に依存します。

1. ドキュメント作成スキルを向上させる

誤解: プログラミングがうまくてタスクを完了できるということは、優れたプログラマーであり、ドキュメントは必要ないと考えています。

一方で、ドキュメントの欠如はソフトウェア開発にとって致命的です。トレーサビリティがないため、ソフトウェア開発の起源や思想を見つけることができず、その一方で、その後のソフトウェアのエラーチェックやソフトウェアのアップグレードに支障をきたします。初期のプログラマは、技術文書が作業時間の 30% を占めるはずですが、上級プログラマやシステム アーキテクトなどは、より多くの時間が必要です。この記事では一般的なソフトウェア ドキュメントの要件については説明しません。入社する前に、手元にあるソフトウェア ドキュメントの要件とスタイルを確認してください。

2. 適切なコーディング標準とコーディング習慣を開発する

Microsoft、IBM、Oracle などの一部の有名な海外ソフトウェア企業は、プログラマーが開発したプログラムにコード要件を課します。セクションはコメント化する必要があり、コメント形式も統一する必要があります。ネストされた行のインデントの長さや関数間の空白行の数についても明確な要件があります。

中国人プログラマーは、グローバル変数の誤用、コメント言語の不適切な表現、変数名のピンインの使用などの問題に遭遇することがよくありますが、開発には影響しませんが、その後のコードの引き継ぎや共有作業には影響します。

3. ソフトウェア要件の理解を向上させる

誤解: 初心者プログラマは、一般的にプロジェクト要件を徹底的に分析せず、要求者に質問し、ドキュメントを入手して、B/S アーキテクチャで開発を開始します。フロントエンドの要件とバックエンドの要件を結びつけることがより頻繁に発生します

したがって、要件を作成する際には、要件の詳細な要件を理解し、それを満たすように努める必要があり、要件の詳細な内容を理解する必要があります。特に達成しなければならない機能上のポイント 要件は何か、快適にシステムを使用するにはどうすればよいか。ニーズの把握は、知覚的な観点からは理解できません。仕事のパートナーと衝突することによってのみ、ニーズを真に把握できるのです。本当のニーズを適切に把握するには、2~3年かかります。
4. 再利用性とモジュール的思考

すべてのプログラマーは、機能モジュールや機能を開発する際に、現在のタスクを完了するために、このシステムが存在しなくても実行できるかどうかをもっと考えるべきです。最も簡単な変更方法を使用して、他のシステムまたはアプリケーション環境で直接参照できますか?

過去 2 年間の実践と観察を通じて、私たちのチームの一部の同僚は初期段階でコードの書き換えを頻繁に経験しており、一方では彼ら自身のアイデアを再確立する必要があることがわかりました。一方で、コードの品質を向上させるにはリファクタリングを行うのは無駄です。

5. テストのスキルを発揮する

ソフトウェア開発には常に良い伝統があり、ソフトウェア開発プロセスで問題が早期に発見されると、その解決にかかるコストが低くなります。テスト作業は実際には面倒ではありません。1 つ目は、ソフトウェアの基本的な機能が実現できるかどうかを確認するためのテストです。これは多くの企業で行われている唯一のテストです。しかし、これが間違いであることを強調します。ストレステスト、破壊テスト、頻繁な例外要求処理テストなど、B/Sシステムでよく使われる異常呼び出しテストを行うことにより、総合的なテスト手法を習得して初めてソフトウェア開発の品質を向上させることができます。

6. 問題は最高の学習機会です

仕事とは、常に問題を発見し、問題を分析し、最終的に問題を解決するプロセスです。いつでも問題を解決できる人には、昇進への扉が常に開かれています。作業プロセス中に問題が発生するのは正常であることがわかりますが、実際の問題は問題がないことです。問題が発生したとき、勇気を持って問題に立ち向かい、解決できる人が企業の真の屋台骨です。

実際には、多くの人は問題を避けるために常に最善を尽くしています。上司が難しい仕事を割り当てたとき、彼もそれを回避しようと全力を尽くします。誰もが知っているように、個人にとって、問題は実際に最高の学習の機会です。多くの場合、困難な仕事を喜んで引き受ける人は、困難を克服することで大きな進歩を遂げたので、ますます有能になります。

暗い人生と滴る血に果敢に直面する真のプログラマーは、きっと何年も雑草が生い茂る荒野で自分の道を切り開くことができるでしょう。

実際は、他人の言うことを聞くだけで、自分で決める必要があります。他人の疑い、否定、嘲笑に直面しても、私たちはしっかりと前に進み、それを示すだけで済みます。行動が一番の証拠です。あと1秒でも頑張れば未来は変わります。

それでは、プログラマーの価値がどこにあるのかを詳しく見てみましょう。 1. アプリケーション テクノロジー

プログラマーのかなりの部分が、アプリケーション レベルの開発を行っており、彼らが作成するソフトウェアは、特定のシナリオでの問題を解決し、ユーザーの仕事や生活に利便性をもたらすために使用されます。

アプリケーションの開発では、C# や .NET、C++ や Qt など、J2EE など、Ruby on Rails など、Python や Django など、Java や Android などの高級言語やフレームワークがよく使用されます。 、Objective-C や Cocoa Touch など、Java、PHP など…数えきれないほどあります。

多くの人は、アプリケーションレベルの開発技術の敷居が低いと考えています。若い人と経験豊富なベテランの間には大きな違いはありません。ビーチでは後ろの波が前の波に打ち勝ちます。ネギの作物が成長したら、古いものは遊び終えなければなりません。

実際、いいえ、純粋に技術的な観点から見ても、言語とフレームワークの理解と習熟は、開発効率と製品の品質に重大な影響を与えます。

深い理解が求められない、分かっているようで分からない、何年も働いているのに未だに技術の本質を理解出来ていないプログラマーってどんな人でしょうか?そして、まだ理解できず、問題に遭遇したときに途方に暮れているようなプログラマーは、次々と押し寄せる若い新入生によって仕事から追い出される運命にあります。

言語のさまざまな特性を深く理解し、フレームワークの仕組みとさまざまな応用シナリオについて独自の理解と豊富な実践経験を持っているなら、あなたはほぼその言語の専門家です。そして非常に貴重なフレームワークです。

あなたの言葉によって、他の人が解決できない問題でも、あなたなら数分でプロジェクトにかかる時間を節約できるかもしれません。

したがって、「実行できる」、「タスクを完了するだけ」、「それほど多くを学ぶ必要はない」などの言葉に注意を払わないでください。テクノロジーを使用して実際的な問題を解決した後は、その後、さらに掘り下げて、さらに学び、さらに深く進んでいくと、時間が経つにつれて、あなたは間違いなく違ったものになるでしょう。

仕事で時間がないなら、仕事を終えてから投資を続けてください。あなたの勉強や研究はすべて自分のためであり、上司やプロジェクトのためではないことを忘れないでください。あなたの唯一の成果物はあなた自身であり、この成果物は一生磨く価値があります。

2. 非常に難しい技術

アセンブリ言語、オペレーティングシステムのカーネル、ドライバーなど、比較的敷居が高い技術がいくつかあります...敷居が高いだけで、リターンも高くなります。

たとえば、Windows カーネルまたは Android カーネルに精通していて、さまざまなドライバーの作成に熟練している場合は、月給 50,000 または 60,000、さらには 180,000 の仕事を見つけるのは問題ありません。しかし希少性が高いため、その価値は保たれています。

3. アルゴリズム

ほとんどのプログラマーは実際にはアルゴリズムを理解しておらず、単にフレームワーク内のモジュールを使用してビルディングブロックを構築しているだけです。アルゴリズムの本当の意味を理解すれば、プログラマーの9割を超え、その重要性と価値は計り知れないものになります。

例えば、画像処理アルゴリズムに習熟している、例えば、ビデオのエンコードおよびデコードアルゴリズムに習熟している、例えば、検索推奨に関連するアルゴリズムに習熟している、例えば、パターン認識... 誰があなたの進歩を止めることができるか見てみましょう!

IV , ビジネス

ある業界で蓄積を続け、ビジネスをよく理解し、深い蓄積があれば、あなたの価値は非常に大きくなります。信じられない場合は、求人 Web サイトで募集要項を確認してください。その 99% では関連業界の経歴が求められています。

したがって、信頼でき、将来性のある業界を選択することが非常に重要です。この業界が発展し進歩し続ける限り、あなたの蓄積は価値があり、価値を付加し続けることになります。

金融、電力、電子商取引、宝くじ、考古学、医療など、特定の分野のビジネスには一定の敷居があり、これらの業界では、たとえ技術が優れていても、ビジネス知識に優れたプログラマーとなります。特に良いものではありませんが、それも無限の価値があります。

5. プロダクトの認識と考え方

プロダクトの認識とは具体的には何でしょうか? 製品の認識には、一般的にビジネスの認識、ユーザーの認識、イノベーションの認識、チームの認識が含まれると思います。

——「誰もがプロダクトマネージャー」

インターネット時代においては、プロダクトが王様です。製品に対する知識があり、製品の考え方を理解しているプログラマーは最も人気があり、良い製品を作ることが最も得意なプログラマーでもあります。

ビジネス意識とは、平たく言えば、この商品は売れるかどうか、良い商品かどうかを考えることです。プログラマーが市場と直接接触することはほとんどありませんが、これは必ず存在します。

しかし、製品が成功するかどうかは、ほとんどの場合、市場のパフォーマンスに依存します。市場に注意を払い、市場の観点からテクノロジーの実装を見て、「テクノロジーは市場に役立つ」という概念を受け入れることができれば、成功します。良い製品を作りやすくなります。

ユーザー意識が一番分かりやすいということは、製品が良いかどうかの最終決定権はユーザーにあるので、ユーザーの視点でこの製品をどうデザインするかを考えるべきだということです。

製品を実装するときにユーザーの視点でも考えて、機能がアプリケーションのシナリオに適合しているか、ユーザーの行動特性に適合しているか、ユーザーの使用習慣に適合しているかを気にすることができれば、おめでとうございます。プログラマーの 90 % - ほとんどのプログラマーは、プロダクト マネージャーや UI デザイナーの要件に従って製品を実装します。

イノベーションは人類発展の源であり、社会進歩の原動力であり、製品の核となる競争力です。しかし、ここで言うイノベーションは必ずしも破壊的イノベーションというわけではありません。評価されていない多くの細部をより良くすることかもしれません。あるいは、単にこの製品に別のコンセプトを導入することかもしれません。おそらく、Haidilao の従業員もユーザーにさまざまな感情を与えるようなものかもしれません。これらはすべてイノベーションです。

イノベーションに対する意識はプロダクトマネージャーが持たなければいけないもので、そうでないと進歩もしないしプロダクトも良くならない。

イノベーションに対する意識も優れたプログラマーには必須のもので、そうでないとプロダクトをうまく実装できず、プロダクトの中核となる競争力を最大化することができません。

今日は、孤独なヒーローが一人で戦う時代ではありません。良い製品を作りたいなら、ほとんどの場合、チームが必要です。

チームの意識は不可欠です。あなたはプログラマーのグループと一緒にいます。また、プロダクトマネージャー、UIデザイナー、ビジネスアナリスト、プロジェクトマネージャーなどとも一緒にいます。チームに溶け込んで影響を与えることができれば、他の人が効果的な取り組みを行えるように奨励します。共通の目標に向かって進むなら、あなたのようなプログラマーは無敵であり、国の宝です

ここまで言っても、自分がどの方向で働くのが適しているのかを決める必要があります。決断してください。

自分の適性が一目でわかるので、詳しく説明する必要はありません。少し混乱しているかもしれませんが、心配しないでください。私たちにはまだたくさんの時間があります。試してみて、それが適切でないと感じたら、自分に合った道を歩み始めるまで、別の方向にもう一度試してください。

Zhenai.com のような大企業は、あらゆる面で非常に形式的です。一生懸命努力し続ける限り、必ず成功します。 私はインターネット プログラマーで、この業界で働いてまだ 1 年も経っていません。この投稿者のこの質問は、将来的には非常に役立ちます。インターネットの海を旅し、ゆっくりと偉い人と知り合い、同時に良いプラットフォームとチームも非常に重要です プログラミングは一日中パソコンと向かい合う必要がありますが、慣れればまだまだ将来性のある仕事だと思います。 まだこの業界に足を踏み入れたばかりですが、これからもたくさんの困難に遭遇すると思いますので、お互いに励まし合いましょう。今後もコミュニケーションをとり、さらに学んでいきたいと思っています。 会社から手配された仕事だけでなく、プライベートでもしっかりと勉強することが大切だと思います。 実際、進歩したいのであれば、特にプログラマーにとっては頻繁に勉強する必要があります。このテクノロジーはすぐに更新されるため、新しいテクノロジーを習得することを学ぶ必要があります。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート