剛剛用 Python 秋招完的小應屆來回答一下。
但是隻會 Python 肯定是不行的,面試的過程中基本上沒有問過 Python 語言的相關東西,如果是面的後端開發,可能會問一下用的後端框架的原始碼,然後就是各種 CS 的基礎知識:演算法與資料結構、作業系統、計算機網路、資料庫,這些問得比較多,然後就是簡歷中的專案了。
除了 Python 外,最好還要懂一門靜態語言(Java/C++),一門函式式語言(Haskell/Lisp/Scala),大廠的面試其實對語言的要求不是很高,比如面過某 C++ 崗位,全程演算法都是用 Python 寫的,還和麵試官討論了一下 range() 為什麼設計成左閉右開的形式。
想要用 Python 找到一份好工作(後端方向),可以給一點小小的建議:
可以看到,要真的把上面所有的東西都學完不是一兩個月能搞定的,這還不包括準備專案的時間。如果真的能學得不錯了(70%)的樣子,應該拿個一線二線大廠的 offer 還是沒問題的。
剛剛用 Python 秋招完的小應屆來回答一下。
但是隻會 Python 肯定是不行的,面試的過程中基本上沒有問過 Python 語言的相關東西,如果是面的後端開發,可能會問一下用的後端框架的原始碼,然後就是各種 CS 的基礎知識:演算法與資料結構、作業系統、計算機網路、資料庫,這些問得比較多,然後就是簡歷中的專案了。
除了 Python 外,最好還要懂一門靜態語言(Java/C++),一門函式式語言(Haskell/Lisp/Scala),大廠的面試其實對語言的要求不是很高,比如面過某 C++ 崗位,全程演算法都是用 Python 寫的,還和麵試官討論了一下 range() 為什麼設計成左閉右開的形式。
想要用 Python 找到一份好工作(後端方向),可以給一點小小的建議:
科班出身的話,各種基本知識應該是沒問題的,不是科班的話可能這一塊需要補一補(* 為備選);演算法&資料結構:《演算法》、*《演算法導論》(搭配 MIT 6.006 食用更加)作業系統&計算機組成原理:《深入理解計算機系統》計算機網路:《自頂向下方法》、*《TCP/IP 協議(卷一)》、《UNIX 網路程式設計(卷一)》(強烈推薦,基本上和網路相關的比較難的一些問題這本書都有講,可以挑一部分看)編譯原理:這個我沒具體看書,直接寫了幾個直譯器然後瞭解了個大概,書的話好像有《30天自制編譯器》比較淺顯易懂資料庫:《MySQL 必知必會》、《高效能 MySQL》(從此各種資料庫最佳化面試題手到擒來)Linux:《鳥哥的私房菜》、*《Linux 命令列與 Shell 指令碼程式設計大全》和麵試官扯淡:《程式設計師修煉之道——從小工到專家》Python 語法雖然很簡單,但是要看的東西其實很多基本的語法看官方的 Tutorials 就可以了,Python 2 和 Python 3 都要會,之間的一些主要的區別要知道學會了語法可以看《Python Cookbook》、《Fluent Python》,這兩本書相當於進階的書,學完功力 double,當然可能看一遍是不能完全吸收的,以後可以用到的時候再回去刷一下看完上面兩本書並刷過一些程式碼之後應該對 Python 的一些常用標準庫比較熟悉了,然後可以開始系統看一下標準庫(慢慢刷吧,這是個大工程)熟悉某一個後端框架,我選的是 Flask,因為比較簡單,程式碼也不多,花一點時間把原始碼看懂,知道一個 Flask app 從頭到尾的執行過程,有時間可以自己寫一個 web framework,實現基本的路由和 context 功能,當然還有 bottle 更簡單,原理大同小異,讀一下 PEP 3333 -- Python Web Server Gateway Interface v1.0.1一般科班出身的在學 Python 前肯定會 Java/C++,這一部分也有很多的推薦,就不說了其實面試過程中會問很多專案和設計類的問題,這種東西只能慢慢學習了,平時可以刷一刷 PyCon、各種部落格、演講之類的來提高姿勢,YouTube 上有很多這種資源可以看到,要真的把上面所有的東西都學完不是一兩個月能搞定的,這還不包括準備專案的時間。如果真的能學得不錯了(70%)的樣子,應該拿個一線二線大廠的 offer 還是沒問題的。