インタビューに誰もいないことからBaiduのオファーを開催することまで、ワイルドなプログラマーの成長体験を取り戻してください

ワイルドプログラマーの成長経験

私は山東省の普通の学生で、機械工学と電気工学を専攻しており、15年間Androidの開発に転職しました。ワイルドプログラマーとして、成長過程は比較的でこぼこです。私はトレーニング機関や個人の自習に頼り始めました。初期段階でインターネット開発に参加することは非常に困難でした。初期のエントリー段階では、多くの学生が訓練機関からの排除が可能でした。変化に気づいたのは幸運でした。クラスメートと初めてのマネージャーが信頼を得るのを手伝ってくれてとても感謝しています。2年以上の継続的な学習と蓄積に依存して、私は初心者から資格のあるツールパーソンに成長し、個人の給与を2倍にする転職の仕事も完了しました。

2社目では、技術ビジョンや拡張の深さを徐々に拡大し、開発や様々な問題に冷静に対応することができました。昇給制度がないため、転職計画を立てる計画がありますが、意外と2年かかります。まとめ・積み上げに頼って、転職は当然のことです。幸運のボーナスはあまりありません、そしてそれはすべて川を渡ることについてです。

したがって、私は成長するのに最も愚かな人です。最初の成長は遅いですが、スタミナがあります。成長している限り、私はほとんど自分自身に頼っています。インスピレーションを与えるチキンスープを自分に植え付け、他の人の強みからもっと学び、他の人の経験を謙虚に尋ねることができます。学習習慣。成長もとても良いです。速いです。今年もBaiduの申し出に成功し、上記は整理されました!

Baidu Andrews Engineers Agency Recruitment Experience(片側、両側、三側はすでにオファーを受けています)

片側:

§アルゴリズム

あなたにn個の数を与えて、最大のm個の数を見つけてください

関連する知識ポイント:[stack](javascript:void(0))[sort](javascript:void(0))[divide and conquer](javascript:void(0))

関連する知識ポイント:[stack](javascript:void(0))[sort](javascript:void(0))[divide and conquer](javascript:void(0))

関連する知識ポイント:[stack](javascript:void(0))[sort](javascript:void(0))[divide and conquer](javascript:void(0))

関連する知識ポイント:[stack](javascript:void(0))[sort](javascript:void(0))[divide and conquer](javascript:void(0))

§等しいとハッシュコードについて話す

§スレッド作成の方法は?スレッドプールの原則について話しますか?スレッドを同期する方法は?

§HashMapはどうですか?

§Howのサブ支柱実装する百度(データベースと移動端末2つの側面から、それぞれ、メインポストでコメント投稿)Tiebaを

§フォーラムのメインインターフェイスに多数の投稿があり、これらの投稿の写真がメインインターフェイスに表示されている場合(各投稿に9つ)、OOMを回避する方法。(2つのアイデアについて話しました。1つはサムネイルを表示し、クリックして大きな画像を表示することです。もう1つは水平のリストビューで、スライドして詳細を表示し、範囲外にスライドしてビットマップを復元します)。

§画像圧縮プロセスとキャッシュについてはどうですか?LinkedHashMapとHashMapの違いは何ですか?根本的な原則は何ですか?

両面:

§アルゴリズム

それが標準のIPアドレスであるかどうかを判断するための文字列を提供します

関連知識ポイント:[文字列](javascript:void(0))

関連知識ポイント:[文字列](javascript:void(0))

関連知識ポイント:[文字列](javascript:void(0))

関連知識ポイント:[文字列](javascript:void(0))

関連知識ポイント:[文字列](javascript:void(0))

関連知識ポイント:[文字列](javascript:void(0))

(書き終えた後、すべてのテストケースを書き出すように頼んだところ、いくつか欠けていることがわかりました。インタビュアーは、これらのテストケースに基づいて書き直して、コードの拡張と最適化の機能を調べさせてくださいと言いました。)

§自己紹介し、プロジェクトについて話し、より多くのデータソースとデータベース設計について質問してください。プロジェクトについてはもっと話し合いがあります

§データベース共同クエリの例を挙げて、簡単なSQLステートメントを記述します。(参加)

§TCPのスリーウェイハンドシェイクについて教えてください。なぜそれはスリーウェイハンドシェイクなのですか?なぜ4回振られるのですか?

§TCPスライディングウィンドウの原理を知っていますか?(原則は明確ではないと言いましたが、彼がどのような問題を解決するかは知っています。)

§hashMapスレッドは安全ですか?スレッドセーフを実現する方法は?

§Androidの永続ストレージについて教えてください。

§Androidの起動モードとシナリオについて話しましょう

§AndroidのANRを知っていますか?それを回避する方法は?

§メモリオーバーフローとメモリリークについて話します(ハンドラーは中央に記載されています)

3つの側面:
§なぜ転職を選択したのですか?

§あなたのグループの人々はどうですか?

§プロジェクトの問題をどのように解決しますか?

§仕事でどのような問題に遭遇しましたか?

§通常、どのように勉強しますか?

§勉強以外にどんな本を読んでいますか?

面接の準備

以下は、私が1年近く編集に費やしたインタビュー質問バンクです。自分で面接に行ったときや、他の人が面接に行ったときに出会った質問も含めて、統一された形でまとめましたので、皆様のお役に立てれば幸いです。作者は簡単ではありませんので、間違いはご容赦ください。

1.Androidベーシック+アドバンスト

1.アクティビティ起動モード
2.アクティビティ起動プロセス
3.プロセス通信
4.Androidバインダーアプリケーション層の概要と分析
5.プロセスキープアライブメソッド
6.ソースコードからのハンドラールーパーとmessageQueueのアイデアの理解
7.ハンドラーの実装の遅延postdelay()を送信するメッセージ
8. Looper.loop()の無限ループが原因で、Androidのメインスレッドがスタックしないのはなぜですか?
9.RxJavaの原則と
10.okhttpソースコード分析のパッケージ化と使用方法
11.retrofitソースコード分析
..。

スペースに限りがあるため、面接の質問の一部のみを共有できます。面接の質問と回答の詳細は、こちらから無料ダウンロードできます読んでダウンロードしてください〜無料でみんなと共有してください、それは感謝のフィードバックです。

12.LeakCanaryコアの原則ソースコード分析
13.LruCacheの使用と原則
14.ARouterの原則
15.アノテーションフレームワークの実装の原則16.Android
コンパイル時のアノテーションに基づいてプロジェクトを作成する方法
17.RxJava2 + Retrofit2 + OkHttp3の基盤、パッケージ、プロジェクト使用
18.Rxjava2.0 +レトロフィット+ Okhttp(パッケージ使用)+ MVPは、フレームワーク構築するための
19のAndroidプラグインとコーミングホットフィックス知識
における20の一般的なメモリリークの問題と解決策
どのように検出し、Androidのメモリを見つけるためにAndroidの開発21リーク
22.画像が占めるメモリアルゴリズム
23.画像がソフト参照を使用する必要がある理由とMVPモードのビューインターフェイスが弱い参照を使用する
理由24.DataBindingとLiveDataに基づくMVVMの実践
25.アプリの安定性の最適化
26.アプリの起動速度の最適化
27。アプリのメモリの最適化
28.アプリの描画の最適化
29.アプリのスリム化
30.ネットワークの最適化
31.アプリのバッテリーの最適化
32.Androidのセキュリティの最適化
33.WebViewの読み込みが遅いのはなぜですか?
34.カスタムビューを最適化する方法

2つ、Javaベーシック+アドバンスト

1.HashMap
2.ArrayList
3.LinkedList
4.Hashsetソースコード分析
5.メモリモデル
6.ガベージコレクションアルゴリズム(JVM)
7。ガベージコレクションメカニズムとSystem.gc()の呼び出しの違いは?
8.クラスのロードプロセス
9.リフレクション
10.マルチスレッドとスレッドプール
11.マルチスレッドの作成、スレッドプールの動作原理
12.デザインパターン(6つの基本原則、プロジェクトで一般的に使用されるデザインパターン、手書きのシングルトンなど)
13。
再開ブレークポイントから14.Javaの4つの主要な参照
15.Javaジェネリック
16.インターフェイスと抽象クラスの違い
17.Javaコンテナクラスの設計からの抽象クラスとインターフェイスのアプリケーションについて説明します。

スペースに限りがあるため、面接の質問の一部しか共有できません。面接の質問と回答の詳細については、ここをクリックして無料でダウンロードしてください。読んでダウンロードしてください〜無料でみんなと共有してください、それは感謝のフィードバックです。

3つ目は、データ構造とアルゴリズムの面接の質問です。

1.一般的に使用されるデータ構造は何ですか?
2。配列(1)1から100までの整数配列で欠落している数値を見つける方法(2)特定の整数配列で重複する数値を見つける方法(Xiaomi)(3 )ソートされていない整数配列の最大値と最小値を見つける方法(バイトビート)(4)Javaで特定の配列から複数のコピーを削除する方法(5)大きな数字を追加する(今日)見出し)

3.リンクリスト(1)。最初のクエリと最後から2番目のクエリはどうですか。(これは異なります。最初のものはヘッドノードに直接与えられ、最後から2番目のものは最初から最後までクエリされる必要があり、2つのステップが実行されます)(Tencent)(2)。ArrayListの基礎となる原則(didi )(3)。1回のトラバーサルで単一のリンクリストの中央値を見つける方法は?(Ping An)(4)。特定のリンクリストにサイクルが含まれているかどうかを証明する方法は?サイクルのヘッドノードを見つける方法は?( Youku)(5)2つの交差単一リンクリスト、交点を見つける(Huawei)(6)単一リンクリストの長さを取得する方法(360)(7)を使用せずに単一リンクリストを逆にする方法再帰?(Xiaomi / Meituan)(8)。リンクリストにリングがあると判断するにはどうすればよいですか?(滴滴出行)

4.キューとスタック(1)スタックを使用してキューの機能を実現する方法(Guangzhou Lizhi FM)(2)1つのキューを実現するための2つのスタック(Mushroom Street)(3)1つのスタックを実現するための2つのキュー(Tencent)(4))。キューとスタック、およびそれらの最下位の実装を比較します(Tencent)

5.バイナリツリー(1)特定のバイナリツリーでプレオーダートラバーサルを実行する方法(Baidu)(2)ポストオーダートラバーサルアルゴリズムを実装する方法(Baidu)(3)与えられた配列の二分探索?(Suning)(4)。プレオーダートラバーサルは{1,2,4,7,3,5,6,8}であり、ミドルオーダートラバーサルは{であることが知られています。 4,7,2,1,5,3,8、6}、その二分木はどのようなものですか?(5)2つの二分木AとBを入力し、BがAの下部構造であるかどうかを判断します。(Iqiyi)(6)二分木(YY)をそれぞれシリアル化および逆シリアル化するために使用される2つの関数を実装してください。(7)バランスの取れた二分木と赤黒木との違いは何ですか?(バイトビート)(8)バランス二分木とは何ですか?その特徴は何ですか(美団)(9)Bツリー、B +ツリー

6. HashMap(1)。HashMapの基本原則は何ですか?スレッドセーフですか?(Baidu)(2)HashMapにはどのように実装されていますか?(Didi)(3)hashMapをいつ展開する必要があるか、そして展開のresize()はどのように達成されるかについて話しますか?(4)ハッシュ衝突とは何ですか?それを解決する方法は?(Didi)(5)。HashMapとHashTable(Xiaomi)の違い(6)。HashMapはいつ拡張する必要があり、拡張resize()はどのように実装されますか?(Didi)(7)。ハッシュマップconcurrenthashmapの原則(Meituan)(8)。arraylistとhashmapの違い、なぜ数値のフェッチが速いのですか?(バイトビート)

7.図(1)。出力行列(2)を回転します。行列int matrixA [m] [n]が与えられると、各行と各列は昇順であり、アルゴリズムが実装されて行列内の要素が検索されます。そごう

8.ソートアルゴリズムとは何ですか?
9.検索アルゴリズム
10.文字列

第四に、コンピュータネットワークの部分

1.HTTPプロトコル
2.TCP / IPプロトコル3.TCP
の3ウェイハンドシェイクと4つの手を振るハンドの理解と質問のインタビュー4.Web
ページにURLを入力して、インターフェイス全体をレンダリングし、途中で使用されるプロトコルを入力します?
5. TCPとUDPの違いは何ですか?
6.いくつかのHTTP要求メソッドが
詳細に紹介されています。7。HTTP要求と応答メッセージの形式、および一般的なステータスコード
8.TCP接続で送信できるHTTP要求の数

スペースに限りがあるため、面接の質問の一部しか共有できません。面接の質問と回答の詳細については、ここをクリックして無料でダウンロードしてください。読んでダウンロードしてください〜無料でみんなと共有してください、それは感謝のフィードバックです。

成長経験

ナンセンスな話をするのではなく、重要なポイントについて話してください。
(1)技術的な要約が必要です。技術的なポイントの要約、遭遇した落とし穴の要約、および主要な技術的なポイントのトピックの要約(メモ+コード例)、メモに整理され、しばしばめくられます(ブログを書くときに最初に要約するためにメモを使用する必要があります)
(2)持っているメモを取る習慣。記録技術、異常、新技術、レビュー要約、日報要約、研究計画、良いアイデアなど。要約できるすべての技術的ポイントはメモにまとめられます。後で確認するときに、自分の思考の視点を増やし、将来のコアポジションに備えることができます。私はこの習慣を2年以上維持しており、今では転職を完了することができます。この習慣は私に最大のサポートを与えてくれ、当然のことです。
(3)ソースコードを見て学習します。より多くの好奇心、楽しみとして、長い間、あなたは自然に良くなるでしょう。
(4)会社に期待している場合は責任を持って行動し、リーダーが困難や過酷な行動をとっている場合は、現実的に対応することを学ぶ必要があります。上司をサポートするための試練かもしれません。

おすすめ

転載: blog.csdn.net/weixin_43901866/article/details/115287213