2-4 工作與求職初步(1)

2-4 工作與求職初步(1)

來自專欄 改行CS導論

正常情況,新進入一個領域,當然是要從讀書、學習開始。然而在一切之前,我想先談的是工作和求職。

這不是本末倒置,我個人認為,這恰恰是新手最需要的big picture。

要知道,我想寫的文章不是培訓資料,一點一點教什麼是array,什麼是linked list,什麼是幾種sorting。過去15年間,這類資料在網路上已經極其完善了,更別說還有經典教科書。即使是新手,也是可以僅僅通過搜索引擎就開始自學的——如果你完全做不到,我則建議慎重考慮改行。

如果讀網頁慢、沒動力,你也可以立刻找免費的教學視頻,開始看開始學。但你一定也有這個問題問自己:我學這個有用嗎?我先學這個對嗎?

所以新手最缺乏的其實是:如何學習知識、如何判斷哪些知識有用、缺乏大局觀。正常情況,這些大局觀都是在漫長的學習中慢慢體會和積累出來的。

上文已經陳述過、我這裡再引申和強調一下:改行者最需要的思想是:不是把所有東西都學好,而是把CS的知識體系按重要性排序,從上到下,先學最重要的,然後逐漸掌握整個體系。

我相信很多科班出身的人不同意我的想法。的確,我的想法基本上是旁門左道和異類,但是我個人認為更適應速成、早期嚴苛的生存環境,畢竟你只有2.5年的時間(根據前文)。

舉個例子,比如彙編語言(Assembly Language)。彙編語言我在讀研究生時也學習過,其實很有利於理解計算機底層,幾乎是CS本科的必修課。但是,對改行者來說,我個人認為意義很小,因為面試中基本上沒機會碰到,職位又非常少,即使招人恐怕也不會考慮改行者。

那麼在我看來,這門課就是「沒用」的。之所以打引號,是因為「沒用有用」的判斷是基於早期的現實,而不是整個知識體系。改行更像是個投資遊戲:如何把有限的時間,投資到最有用、最有收穫的知識上,達到最大的收益。當你拿到offer、開始工作、開始有富餘時間時,回頭多看看彙編語言補充基礎是非常好的選擇,但不是現在。

再舉個例子,可能更有爭議:C++的Virtual Table的實現,其實也算是很常見的知識了。我不敢說有用沒用,但假設改行者乾脆說自己不會C++,面試中可以說基本上不會考到這個問題;當然,不會C++也會導致一些職位不被考慮。

C++中的內存管理也很有用和複雜,但如果改行者基於Java甚至python等語言,雖然犧牲了部分對內存管理的理解,但卻提高了學習速度。

這裡必須提前介紹封裝思想(Encapsulation),因為我覺得Encapsulation不是CS獨有的思想,而是通用思想。

什麼是封裝呢?假設你有一個手電筒,你唯一知道的是打開按鈕就會發光,關上按鈕就會滅掉。你是否知道這個手電筒內部是怎樣的呢?比如燈泡是什麼,燈泡裡面是什麼,電池怎麼連接的呢?不需要。我們可以認為手電筒的實現(Implementation)被封裝了起來。

封裝的偉大在於,把一個複雜的體系使用簡單的介面(interfaces)來表達其功能,然後這個體系可以作為一個整體,僅僅用自己簡單的介面去參與組成更複雜的東西。富士康上流水線的工人知道Iphone的組成原理么?不知道,但他們依然能製造Iphone;同理,微信、FB、Google的產品都異常複雜,但單個程序員並不需要知道全部,只是注重於自己的部分即可。

這些定義都是廢話。但對學習的啟示是:為了高效率地學習,你需要知道哪些細節和知識是封裝的、不需要你去了解的,哪些細節和知識是你必須拆開詳細看的。

工作中其實原理也類似:公司招人不是培養全才、通才,而是要完成任務;完成任務則需要使用已經有的很多工具,這些工具都是封裝好了的,拿去用即可。

用封裝的思想回到C++的內存管理話題:如果學的是Java,直接可以認為Java的內存管理是可以封裝的,只需要知道最基本的一些概念(比如新的Object存在Stack還是Heap等)即可,而沒必要去過於糾結底層細節。

事實上,Python等語言的火熱,正是證明了人們越來越喜歡封裝型的編程語言:簡單、容易上手、易於理解。改行者也需要從Java、Python等語言入手,主要是以較低的難度入手,封裝了絕大多數煩人的細節,先去熟悉環境和最基本的編程,當能力逐漸增長後,就會對各種知識開始有自己的判斷力。

然而,封裝絕不是最終目的。程序員和工程師要學會破壞封裝,就是說同樣的手電筒例子,正常人只要會開關即可,程序員和工程師要逐漸學會如何打開蓋子,換電池、換燈泡,甚至後面可以自己完全拆開、拆碎、組裝回來。

那麼,誰是上邊這些問題的裁判和權威回答者呢?

從大的角度:市場,市場就是經濟社會的神;

從小的角度:公司和求職;

下文會具體說公司與面試。


推薦閱讀:

新飾覺陳列|從快銷,到高級女裝陳列,蛻變只需要20天···
還在糾結?事務所和銀行經歷分享
混不再是一種生活,擁有一項技能才是生存之道——你想做健身教練嗎?
如何寫好一份求職簡歷?互聯網公司HR篩選簡歷標準
英語/翻譯專業從業經歷分享(外企)

TAG:求職規劃 | 面試技巧 |