Tencent PCGモバイル端末面接一次試験

木曜の夜、テンセントの技術面接官と人事担当者が学校に来て、インターン採用のための講義を行った。当初はバックエンドのポジションに応募したかったが、人数が多く、モバイルの人数が比較的少なかったため、人事担当者は、その可能性のほうが高いと述べた。ということで、携帯に切り替えました。正直に言うと、今回の面接がテンセントとの初めての面接です。時間通知では面接は午後とありました。インターネットで面接体験を検索し、夕方と朝に備えました。特に良いというわけではありませんが、前回のインタビューよりも良い感じです。大きな進歩なので、今回のインタビューの内容も記録し、必要な方に残しておきます。

人事からは面接開始が午後1時で、サインインするには15分前に到着する必要があると連絡がありました。しかし、知識の復習しすぎと食事の遅れにより、到着は12時55分になってしまうため、ここでは長い記憶力が必要で、時間通りに行かなければなりません。

廊下に出ると、想定していた騒がしい面接状況とは異なり、人事担当者だけが私に電話をかけてきましたが、私はちょうど現場に到着したところです。行列はなく、面接教室に入るだけで面接に参加できます。

ここで注意していただきたいのは、今後技術職の面接に参加する際に、パソコンを持参する必要があるかどうかを何度も確認しておかないと不便であり、面接官に悪影響を与える可能性もあります。

この面接は面接官の隣に座る1対1の面接で、履歴書を提出すると面接官が履歴書を読み始めました。その中で、昨日面接官が履歴書を審査してくれたので、自己紹介は必要ありませんでした。そして私の履歴書について次のような質問をされました。

1. 私は Matlab に詳しく、スペクトラム アナライザの製作が完了したので、面接官から FFT について説明してほしいと頼まれました。当時はとてもショックでした。なぜなら、他の面接官がこの点について質問したことがなく、内容を補うために書いただけで、その部分は3年生の知識だったので、その知識に従って書きました。私の記憶では、おそらくバタフライアルゴリズムを使用して対応する係数を計算するという内容でした。緊張の為、内容が間違っている場合もございます。

2. 次に、 TensorFlowと PyTorch フレームワークについて書いたので、2 つのフレームワークの違いについて説明しますが、ここで覚えておく必要があるのは、履歴書に書く内容に穴を開けてはいけないということです。

3. Ubuntu を使用した Linux 開発経験を書いているのを見て、プロセスとスレッドの意味と違いは何なのかを尋ねましたが、この部分はオペレーティング システムについて勉強したことがないため、純粋に面接の質問の記憶に頼っています。昨日インターネットで答えました。これもあまり良い答えではありません。 

4. 私は MFC と Qt の開発を行ったことがあるので、この 2 つのソフトウェアの違いについて尋ねたところ、Qt の方が機能が豊富で、多くのライブラリを使用でき、インターフェースが優れていると答えました。その後、おそらく面接官は私が要点に答えていないと感じたので、ガイドは「クロスプラットフォームについてはどうですか」と言いました。そこで私は、Ubuntu にはクロスプラットフォーム開発があると言いましたが、彼は MFC にはクロスプラットフォームがあるのか​​どうかと尋ね続けました。試したことはないと言いましたが、以前 Windows で使用していたので、存在しないはずです。

5. 履歴書に C/C++ に精通していると書いてあったので、C++ の仮想テーブルとは何なのかと尋ねましたが、幸いなことに昨日は遅くまで起きて侯潔達のビデオを見て、もう一度復習しました。そこで、Hou Da 氏の PPT によると、主に継承において、仮想関数には仮想テーブルがあり、仮想ポインタは対応する仮想関数の場所を指すと、絵を描きながら説明していました。それから彼は私のペンを掴んで私と話し合いました。(実際は説明していましたが…)

 6. それから、おそらく彼は私にこれ以上質問したくない、あるいは私が彼を失望させたかもしれません... 時間は十分にあると見て、彼は私にコードのトピックを書いて欲しいと言いました。私が C++ という言語に精通している場合、言語を選択します トピックはまだアルゴリズムです。

私は無意識のうちに言語トピックを選択することを考えていたため、彼は次のような質問をしました。おそらく、文字列を実装するためにクラスを使用していることを意味します。突然怖くなったので、すぐに「アルゴリズムのトピックを変更してくれたら、私は文字列しか使用できず、文字を書くことができず、手動で顔を覆ってください!」と言いました。

そこで、クイックソートなどのソートアルゴリズムに関する問題が出てくるのかと思いきや、論理的思考に似た数学の問題で、コードを書くように求められました。このトピックは、インタビュアーがジェスチャーと説明を交えて私に伝えてくれましたが、要約すると、10101、00001、11010 など、ランダムにソートされた 01 の 2 進数のセットを入力し、2 進数がいくつあるかを尋ねるだけです。等価な数字からすべて0を得るには、0から1を反転する操作と、右から左へしか数えられない連続した数を一緒にすると、上記の2進数を得ることができますか?

たとえば、11010 から 00000 に変更するには、00000 -> 11111 -> 11000 -> 11011 -> 11010 という合計 4 つのステップが必要です。このようなアルゴリズムの問​​題は初めてで、面接も少し緊張しましたが、一人で挑戦し続け、論文の導出を1ページで書き、法則を探しました。最初の20分は、面接官が隣に座っていたり、緊張していたり​​したため、全く分からず、いくつかの推測が外れていました。面接官は私を見るのに飽きたのか、ああ、黙って携帯電話をいじるために後ろに歩き、あと10分時間をくださいと言い、3分座ってから答えを得ました。この質問の答えを見た人も多いと思います。

私の解決策は、画像処理のフィルター方法と同様に、演算子として「10」を使用して配列内を検索し、10 個の数値のセットが見つかった場合にカウンターを 1 つ追加することです。最後に、カウンターの値に 2 を掛けます。これは、10 が 2 回反転することを意味し、最後の桁が 1 か 0 かを確認します。1 であれば、カウンターの値に 2 を掛けて 1 を加えます。 0なので変化しません。(私は最初、この最後の手術について明確に考えていませんでした。面接官が質問をした後、私は数秒考えて計画を出しました。)私が提案した後、面接官は少し微笑みましたが、彼はまだ考えていませんでした。気が進まない。「なぜ「01」を使用しないのかと尋ね続けます。実際、私もこの質問について考えたことがあります。これは、脳が無意識のうちに 01 の演算子が間違っていると考え、それを検証しなかったときです。ただ、今回のインタビューで一番満足しているのは、脳の反応がとても早くて、すぐに答えてしまうということです 00001の例を挙げましたが、01を組み合わせると1回ひっくり返すだけで済みます。アルゴリズムが2回あると思ったのは間違いです。

私が説明した後、面接官は知ったかぶりで微笑み、時計を見て、「あなたが私のコンピュータでプログラムを書いてくれれば、私が次の人を面接に呼びます」と言いました。

しかし、半月以上論文の執筆で忙しかったのか、あまりコードを書かず、配列を使って数値を格納する方法や配列の宣言方法など、文法に問題が生じました。 。しかし幸いなことに、後でコア アルゴリズム モジュールを作成する際には間違いはありませんでした。

コードを書いているときに、面接官がハードウェア制御を専攻している学生(おそらく大学院生)と面接していて、C++についていくつか質問していましたが、その学生はC++があまり得意ではないようだったので、最終的には質問してもらいたいと思いました。クイックを書く その結果、彼はソート アルゴリズムを書くことができませんでした。そこで私は首を振って、先生が私にクイック ソートを書いて欲しいと言っているので、準備はできましたと言いました。インタビュアーと別のクラスメートは笑いながら、インタビュアーは「あなたがアルゴリズムを思いついたのではなく、あなたがそれを実現する必要があるだけです。」と言った。時間制限があるので早く書きましょう。その結果、彼のインタビューの後、私はまだ配列宣言の文法問題を解決する方法について考えていませんでした。しかし、それでも面接官と短いやりとりがあり、「早く並んでくださいと言われたら、もう準備はできています」と言いました。その結果、面接官は「デュアルコントロール専攻の学生で、ソフトも強くないので、簡単かもしれないクイックキューで聞いただけです」と笑顔で言いましたが、それでも書きませんでした。

全体として、今回の面接がどうであれ、前回の SenseTime の面接と比べて、私はかなり進歩したと思います。

次のステップは、より感覚を高めるために、よりアルゴリズム的な質問を行うことです。次のパート、両面を書く機会があれば幸いです。

 

おすすめ

転載: blog.csdn.net/loveSIYU/article/details/117122508