大学の卒業証書は、建設現場で働いていました。アリの上級建築家になるために6年間苦労し、現在は年収100万ドルです。

彼は田舎で生まれ、警備員として働き、工場で働き、大学の学位を持っています。彼は自分の努力で卒業後6年以内に年収100万を達成するにはどうすればよいでしょうか。ユンユンコーダーの普通のメンバーとして、彼はどのようにして高給を得るために段階的にBATに反撃したのですか?

私はソフトウェア開発に興味があるので、仕事を探していたときにIT業界のポジションに投資してきました。私がこの業界に最初に足を踏み入れたとき、面接資料を一緒にハッキングすれば豊作になると思いました。その結果、大企業は言うまでもなく、見下している多くの中小企業の筆記試験問題は合格できません。

不安フェーズ

その後、私はサーバー側の開発を行うために小さな地元の会社に行きました。サーバーサイド開発と呼ばれていますが、実際にはシステムインジケーターの監視機能であり、DBからインジケーターデータを読み取り、グラフ形式でブラウザーに表示します。使用されているテクノロジーは、SpringMVCセットにすぎません。この種のCRUD作業内容は長い間行われ、純粋に手作業であり、技術的なビジョンを開く方法はありません。

このような単純な関数型コードを書いたとしても、私が書いたコードの品質は低すぎて数千ドルの給料に見合わないと常にリーダーから批判されていました。人々はいつも顔を欲しがっています。この状況を変えるために、彼らは通常の仕事で極端なことをする方法を考え始め、コードの品質に注意を払い始め、「Javaプログラミングの考え」を本当にかじり始めました。そして「効果的なジャバ」、「デザインパターン」これらの本。

同時に、コード開発の前に、より多くのアーキテクチャ図とデータフローチャートを描くように強制し、コードを書くときにコードを階層化するように強制します。半年のトレーニングの後、緩く結合された非常にまとまりのあるコードを徐々に書くことができます。全画面でif-elseが飛ぶ現象が変更されました。リーダーはもはや私のコードが悪いとは言わず、数百ドル(知識はお金です)をくれました!

 

 

当時、これが優秀なプログラマーのコアコンピタンスだと思っていたので、勇気を持って大企業のポジションに投票しましたが、面接の招待状は届きませんでした。その後、いくつかの小さな会社へのインタビューに投票しましたが、次のようなインタビューの質問のいくつかについてわからなかったため、オファーを受け取りませんでした。

リレーショナルデータベースと比較して、NoSQLの利点は何ですか?また、どのようなシナリオで使用しますか?すべてのアカウントログイン情報は、1日約100Gの分析ログに保存され、特定の期間で最もログイン時間が長いアカウントを見つけ、同時ボリュームはどのくらいですか、雪崩現象をどのように回避しますか?

これらの問題から、文法とデザインパターンは基本的なプログラマーのスキルにすぎないことに気づきました。さらに開発したい場合は、データ構造、高い同時実行性、分散テクノロジーの点で改善する必要があります。当初は習得が非常に難しく、基盤が弱く、これらの技術の使用シーンがなく、フォーラムやブログなどの断片的な記事しか読めず、進捗も遅かった。

体系的に学ぶためには、本とオンラインコースがより良い選択です。「Java並行プログラミングの実践」、「大規模分散型Webサイトアーキテクチャの設計と時間」、「Spring Cloud and Microservice Construction」などの本を購入し、何度か読んだ。それから私はインターネットでいくつかのビデオを見ました。いくつかは無料で、いくつかは有料です。また、1年ほど体系的に一連のコースを学び、その後、Java関連のスキルをより体系的に理解しました。同時に、学際的でない背景や確かな基礎知識が不足しているエンジニアにとっては、漏れのチェックや欠員の補充にも効果的に役割を果たすことができます。

その後、これらの技術を仕事に生かしてみました。当時の状態は「ハンマーを持った後、いたるところに釘があります」。新技術を学んだ後は、どんなプロジェクトでも無理やり使いたい。リーダーもいる私は頭がおかしいと言いますが、この経験を軽蔑する必要はないと思います。すべてに認知プロセスがあり、それは蓄積でもあります。

1.パフォーマンスチューニング

フロントエンドのインタビューを扱っている場合でも、製品エクスペリエンスを向上させている場合でも、パフォーマンスの最適化は避けられないトピックです。

最適化の目的は、ユーザーに「速い」と感じさせることです。ユーザーに速く感じさせるにはどうすればよいですか?

読み込み速度は非常に速く、ユーザーは入力URLを開き、Enterキーを押すとすぐにページが表示されます

読み込み速度は速くなりませんでしたが、ユーザーはあなたのウェブサイトが速いと感じています

パフォーマンスの最適化は、ガベージコレクション、仮想マシン、基盤となるオペレーティングシステム(OS)の設定など、複数の要因に依存します。開発者が分析および最適化するときに使用するツールは複数あります。ソースコードの最適化および分析のためのJavaツールを読むことで、それらを学習して使用できます。

2つのアプリケーションが同じ最適化方法を使用することはできず、Javaアプリケーションを最適化するための完全な参照パスがないことを理解する必要があります。ベストプラクティスを使用し、適切な方法に従ってパフォーマンスの最適化を処理します。最高のパフォーマンス最適化を実現するには、Java開発者として、Java仮想マシン(JVM)と基盤となるオペレーティングシステムを正しく理解している必要があります。

以下の5つの知識体系は、私が業界で長年働いてきた経験をまとめたものであり、現在最も主流の技術です。詳細と詳細を知りたい場合は、転送+フォローして[アーキテクチャ情報]に返信し、学習資料を入手して、上級アーキテクトによって記録されたビデオ録画を共有できます:Spring、MyBatis、Nettyソースコード分析、高い同時実行性、高いパフォーマンス、および配布アーキテクチャーとマイクロサービス・アーキテクチャー、JVMパフォーマンスの最適化、および並行プログラミングの原則は、アーキテクトにとって不可欠な知識システムになっています。

次の図は、パフォーマンスを最適化するために学習して理解する必要のある知識システムの要約です。

 

 

2.ソースコードの解釈

ソースコード分析は一種の重要な知識です。この重要な知識を使用すると、変更されないまま変更される可能性があります。多くの人にとって、ソースコード分析は非常に退屈で、ぎくしゃくしていて、理解するのが困難です。

ソースコードを読むと、技術的な基盤+知識への強い渇望+忍耐という3つのコアポイントがあると思います。

それがソースコードを読むための中心的な原動力だと思います。私はほとんどのプログラマーを見ます、学習に対する彼らの態度は基本的にこれらのレベルです(非常に極端です):

1.プロジェクト自体にのみ注意を払います。理解できない場合は、baiduだけに注意してください。

2.プロジェクトをうまくやるだけでなく、プロジェクトに関連する技術書を読んだり、ウィキペディアを見たりします。

3.プロジェクトに関連する本を読むだけでなく、IT業界の本も読みます。たとえば、Javaを学ぶときは、LISPなどの関数型言語についても学びます。

4.いくつかのオープンソースプロジェクトを探し、多くのサードパーティフレームワークを試し、デモを作成します。

5.基本フレームワーク、J2EE仕様、デバッグサーバーカーネルを読みます。

ほとんどのプログラムは最初のタイプですが、5番目のタイプには強い関心が必要なだけでなく、勇気も必要です。私はそれを読むことができますか?実は読めます。

忍耐は本当に重要です。ソースコードの読み方についての説明記事や本はめったに見られず、誰もあなたにそれを読むように頼んだり勧めたりすることはないからです。あなたはしばしば読書の過程で立ち往生し、カードの所有者は迷路で立ち往生するかもしれません。現時点では、一時的に中断して、API構造、フレームワーク設計図などの外部から見る必要があるかもしれません。

次の図は、私が現在最も学ぶべきソースコードの知識ポイントの要約です。

 

3.分散

分散システムは古くて幅広いトピックであり、近年、「ビッグデータ」の概念の台頭により、新たな若さと活力を示しています。さらに、分散システムは、理論モデルとエンジニアリング手法の両方を強調する主題でもあります。機械学習などの研究の方向性と比較して、分散システムを研究する学生は、「始めるのは簡単ですが、深く理解するのは難しい」と感じることがよくあります。確かに、分散システムの学習には、数学の知識はほとんど必要ありません。

分散システムは複雑で幅広い研究分野です。1つまたは2つのオンラインコースを学習したり、1つまたは2つの本を読んだりしても、そのすべてのコンテンツを完全に網羅できるとは限りません。

一般に、分散システムのタスクは、複数のマシンを有機的に組み合わせて接続し、コンピューティングタスクまたはストレージタスクなどのタスクを一緒に完了できるようにすることです。近年の分散システム研究を分類しなければならない場合、個人的には次の3つの部分が含まれると思います。

1.分散ストレージシステム

2.分散コンピューティングシステム

3.分散管理システム

次の図は、近年最も主流の分散テクノロジーの要約です。

 

 

4.マイクロサービス

現在、マイクロサービスは非常にホットであり、誰もがマイクロサービスアーキテクチャを使用していると主張していますが、マイクロサービスアーキテクチャとは正確には何ですか?マイクロサービスアーキテクチャは開発トレンドですか?私たちは皆、これらの問題について明確に理解していません。

モノリシックアーキテクチャの下でさまざまな問題を解決するために、マイクロサービスアーキテクチャが誕生しました。飼いならすのが難しい肥大化したモンスターを作るのではなく、できるだけ早くサービスを分割することをお勧めします。マイクロサービスの中心的なアイデアは、サービスを分割および分離して複雑さを軽減することです。マイクロサービスは、各サービスが単一の機能を持つことを保証するために、可能な限り機能の合理的な分解を強調し、単一責任の原則に従って役割を明確にします。各サービスを軽量化して、柔軟性と再利用性を高めます。また、各サービスのリソース要件に応じて、個別に展開したり、水平方向に拡張したりすることもできます。

次の図は、マイクロサービスについて学ぶ必要のある知識ポイントの要約です。

 

 

5.エンジニアリング

うまくやりたいのなら、まずツールを研ぐ必要があります。初心者でも上級開発者でも、最初に優れたツールを選択する必要があります。開発効率とチームコラボレーション効率を向上させます。考える時間を増やしてください。

 

 

目標のアイデア

なぜ私はBATのような大規模なインターネット会社で働くことに夢中になっているのですか?魅力的な給料に加えて、挑戦できる大規模な分散技術があるからです。

普通のエルベンの学校を卒業してから、インターネットのトップ企業の上級Java開発エンジニアになるまで、何年にもわたってモンスターをアップグレードして戦う方法を振り返ると、私は多くの感情を感じずにはいられません。いくつかの考えをお話しさせていただきますと、次の3つのポイントが過去2年間の私の最大の気持ちになるはずです。

コンフォートゾーンから飛び出して目標を見つけることが、進歩の出発点です。現在の仕事であまりにも多くの新しいテクノロジーに触れることができない場合は、外部の会社に面接を試みることができます。これは、ある程度の学習目標を見つけるのに役立ちます。

温水でカエルにならないように、できるだけ早くやめなければなりません。大企業に飛びたい学生にとって、それはできるだけ早くなければなりません。同じレベルで、大企業は「可能性」により多くの注意を払うでしょう-年齢が高いほど、可能性は小さくなります。

常に学びたいという願望を持ち続けてください。エンジニアにとって、学習は決して終わりません。しかし、一生懸命勉強するだけでは十分ではありません。自分の勉強に注意を払う必要があります。目前のプロジェクトと周囲の「大きな牛」の指導に加えて、読書とオンラインコースが最も効果的な方法です。少量を使用してください。貴重な時間と引き換えにお金は非常に価値があります。

 

仕事のメンタリティについて

どこにでもいる会社のことを考えています。仕事に行くときは、仕事をこなすのに苦労することはありません。リーダーと頻繁にコミュニケーションを取り、最高のソリューションを提供するのが得意です。

自分を表現する勇気を持ってください。リーダーは最初に手を挙げて質問に答えます。恥ずかしい思いをしたり、間違いを犯したりすることを恐れません。不足しているところはどこでも補い、欲求不満を恐れません。

今日のベッドの快適さは明日には代償を払わなければなりません。何でも長期計画が必要です。今日または今年以降はもうなくなると誰が言っても過言ではありません。平和の時代の危険に備えるためには、どんなに良い立場であっても、大切にし、感謝しなければなりません。

プレゼントは最高だということわざがあります。手に入らないものは「必ずしも良いとは限らない」という3つの言葉でしか表現できず、仕事では寂しくてたまらないですが、繁栄もあります。

「悪い背景から生まれて、補うために一生懸命働いてください。」その上、あなたが今勇敢でなければ、誰もあなた自身のためにより良い明日を描くことはありません!

個人学習フレームワークのビデオ資料のセットは、すべての人と無料で共有されます。お役に立てば幸いです。

私に従って記事を転送し、プライベートメッセージで受信し、ポータルクリックして無料で学習資料を入手してください

ソースコードを分析する

分散アーキテクチャ

パフォーマンスの最適化

Javaインタビュー回避ガイド

Javaインタビューの質問のコレクション

おすすめ

転載: blog.csdn.net/weixin_45132238/article/details/113988183