学歴のないプログラマーの上限は非常に低いですか?私はBATZの面接で最高得点を獲得した人でした。学歴があるため、大廠に立ち寄りました...

1.プログラマーにとって教育は重要ですか?

概要:学歴は、キャリアとしてのプログラマーだけでなく、多くのキャリアにとって、特に社会の最初の数年間は足がかりになります。2014年以前は、プログラマーは当時、仕事を見つけるのが非常に簡単でした。js+ html + javaを知っていれば仕事を見つけることができ、学歴の要件はありませんでしたが、現在は学歴の要件が高くなっています。特に一部の主要なBATメーカーは、大学院生の基準を徐々に引き上げているため、プログラマーにとって学歴は依然として非常に重要です。

2.私のBATJインタビューの経験

1、バイトビート

  • プロセス指向、オブジェクト指向、アスペクト指向について話します。
  • ポインタと配列の関係と違い。
  • Androidハンドラーについて話します。
  • キューとスタックの違いと使用法。
  • 2つのスタックがキューを実装します。
  • ブラウザの表示プロセスにURLを入力します。
  • httpリクエストメソッド。
  • getとpostの違い。
  • surficeViewとviewの違い。
  • アプリは、アイコンをクリックしてからプロセス全体を開始します。
  • スレッドセーフとは何ですか。
  • スレッドセーフのメカニズムは何ですか。
  • int plus plusのスレッドセーフを確保する方法(プラス記号は入力できません)。
  • Androidスレッド間の通信のメカニズムは何ですか。
  • CPUのスケジューリング方法は何ですか。
  • 空間的局所性と時間的局所性。
  • データベースの楽観的および悲観的なロック。
  • データベースのインデックス作成の役割、長所と短所。
  • TCP輻輳制御。
  • https暗号化された送信プロセス。

第二に、Baidu

  • 二分探索の時間計算量のデータ要件は何ですか?
  • データ構造の流れをどのように理解していますか?
  • HTTPS、CA
  • FTPプロトコル
  • ブラウザはページ表示プロセスへのURLを入力します
  • TCPパッケージ構造
  • 7層ネットワークモデル
  • 情報の保存方法、アプリケーションシナリオ
  • プロセス間通信の方法、aidl
  • バンドラーの原則
  • ハンドラーメカニズム
  • HandlerThread、IntentService、AsyncTask
  • クリックイベント配信メカニズム
  • スライディング競合解決
  • 放送登録方法、違い
  • 整然とした無秩序な放送、ローカル放送
  • サービスの開始方法、違い、目的
  • データプロバイダーの使い方は?原理?
  • レイアウトはどのように読み込まれますか?方法は何ですか

3.アリ

  • プロジェクトの自己紹介、ほとんどの問題の背後にあるのはあなたのプロジェクト

  • コンピュータネットワークHTTPプロトコル

  • なぜそれは2、3回ではなく3回の握手、4回の波の手ですか

  • TCPの長い接続と短い接続の違い

  • Socketの長い接続をどのように行いますか

  • データベースの3つのパラダイム設計原則、インデックス設計はどのように影響を与えるか

  • コンピュータシステムのカーネルモードとユーザーモード

  • Javaの基本:final、finally、finalizeの違いは何ですか

  • 抽象クラスとインターフェースおよび使用シナリオの違い

  • Javaメモリモデル

  • String、StringBuilder、およびStringBufferの違い

  • HashMap実装のソースコード、およびスレッドセーフなマップ

  • スレッドステータスとスレッド通信、スレッドロック

  • スレッドセーフを確保する方法

  • 同期モニターの設定方法

  • volatileキーワードは何をしますか

アンドロイド関連:

  • アクティビティライフサイクル分析(たとえば、シャットダウンボタンを押したときに何が起こるか)

  • アクティビティ開始モード。すべてのアプリケーションシナリオ

  • サービスの2つの開始方法は異なります

  • バインダーの原理、メモリコピーが1回である理由、およびIPCメソッドがまだ知られているもの

  • どのソースコードを読んだかハンドラーのソースコードについて話しましょう

第四に、バイトビート

  • JVM GC:一連のマーキングアルゴリズム、リサイクルアルゴリズム、およびガベージコレクター
  • ThreadLocal実装の原則、マップのキー値は何ですか
  • 静的ブロックでインスタンスメソッドを呼び出すことはできますか
  • コンカレントハッシュマップでスレッドセーフを実現するにはどうすればよいですか?ロックせずにコンカレントハッシュマップを読み取る場合、読み取りの一貫性を確保する方法(ノード配列は揮発性で変更されます)
  • コンカレントハッシュマップを使用する場合、HashMapの外部ロックは2つの効率とどのように比較されますか(フルテーブルロックとバケットロック)
  • ファイル転送時にNIOのバッファはどのように機能しますか
  • Pの親クラスには2つのサブクラスABがあります。最初にD.classをロードし、次にBがD.classをロードします。ロードが完了した後、クラスDは同じクラスです(これは、問題を理解していなかったことを意味する場合があります) )
  • 注釈を作成する方法
  • エグゼキュータの4世代スレッドの実装クラスの特徴は何ですか?また、それらはどのシナリオに適していますか?
  • メソッドにはAa = new A();のようなステートメントがあり、メソッドの実行後にAのインスタンス化されたオブジェクトをGCでリサイクルできます。
  • ファイナライズに関連して、ファイナライズが呼び出された場合、オブジェクトは破棄されますか?ファイナライズは1回だけ実行されますか?
  • 同期されたロックのいくつかの状態
  • ジェネリック医薬品の実現原理

手書きのコード(幸運を祈ります。質問するのは難しくありません。すぐにいくつか書きました):

  • いくつかのシングルトンモード、違い
  • 生産者/消費者モデル
  • 二分木順走査

経験のまとめ

個人的な経験、これはあなたの雇用目標が何であるかに依存します、いくつかの会社は、誰もいない場合、先に進まないでください。
1.中小企業。この種の企業は基本的に学歴を重視せず、同時にできる人数、つまり知識の幅に依存します。したがって、バックエンドだけでなく、バ​​ックエンドも知っている必要があります。フロントエンド、インターフェース設計、データベース、デプロイメント、ハードウェアなどの一連のテクノロジーは、各テクノロジーを深く学ぶ必要はありませんが、1人の人がプロジェクトのすべての作業をサポートできなければなりません。面接では、入社時に開発部門全体で自分だけだと気づいたので、自分がやったことや自分でやったかどうかに気を配ります。
2.インターネット会社。このタイプの企業は、学歴の考慮のほんの一部しか取りません、そしてそれは個人的な能力、特に前のものとは正反対である特定の分野の深さについてです。面接では、アルゴリズム能力、思考能力、協力能力に焦点を当て、解決策を提示するためにいくつかの特定のケースが提示されることがよくあります。このタイプの企業に入ると、特定のポイントについてさらに深く掘り下げます。もちろん、あなたの学校が十分に良ければ、面接官はあなたの先輩であり、あなたのリーダーはあなたの先輩であり、あなたのリーダーのリーダーはあなたの先輩でもあることがわかります。
3.従来の大規模なソフトウェア会社。このタイプの企業は、新卒者の学歴を評価する上で非常に重要な部分です。学歴が不十分であるか、学校が良くない場合、たとえたとえあなたが履歴書のスクリーニングに合格できない可能性が非常に高いです。あなたは強力なプロジェクト経験と個人的な能力を持っています。もちろん、他社で長年の経験があれば、履歴書審査に合格する可能性は非常に高いです。
44.一部のソフトウェア開発に関与する他の業界の大企業。教育資格は、そのような企業が能力を測定するための唯一の基準です。なぜなら、彼らの人事部は、学術資格とは別にあなたをどのように測定できるかを知らないからです。

とはいえ、学校が苦手な学生にとって、インターネット業界は実は何年にもわたって寛容でした。少なくともチャンスを与えたいと思います。10年前に卒業したばかりの私のことを考えてみてください。学部生だったので、どの会社でも経験がありませんでした。悲惨ではありません。

しかし、個人的な闘争と機会はあなたの成功のための重要な条件です。

ソースコードのコンパイルと分析(部分表示)

自分で直接リンクを取得します:[クリックして取得]

関連する知識が必要な場合は、私の[ GitHub ]を確認できます。また、時間を節約するために、すでに習得したことは無視してかまいません。

おすすめ

転載: blog.csdn.net/Android725/article/details/114940001