ホームページ  >  記事  >  PHP プログラマーのキャリア プランニング: 不可欠な技術的才能に素早く成長するにはどうすればよいですか?

PHP プログラマーのキャリア プランニング: 不可欠な技術的才能に素早く成長するにはどうすればよいですか?

PHPz
PHPzオリジナル
2018-07-11 11:38:568585ブラウズ

まえがき: PHP を学ぶのは時代遅れですか? PHP 開発者はどうすれば急速に成長できるのでしょうか?キャリアプランニングはどのように進めればよいのでしょうか?特に、近年非常に人気のある人工知能、機械学習、ブロックチェーン技術などは、一部の人が盲目的にトレンドに従い、混乱する可能性があります。以下は、PHP の専門家である Wei Yongqiang 氏による記事です。彼の長年にわたる PHP の仕事について、この経験が PHP とキャリア プランニングについての考えをもたらし、PHP 中国語 Web サイトのネチズンにインスピレーションを与えることができれば幸いです。

著者について: Wei Yongqiang はエンタープライズ アプリケーションの開発とアーキテクチャに取り組み、数百万回の訪問を経験し、Zhubajie 金融商品 Bajie 金融システム、Zhubajie BOSS サポート システムの開発に参加し、リアルAVIC不動産重慶記者会見での活動時間 システムアーキテクチャと開発業務、永川万達WeChatマーケティングプラットフォームのアーキテクチャと開発を担当。 Chongqing Yirongde E-Commerce Co., Ltd. プロジェクト アーキテクチャ技術コンサルタント私はさまざまな新しいテクノロジーで遊んだり、探索したりするのが好きです。

開発者のことについて皆さんと話し、php中国語ウェブサイトのネチズンとあなたの経験と理解を共有するこの機会をいただきありがとうございます。

実際、プログラマーの危機は深刻な問題です。インターネット業界の衰退とか、インターネット業界が主流を超えたとか、そういうことを言う人もいます。ここで私が主に話しているのは PHP プログラマーの危機ですが、この危機のほとんどは言語の多様性と企業の言語選択に起因しています。

特に近年大人気の人工知能や機械学習など、また人気が高まっているPython。これは、一部の人々が盲目的にトレンドに従うことをいくらか奨励するでしょう。実際、開発エンジニアは、自身の知識システムの拡張と変革について明確な目標を持つ必要があります。トレンドに従うことはより危険であり、変革は自分の所有物をすべて捨てることとは異なります。プログラマーの誕生とプログラマーの成長を通して、選び方について考えていきたいと思います。

PHP プログラマーのキャリア プランニング: 不可欠な技術的才能に素早く成長するにはどうすればよいですか?

以下の観点から説明します:
プログラマーの階層化につながるもの

上級エンジニアが満たすべき要件

プログラマーが急速に成長する方法

PHP プログラマーが望む変革

必要な変革ルート

概要。



PHPプログラマーの現状
この段階で、ほとんどのジュニアPHPプログラマーはこの業界が難しいと感じていますが、多くの場合、このテクノロジーを追いかけることに陥ります。そのテクノロジーを追求するとき、最も高度な PHP パーは独自の知識システムを持っており、その一部はアーキテクチャにあります。

プログラマーにとって、自分の業界、つまりキャリアプランニングを理解することは非常に重要です。これは難しい質問です。なぜなら、キャリアを計画するには、まず業界を完全に理解する必要があるからです。これは、私がそもそもプログラマーになることを選んだ理由と大きく関係しています。
一般的に、開発キャリアの参入時期を乗り切るのが難しい場合は、変革期を乗り越えられない場合はこの業界に向いていない可能性があり、あまり成果を上げられない可能性があります。

この業界に興味があり、明確なキャリアプランを持っていなくても、少なくともこの分野でアイドルになるという目標を持っている人もいます。 3~4ヶ月の研修を経て入社する人もいます。

私は以前、重慶インターネットカレッジの訓練機関(YMSD)のデータを分析したことがありますが、この訓練を通じて業界に入った学生のうち、2年後もこの職で成長し続けたのはわずか20%でした。つまり、学生の80%はランナーになるためだけにお金と時間を費やしているということです。このことは、この業界に参入するなら、大きな利益を期待するだけでなく、将来の発展にも期待する必要があることを側面から示しています。

一般的に、トレーニングを通じて業界に参入した開発者は、技術的なルートに対する体系的な目標を持たず、オフラインのトレーニング機関で得られるものは盲目的な模倣であり、革新する能力に欠けているため、仕事で非常に困難な時間を過ごすことになります。 。そして、私の知る限り、ほとんどのオフライン研修機関のカリキュラム システムは、少なくとも 5 年間、企業現場と乖離しています。したがって、これらのプログラマーは、現状を変え、状況を明確にするためにさらに努力する必要があります。

プログラマーの階層化につながるもの

プログラマーの階層化は、社内での直接的な問題として、同じタイプのプログラマーでもポジションが大きく異なったり、給与が非常に高額になったりすることが挙げられます。

この層化の原因は何ですか?

最初の理由は、プログラム開発者の勤務年数です。

実際、実務経験はそれほど重要な要素ではありません。実際、以前の面接では、実務経験が 1 年しかない非常に優秀な開発者に会いました。しかし、求人検索ソフトウェアを使用すると、ほぼすべての職務記述書に勤続年数という指標があることがわかります。

なぜこんなものを持っているのですか?企業の採用担当者が多数の求職者と個別にコミュニケーションをとるのは非常に時間と労力がかかるため、職歴が最初の基準となります。

一般に、勤務経験 1 ~ 3 年が 1 つのレベルであり、北京の一般的な給与範囲は 10,000 ~ 20,000 です。

3 ~ 5 年は別のレベルで、北京の給与範囲は 15,000 から 25,000 です。
5 年以上 上記は複数のレベルです。

もちろん、1〜3年の実務経験を持つ人も、3〜5年の実務経験を持つ人と同じ給与を受け取ることができます。これは主に力に依存します。私たちのチャットでも、主にこの部分について説明します。

前項で、プログラマーには大きく分けて、専攻出身者と中途出家者があると述べましたが、決して専攻出身者よりも優れていると言っているわけではありません。中途半端に僧侶になってしまった人たち これらは全くの別物です。ただ、専攻出身ということは知識の幅が広いということなので、他の人も知識や基礎スキルに重点を置くべきです。

このチャットでは、特定の言語に質問を向けませんでした。開発エンジニアとして、言語に過度に注意を払うと、自分自身の障害になることがよくあるからです。

言語を追求する人
は、よくこの問題に遭遇します。開発仲間とチャットしていて、最後に会ったときはフロントエンド技術を学んでいると言っていたのに、1か月後にはPythonを学んでいると言っていました。もう一度言いましたが、やはり Python の方が使いやすいとのことでした。 1か月後に会ったとき、彼はGo言語を勉強していると言いました。Go言語といえば将来的には間違いなくトレンドになるでしょう。私はこのタイプの人々を「言語探求者」と呼んでいます。

言語を盲目的に追従しないように注意してください。高級言語を習得した後は、文法を始めるのが非常に早く、現在の言語の意味論は非常にフレンドリーであり、非常に簡単です。私たちはそれを学び、それに触れるためです。実は、私たちが最も理解する必要があるのは、言語の特性です。

例えば、多くの人は機械学習を学びたい、Pythonなどを学びたいと考えています。そこで考えなければならないのは、R言語、Java、JavaScript、C、C++、Scalaなどと同様に、なぜPython言語を選ぶのかということです。その利点は何ですか?

このように考えてみると、会社が現在よりも複雑な他のシナリオに遭遇したとき、そのような特徴的なシナリオを解決するにはどのような言語とテクノロジースタックを使用する必要があるかがわかります。開発に対する理解が新たなレベルに上がります。

自分を楽しませる人

同じことを繰り返すことで達成感を感じる人がいますが、それは大きな間違いではありませんが、停滞してしまいます。
よくこんな声を聞きます。うちの会社はやるべきことが少なくて、終わってしまえば何もすることがなくてとてもつまらないです。実際、これは彼がより優れたプログラマーになる機会を放棄したことを意味します。あなたの会社が現在このテクノロジーを使用していない場合でも、自由時間を使って学習する必要があります。

実際、プログラマーが階層化される主な理由は、学習習慣にあります。なぜそう言えるのですか?なぜなら、階層化の最も直接的な原因は知識であり、知識の形成には継続的な学習が必要であり、学習の効率も重要だからです。これまで多くの人から、テクニカルディレクターは自分たちほど技術的ではないと不満を抱いていると聞いてきました。これは、プログラマー間の 2 つのレベルの違いの表れでもあります。プログラマーは問題を異なる視点から見るため、問題の解決とソリューションの提供の関係を理解できません。

プログラマーが早く成長する方法

主に議論や提案を行っています。

私たちが最初に見たい言葉は成長です。

私は以前プログラマーを指導したことがありますが、彼は1年間開発を行っていました。ユーザーが WeChat にアクセスしたかどうかを判断するために User-Agent を使用するように頼んだところ、User-Agent とは何なのかと尋ねられました。ばかげているとは思わないでください。実際、その理由を知らない人がたくさんいます。なぜなら、彼らは CURD 機能だけに焦点を当てているからです。 CURDが悪いと言っているわけではありません。CURDはユーザーエージェントを理解するのと同様に基本的なものであるだけです。

コンピューター関連の専攻を卒業した人なら誰でも、コンピューター ネットワークの知識を理解することが開発者にとって非常に重要です。コンピュータを専攻していなくても、最も基本的な http リクエスト メッセージとそれに対応するメッセージの構造を理解する必要があります。

以前、研修機関で機械化をしていたとき、学生に暗唱するよう求めた面接の質問の 1 つは、mysql の InnoDb エンジンと MyISAM エンジンの違いでした。学生が 1 つのトランザクションをサポートし、もう 1 つのトランザクションをサポートしていないことに答えるのを見るたびに、私はそう思いました。リーダーを見て、とても幸せで、笑うと笑いたくなるのだと思いました。

トランザクションのサポートは違います。InnoDb エンジンを使用する場合、トランザクションをサポートする必要はありません。したがって、現場の外で知識ポイントについて話すことが、プログラマーが最下層に分類される最も直接的な理由であることが多いと思います。

上記は単なる例であり、学習もシナリオに分割する必要があることを示しているだけです。同じことが言語の学習にも当てはまります。なぜ現在の言語ではなく新しい言語を選択する必要があるのか​​を考えなければなりません。たとえば、機械学習に PHP を使用してみてはいかがでしょうか?おそらく、この問題について話すとき、多くの人は「PHP は世界で最高の言語だ」と笑いたくなるでしょう (私は PHP が大好きなので、恥を忍んでください)。

でも、この問題をもう一度真剣に考えてみましょう、考えてください。機械学習を勉強している人の中には、その流れに押されて Python を勉強している人も多いので、私も Python を勉強したいと思っています。もちろん、人生は短いので、Python を学ぶという選択は間違っていません。 Python を追いかけている C、C++、Java プログラマーはたくさんいます。参考記事: Web開発が初めてなら、php、python、rubyどれを学べばいいの?

他の人がよく言う一文を引用します。「数年前、あるグループが Java は死ぬだろうと訴えましたが、Java は死んだのでしょうか? 学ぶべきことは言語を選択することです。」

もちろん、採用 Web サイトでは、企業がプログラマーに習得させる必要がある言語の種類は、一部のプログラマーにとって学習の方向性でもあります。企業は、言語を選択する際に、以前のプロジェクトで使用した言語、移行コスト、人材トレーニング コスト、言語ハードウェア コスト、人材コミュニケーション コスト、そして最も重要なことに、現在発生している問題を解決できるかどうか、およびその解決にかかる期間など、多くの要素を考慮します。それらを解決するのに時間がかかります。

そのため、急速な成長には、さまざまなシナリオで技術的な詳細を独自に調査する必要があり、強力な学習能力が必要です。

PHP プログラマーが望む変革

私の同僚の視点は次のとおりです: PHP プログラマーの変革と開発には 2 つの方向性があります。1 つは、より深いバックエンド開発です。 Java 言語に関する仕事を探します。たとえば、PHP 開発を行う場合、非同期、コルーチン、マルチスレッドなどの問題を理解している人はほとんどいません。もう 1 つは、フロントエンドに目を向けることです。フロントエンドも非常に競争が激しい分野であり、フロントエンドもバックエンドと同じように学ぶ必要があります。

私がフルスタックエンジニアになりたいと言う人もいるかもしれませんが、私と同僚は、すべてを知っていてもすべてを深く理解していないフルスタックエンジニアになるべきではないことに同意しています。

もちろん、非常に不安を抱えているプログラマーたちに言いたいです。 PHPは死んでいません。

現在、中小企業はもちろん、Sina、Shenma Search、Baidu などの企業はすべて PHP を使用しており、PHP のポジションを設置しています。中小規模の短期的かつ迅速なビジネスでは、依然として PHP が第一の選択肢です。 PHP の最初の機能は、Web アプリケーションを迅速に開発することであるためです。他の言語を追求することも不可能ではありませんが、ゆっくりとしっかりとした基礎を築くことを忘れないでください。自分の知識体系を太った太った人間にしないでください。

さらに、おそらくすべてのプログラマーは、人工知能と機械学習にすぐに投資したいと考えています。この分野のプログラマーになりたい場合は、インターネット上のさまざまなドキュメント チュートリアルから学ぶこともできます。TensorFlow など、外部に提供されている API も多数あります。この分野で開発したい場合は、やはり最初にこれらの古典的なアルゴリズムを理解する必要があります。

ドライな情報、必要な変革ルート

プログラマーが作品を開発する製品レベルに応じて、プログラマーはフロントエンド エンジニアとバックエンド エンジニアの 2 つのカテゴリーに分類されます。開発エンジニアの分類がさらに増えました。フロントエンドとバックエンドの2つのカテゴリーに分けてお伝えします。

実際、PHP が奇妙な立場にあるのは良いことです。 PHP はフロントエンド言語であるという人もいますし、PHP はバックエンド言語であるという人もいます。この境界はそれほど明白ではありません。プレゼンテーション層の作業を解決する言語は、主に PHP がどのレベルの問題を処理するかによって決まります。

PHP への移行を考える前に、PHP についての知識がすでに備わっているはずです。

最初に MVC モデルを理解することは難しくありませんが、この出発点から拡張する方法を知る必要があります。例えば、MVVMやMVPパターンなど、両者の違いを理解する必要がありますが、理論は比較的単純なものが多いので、プロジェクト領域と合わせて理解することを忘れないでください。

もう 1 つ習得する必要がある知識は http リクエストとレスポンスです。実際、この知識は私たちが使用してきたものですが、多くの人はそれを理解していません。たとえば、ブラウザの開発者モードをよく使用します。ネットワーク内のリクエストをクリックすると、リクエスト ヘッダーが表示されます。

以下に示すように:

PHP プログラマーのキャリア プランニング: 不可欠な技術的才能に素早く成長するにはどうすればよいですか? 次に、オブジェクト指向についてはさまざまな意見があり、特に関数型プログラミングを支持する人が増えています。実際、どちらにも独自の利点があります。私たちが必要としているのは、オブジェクト指向によってもたらされる利点と欠点を真に理解することです。 PHP がさまざまなタイプの変数とその使用方法を理解するのに役立つことを願っています。

PHP には、boolean、integer、float、string の 4 つのスカラー型、array、object、callable の 3 つの複合型、resource と NULL の 2 つの特殊な型があり、もちろん一部には Pseudotype が提供されています。

上記の内容をマスターすれば、変革への道がより簡単になるかもしれません。

まず、フロントエンドの変革について話しましょう。

フロントエンドに変換したい場合は、js を学習する必要があります。しかし、どの程度でしょうか? js をどこまで学ぶべきかは、誰にとっても最も混乱する質問でもあります。 js の構文を噛み砕いている人も多いかもしれません。しかし、js のような非常に複雑な知識ポイントがあるものでは、構文に囚われ続けると、得るものよりも失うものの方が多くなります。

実際、最も重要なことはフロントエンドの考え方です。文字列、配列、オブジェクト、json の処理など、js の基本的な型操作をいくつかマスターした後は、vue.js や React などのフレームワークを検討できます。比較的シンプルで簡単に始めることができる vuejs から始めることをお勧めします。もちろん、html と css の基本的な使用法を理解する必要があります。学習プロセス中に他の人のプロジェクトを参照することは非常に重要です。github にアクセスして vue.js プロジェクトを検索し、他の人がどのように実装しているかを確認できます。

変革のもう 1 つの方向は、サーバーサイド開発への移行です。

より一般的に使用されるサーバーサイド開発言語を選択する必要があります。 Java であろうと Go であろうと、他にも多くのオプションがあります。基礎的なプログラマがいる場合は、最初から始める必要があります。このプロセスは非常に時間がかかるため、分厚い文法の基礎から始めてはいけません。最も基本的な文法を理解した後、学習するフレームワークの選択を開始し、学習中に問題を見つけて、文法の学習に戻ることができます。

ここには非常に多くの選択肢がありますので、詳細には触れず、ただ提案するだけです。

実際、Go 言語は他の言語よりも単純で、エンジニアリングにおいて信頼性があり、Goroutine はサーバー開発に利点をもたらします。中国では、Qiniu Cloud が Go 言語を長い間使用しており、現在、多くの大企業がいくつかの問題を解決するために Go 言語を使用し始めています。

人工知能とPythonの利点により、多くの人がPythonの道を選択しますが、Pythonの道を選択する場合は、データマイニング、処理、計算の方向に進む準備をしてください。言語の選択は意見の問題です。最も簡単な基準は、企業のニーズを考慮することです。

パフォーマンスの最適化など、サーバーサイドの開発を深く掘り下げる場合には、知っておく必要がある知識がたくさんあります。 Redis がキャッシュとして使用されていると多くの人が言及しています。これは先ほど述べたビジネスシナリオの問題点であり、理解しているビジネスシナリオが単一すぎて知識が不足しているということです。

もちろん、通信メカニズムの問題もあると思いますが、MQ、Cron、RMI、RPC などのテクノロジーにあまり馴染みのない人も多いと思います。私がこれらを列挙したのは、すぐに数冊の本を買って勉強してくださいと言うためではありません。テクノロジーを学ぶ前に、まずシナリオを作成する必要があることに注意してください。

プログラマーに最も必要なもの、そしてすべてのプログラマーに最も欠けているものはコミュニケーションです。誰もが他のプログラマーともっとコミュニケーションを取り、意見を交換する必要があり、それは自分自身の成長に非常に役立ちます。

まとめ

インターネット業界は、入ったらただ黙って過ごせる業界ではなく、学び続けて自分を磨き続ける必要があります。

この業界に参入したいと考えている将来のプログラマーは落胆しないでください。適切な方法とアプローチを見つける必要があります。オフラインの研修機関はばらつきが多いので慎重に選んでください。インターネットで情報を見つける方法を学べない場合は、何かが間違っています。現在ではオンラインリソースが非常に発達しているため、情報を見つけるのは比較的簡単です。

PHP プログラマーは言語自体に大きな危機感を抱く必要はありません。

急速な成長の鍵は、自分自身を正しく理解し、盲目的にトレンドに従わないことです。シナリオに基づいた学習に注目し、シナリオの中で遭遇する問題を考えて解決し、ボトルネックを解決または最適化できるようにする。このプロセスは良い学習プロセスでもあります。

最後に、共有してくれた PHP 専門家の Wei Yongqiang に改めて感謝します。

【関連おすすめ】

1. 寄り道は避けよう、老プログラマーが語るPHPキャリア開発プラン

2. プログラマーにとって34歳はハードル?年配のプログラマーの将来について話しましょう

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。