初級python webバックエンド開発エンジニアの面接概要

3564 ワード

http://blog.csdn.net/ayocross/article/details/56509840     url
まず私の状況を紹介します:通信の背景、仕事は1年余り2年未満です.これまでC++のMFCソフトウェアインタフェースの開発をしてきました.会社はある不況の国有企業研究所です.(ほら、私の仕事の経験はとても水です:1は方向が間違っています;2は業界が偏っています).そして現在はPythonのバックエンド開発という仕事を探しています.使用するフレームワークはdjangoです.
これまでCSDNとその他のいくつかの技术のブログ/フォーラムを通じてみんなの経験を吸収して、感谢のあまり、何かを出力したいと思って、みんなに幸福をもたらして、そのためこの水文があって、みんながもっと私の経験と教训を吸収することができることを望んで、早く1部の自分の満足する仕事を探し当てます!
面接のいくつか:北京の2つの創業会社は、規模はいずれも40-50人です.果物の殻(電話面に止まり、フックを引いて投げる);知っています(電話の面に止まって、フォーラムの投稿後の内推);愛奇芸(フックで投げた);杭州の網易.
面接のこのラウンドで、最大の感じは1つです:ふだん必ず毎日コードをコードすることを堅持しなければなりません.どんなに腐ったプロジェクトでもgithubをアップロードし続けなければならない.本当に、あなたが1週間に5日以上Gitをアップロードし続けることができれば、半年後、面接官は絶対にあなたを刮目します.
他の感じ:会社によってポイントが違いますが、本当にこのブログのブロガーが言ったように、バケツの原理は、どれも少なくはありません.私は普段から自分のブログシステムだけに注目していて、他の部分をしていないので、爱奇芸が手書きコードの上に倒れてしまいました...ああ、悲しいです.いつもleetcodeをブラシして、剣指offer/面接金典を見て、すべてやり方です~~
面接といういくつかの会社で出会った面接/筆記試験の問題は、今でも覚えていることは以下の通りです.ほとんどが基礎かもしれませんが、見ているだけではなく、聞かれたふりをして、答えを言ったり書いたりしたほうがいいです.(会社別ではありません)
python構文およびその他の基礎部分
可変と可変のタイプ;  浅いコピーと深いコピーの実現方式、違い;deepcopyもしあなたが設計に来たら、どのように実現しますか?  __new__() __init__()の違い;  いくつかのデザインパターンを知っています.  符号化と復号化を知っていますか.  リストはlist comprehensionとジェネレータの優劣を導く.  装飾器とは何ですか.関数の後に飾りたいなら、どうすればいいですか.  装飾器を用いて実現された単一のモードを手書きで書く.  装飾器を使用する単例と他の方法を使用する単例は、後続の使用において、どのような違いがあるか.  手書き:正則メールアドレス;  ごみ回収の紹介:参照カウント/世代別回収/孤立参照リング;  マルチプロセスとマルチスレッドの違い;CPU密集型は何に適していますか.  プロセス通信の方式はいくつかあります.  スレッドよりも速い理由を説明します.  rangeとxrangeの違い(彼の妹の私が学んだpy 3...);  C/C++バックグラウンドがあるので、IPアドレス文字列(例えば「172.0.0.1」)を32ビットバイナリ数の関数に変換するCを手書きで書く必要があります.
アルゴリズムソートセクション
手書き速列積み上げいくつかのよく使われるソートのアルゴリズムの複雑さはいくらですか.速排の平均複雑度はいくらで、最悪の状況はどのように最適化しますか?  手書き:長さnの無秩序なリストが知られていて、要素はすべて数字で、すべての間隔dの組み合わせを探し出すことを要求して、あなたの書いた解法アルゴリズムの複雑さはいくらですか?  手書き:1つのリストA=[A 1,A 2,...,An]は、リスト内のすべての組合せ状況を印刷することを要求する.  手書き:1行pythonで1+2+3+...+10**8を書きます.  手書きpython:文字列が返信であるかどうかを再帰的に判断する.  一方向チェーンテーブルの長さは未知で、その中にリングがあるかどうかをどのように判断するか.  一方向チェーンテーブルは、高速ソートアルゴリズムを使用してソートする方法です.  手書き:長さnの無秩序なデジタル要素のリスト、どのように中位数を求めて、どのようにできるだけ早く中位数を推定して、あなたのアルゴリズムの複雑さはいくらですか;  内部の未知のフォルダを巡回する方法(2つのツリーの優先的な巡回方法)
ネットワークインフラストラクチャ
TCP/IPはそれぞれモデルのどの層にありますか.  socket長接続とはどういう意味ですか.  selectとepollはどこが違うか知っていますか.  TCP UDPの違い3回握手して4回手を振って話します.  TIME_WAITが多すぎるのは何のためですか.  httpの1回の接続の全過程:ユーザーからrequestを開始し、ユーザーがresponseを受信するまで.  http接続方式.getとpostの違いは、他の方法を知っていますか.  restful知ってる?  ステータスコードは200/403/404/504など、どのくらい知っていますか.
データベースセクション
MySQLロックはいくつかあります.デッドロックはどのように発生したのか.  なぜ、どのようにパーティション化し、表を分割するか.  MySQLのchar varchar textの違い;  joinを理解して、何種類があって、どんな違いがあって、A LEFT JOIN B、検索の結果の中で、Bのないあの部分はどのように表示したのです(NULL);  インデックスタイプには、BTreeインデックスとhashインデックスの違いがいくつかあります(ディスク構造の違いは答えられませんでした).  手書き:クエリーコマンドを最適化する方法;  NoSQLは、リレーショナル・データベースとの違いを理解していますか?Redisにはいくつかの一般的なストレージタイプがあります.
Linuxセクション
あなたがよく使うLinux/gitコマンドと役割を話してください.  現在のプロセスがどのコマンドを使用しているかを確認します.ファイル関連の操作のほかに、普段どんな操作コマンドがありますか.  (本人はLinux自体が水っぽく、基本的な操作しかできないので、この部分の面接官もほとんど聞かなかった...どうせ聞かれたら目を見張るだろう)
djangoプロジェクトセクション
すべて简単な绍介の下であなたの会社のプロジェクトで、バックエンドの関系があるかどうかにかかわらず、主にあなたが何をしたかを体現します;  あなたがプロジェクトの中で最も難しい部分は何ですか.あなたはどのように解決しましたか.  djangoのadminソースを見たことがありますか.flaskのソースコードを見たことがありますか?オープンソースをどう理解しますか.  MVC/MTV;  キャッシュの使い方  ミドルウェアは何をしていますか.  CSRFとは何か、djangoはどのように避けたのか.XSSは?  もしあなたがloginを設計しに来たら、簡単に考えを話してください.  sessionとcookieのつながりと違い;sessionはなぜ安全だと言ったのか.  uWSDIとNginxの役割;  (私は基本的にdjango実現の細部に関するものを聞かないことに気づいた...あるいは聞くことも少ないし、まあ、前に準備した方向が完全に間違っていた)
1時間も書き続けたが、まだ細かい問題がたくさんあることに気づいた.まあ、自分のノートはやっぱりだめです.しかし、これらの質問に答えてくれれば、少なくとも初級webバックエンドの面接を試してみることができると思います.good luck!
AyoCross
2016.02.22晩、杭州で、風雨の中で網易虐に書かれた.