1. 程式人生 > >知乎程式設計師小結

知乎程式設計師小結

十、招聘渠道

招人第 94 天,怒答。

不是太難,是你太懶

先糾正下概念,什麼是難?

- 大家都招不到人,你也招不到人,這叫難,行業形勢決定
- 大家都能招到人,你招不到人,這不較難,是你公司的問題
- 大家有的能招到人,你卻招不到人,這也不叫難,是你 公司 + HR 的問題

基本上大家都瞭解當下形勢:缺口大,資源少。

無例言x,我公司的招人職位有倆:

- 有較豐富前端重構經驗的工程師(精通 javascript,多終端的適配經驗豐富)
- 有大規模 Node.js 程式設計經驗,在模組工程化,非同步程式設計方面有深入研究的 Node.js 開發工程師


換算到 阿里的 P 級別,能對應上 P6 和 P6+ 的職位,瞭解的人就會搖頭了,這兩個職位有多難招。ok,然後,如何爭取這少量的資源,需要從渠道和自身兩個方式入手:


一、渠道

1. 招聘類網站

100offer、內推網、拉勾網、histarter、脈圈、燈塔、jobdeer、哪兒上班、周伯通、獵聘

無論初創的還是成熟的,付費的免費的,一個都不要放過,尤其是初創的,別看流量小,但是服務好,甚至會給你 VIP 許可權,比如 脈圈 幫我們製作單頁 H5 微信傳播頁面,幫我們宣傳公司和職位的,微信裡面轉發效果極好。

另外像什麼,趕集/58/51job/智聯 也就不要去嘗試了,為了讓你買一個季度或者半年的會員費,市場團隊電話會騷擾死你,另外我也始終不會相信,從這上面能拿到多少優質的 前端/全棧 開發工程師簡歷



2. 社交類(人脈)網站或應用

大街、linkedin、微博、QQ 群

這種效果比較明顯的是 微博和 QQ 群,利用你的社交關係,利用群組方式進行職位的直接推送,效果有時候也非常贊。

我 2012 ~ 2013 年用 QQ 群幫 阿里巴巴 挖到 7 個正式前端工程師,2 個極其優秀的實習生,用 微博私信 挖到 1 個功底紮實,顏值很高的女前端工程師。


3. 終極利器 - github

還有什麼網站能像 github 這樣,一下子就能看到一個人的 coding 狀態,關注的技術方向,貢獻能力,程式碼風格,程式碼質量,分支的建立風格和合並方式,甚至建立 issue 時候的態度和表達(英語)能力,文件的書寫風格和描述能力... 


最最重要的是,大部分人的主頁都有郵箱和部落格地址,包括程式碼註釋裡面,如果都沒有,你可以對他提 pull request 來獲取好感,再逐步拿到聯絡方式,每天花 2 個小時,逛一逛 github,你會發現,中國的程式設計師竟然如此之多,資訊如此之全,我只能幫你到這兒了。

4. 終極利器 2 - 垂直論壇

雖然 github 非常好,但這個屬於主動出擊型的,能讓別人找你,就不要主動找人,這就是論壇的魅力,別人看到你的帖子,認同了,簡歷自然進來了。

所以招人千萬不要寫:

杭州 招 3 年經驗 前端工程師, 2 位。機會難得,速投簡歷。 說實話,這種招聘貼其實特別多,這叫 “等沉式” 招聘貼,寫了也白寫,誰鳥你呢。

你需要走心,你需要客觀,你需要真誠以待,你還需要互動。這裡是我寫的一篇招聘文章吧,獻醜了:

20k【美國矽谷】【巨量期權】【正在A輪】【度假辦公】【全站 Node.js】


5. 熟人推薦

首先,你得有熟人,其次,請人吃個飯,唱個歌也是再所難免,所以平時多參加各種技術會議,D2 啊,京js 啊之類,能混上飯局就去混,多加好友。

二、自身

1. 公司前景

這個可能不是你能決定的,畢竟你可能只是 HR 或者是 技術團隊主管,公司前景可以通過多提供客觀資料和一定的市場運作方式描述,來讓候選人瞭解你公司的一個發展方向和盈利點,不要說沒用的話,什麼 不差錢,以後要顛覆誰誰誰,以後做行業的 xxx,我們要改變人類的生活,要多麼多麼高大上而有意義,切記不要對程式設計師說這些,他們 0 和 1 的世界裡,你不要以為他沒有自己的一套觀察視角和分析邏輯。

2. 團隊組成

這個很關鍵,無論你是 1 萬人的大公司,還是像我們一樣只有 10 個人的小團隊,你要讓他了解,他接下來委身多年的團隊,同事們都大概什麼個情況,說白了就是團隊文化和氛圍,大家都是什麼樣子的人,喜歡怎樣的做事方式,一般 簡單/自在/大牛多/溝通效率高/工程師地位高/妹子多 這些都是加分項。

3. 薪資福利


注意,薪資和福利不能劃等號,我薪資高啊,但是我沒福利,我福利好啊,但是我薪資不咋地,都不行。

薪資是貼補他家用,是他在這個行業中貢獻的一個價值表現,也是他在自己小社會中地位的體現,錢多了不見得多麼有面子,但是錢少了可能就冷了這顆心。

福利是關懷,是對薪資的補充,是與眾不同的東西,是讓人幸福的東西,是讓人可以對別人炫耀的東西。

A: Hi, 阿正正,你猜我們公司這次去哪兒 outing 了?
B: 剛才在忙,你們去哪兒了?
A: 我們去那個十分有名的 千島湖 你知道麼,就是千島湖大頭魚,還住靠湖五星級酒店,整整玩了 2 天,yeah!
B: 擦,這麼酸爽!叼叼叼!
A: 恩,都不想回來工作了,你們去哪兒 outing 啊?
B: 正在收拾行囊,後天去 美國矽谷 度假辦公。
A: 多長時間啊?
B: 2 個月吧。
A: 哦...
A: 那我能求你給我帶個 MK 的包包麼,我想送給我女神。



關於薪資和福利,取決於城市,公司的當前規模,融資階段和公司的薪資結構,所以制訂這個,我的建議是,儘量保留彈性,如果福利一般,那就薪資定高一些,如果福利突出,薪資可以適中,但無論怎樣,你要明白,你需要的是人才,而不是人力,對於人才,投入越多,關懷越多,回報比越高,投入越少,關懷越少,你就等著收 辭呈 吧。


最後呢,我對比了下我圈兒裡其他公司的招人情況,我的是最樂觀的,那麼列下我的招人情況,和各位共勉:

Moveha 正式招聘 前端/Nodejs 工程師第 94 天,收到簡歷 103 份,篩選後發出面試邀約 40 人,最終確認並面試約 30 人,進入終面 10 人,發放 offer 8 份,目前 2 人(一個騰訊的,一個阿里的,都是高階前端開發工程師)已回覆並確認近期入職。 流量分析,來自拉勾網簡歷 10 份,來自 QQ 群 7 份,其餘大多來自技術論壇和社群。

初創招人路漫漫卻修遠,簡單分享下與大家共勉。
總是會這樣的。。 
話說,你從來不說話,突然說話了,別人的確不知道該和你說什麼。。因為大家都不瞭解你的情況和性格了  高個屁,已經很低了。
java 目前是應用領域比較廣泛,第三方包完整,教材資料眾多,標準統一的平臺了,這還叫成本高,你讓其他語言的小夥伴怎麼想。

我來給你算算:
Java SE 8.才2672個類,1121個介面,一共217個package。
來我們做減法。
awt和 swing 以及org開頭的包不用看。那還剩多少?

我跟你點一下常用的標準package。
1. java.io (輸入輸出)

2. java.lang (基本型別的物件,執行緒,以及註解反射等)

http://3.java.net 和 java.nio (java 網路部分和nio 讀寫)

4.java 8 新增的 java.time (日曆和時間)

5.使用最多的java.util (分別涉及,常用資料結構,concurrent併發,鎖,日誌介面)

6.剩下就是一個 java.sql 的資料庫操作,和javax.security 這類的常用加解密, xml操作(一般用第三方的)

好了,上面是官方標準庫。你要說有多少門語言的標準庫能比JAVA的更全。該做的事情都已經幫你弄好了,你還有什麼需求?

來,我和你清點一下常用第三方庫。

1.log 相關,log4j slf4j 之類的介面,一個下午可以搞定怎麼使用,從此你不用考慮日誌問題了,不管是遠端的,本地地,格式怪異的。

2.網路相關,netty,這個就是nio的高階封裝,學會怎麼使用也就一天。

3.java.util 的補充包,google的guava 。lang 補充包 apache common lang,jodd(可選)。資料結構你幾乎不用任何考慮,lang的擴充補全了標準的不足。

4.web 開發,springMVC spring mybatis(hibernate) ,三大件,這個我就不說了,看文件看文件。與之配合的是javaEE 標準庫。

5.常用雜碎的各種包,json 格式包,資料庫連線池,disruptor(從此生產者消費者模型,媽媽再也不用擔心我亂寫了),常用記憶體快取工具 EhCache。時間排程 Quartz。

6.apache 專案組下還有一大堆其他的元件。


清點完了第三方庫,我們來看看JAVA關於標準的一些情況

上鍊接:The Java Community Process(SM) Program

看看這些標準,簡直像一個碎嘴的媽,要把你照顧到家的節奏。這種統一的標準,省了多少力,學起來方便,重複造輪子也給了你說明書。


你倒是說說成本高在哪裡,還有沒有什麼其他語言的成本更低的?

這才學了半年,程式猿什麼時候給你這種門檻非常低的錯覺了?

九、qq郵箱 (看起來隨意,發件人暱稱不舒服,帶有太多個人生活到公司不專業

  • 關於簡歷
從2005年開始,我個人一直是Gmail的使用者,找工作相關的事情我也一直是用的Gmail收發郵件,簡歷的附件我一般會儲存為PDF再發過去(為了避免被獵頭修改),附件的命名一般是:莊表偉簡歷2013.pdf(這樣有助於對方儲存,或者在今後查詢郵件和附件)。

當然,簡歷的內容,比簡歷的命名、所使用的郵箱,更加重要。
當然,比簡歷更加重要的,是面試時的充分交流。
當然,比面試更加重要的,是一個人的真才實學。
當然,比能力更加重要的,是真的獲得這份工作以後,是否能夠努力做好。
所以,我其實很懷疑,換一個郵箱發簡歷,對於改善一個人的職業生涯,會有多大幫助。

另一個看法,用工作的郵箱應聘求職的,是個求職者,不帶有太多個人生活進入公司。 用QQ郵箱的,許多都是工作和生活融為QQ裡,你或許可以看到他在公司的喜怒哀樂和成長。

平時QQ郵箱算是主力郵箱了,但需要發稍微正式的郵件的時候都會換成gmail或者其他郵箱。因為qq.com看起來就有些隨意。

非QQ郵箱接收QQ郵箱發過來的附件 → 跳轉到QQ中轉站 → 需要QQ帳號登入下載 → 碰到跳伺服器繁忙什麼的 → 鈦合金F5 。今年碰到過兩次這樣的,工作累到不想動還被強迫這種鬧心事兒,不覺得有什麼方便的

晚上開啟微博就見此人對使用QQ郵箱求職者的評價,但是有的人認為,QQ郵箱的使用者體驗真的是做的極佳,國內甚至國外有哪家在收發郵件和一些細節上能比過QQ郵箱的?

僅僅因為概率統計上,QQ郵箱使用者郵件撰寫格式不規範的比例較高,就拒絕應聘使用QQ郵箱的應聘者,這樣的企業行為是否合適?

先上個圖再說。

回答問題的人裡面,有多少是在創業公司從事招聘工作呢?

作為一個網際網路行業創業公司的創始人,在過去的1年半時間裡,我有一半左右的工作時間是用在招聘上的。對於我們這樣一個團隊來說,招到一個不合適的人,對公司的影響簡直是災難性的。

想象一下競爭對手團隊裡面,都是受過良好教育,有著優秀職業經驗,情商智商雙高的優秀人才,再看看你郵箱裡的這些連名字都沒搞清楚的郵件,你會有面試的興趣嗎?


PS: 我使用的是Gmail郵箱搜尋,關鍵字:

應聘 from: *@qq.com

事實上,如果把“應聘”兩個字從關鍵字裡去掉,可以看到更多奇葩的郵件。這些郵件在我郵箱中,永遠都是unread狀態。

也許這些郵箱中我會錯過一些不錯的人,但是與仔細從沙子中尋找可能存在的金子相比,我更願意在金沙中篩選金疙瘩。


【修改一下,才發現很多人無非是在說駱同學用語粗魯態度蠻橫云云,似乎是微博上吵架吵到知乎來了。那,還,有,人,關,心,問,題,本,身,嗎?我還以為知乎是嚴肅的問答社群呢。】


補充:
不出意料評論裡面被噴了。那就本著治病救人的人道主義精神,再補充幾句:
1. 也許你們說的在邏輯上都對(用QQ郵箱的也有天才啊,共產黨員也有好人啊),可是都沒用。正確但是沒用的話,就是垃圾。一天到晚說政治正確但是沒有任何意義的話,對這個世界沒有任何幫助。地球是靠“知行合一”的實幹家推起來的。

2. 這個世界沒有所謂絕對的公平。當你因為沒有當局長的爹而在公務員考試中被落榜;當你因為沒有穿正裝被客戶拒之門外;當你因為郵件沒有按照投資人指定的標題而把精心準備的BP丟到垃圾箱;當你因為幾個裝訂問題而被招標方把熬了一週通宵趕出來的標書當面扔進垃圾桶;當你發現跟你面試時表現差不多但是僅僅因為長得漂亮的同學淘汰你拿到offer;當你去美領館面籤時僅僅因為簽證官昨晚的性生活不和諧而被reject;當馬修·埃蒙斯最後一槍竟然打出4.4環……你會發現,僅僅是注意一下郵箱迎合一下招聘者的口味是多麼fair不過的事情。

3. loser之所以為loser,不是沒有原因的。這個問題跟問“漂亮姑娘因為我沒錢就拒絕了我,這樣合理嗎”在本質上是一個道理。你可以舉一萬個邏輯的理性的高雅的理由證明這個不合理。但是so 他媽 what? 女神會跟你走嗎?早看清楚了的早就去想辦法掙錢搞定女神了,只留下loser在風中糾結琢磨:為什麼我說的邏輯上都對,但是還是沒有妹子?

Welcome to the real world! It sucks. You're gonna love it!

八、引導孩子學習程式設計

我是一個普通的java工程師,他母親是一個普通的大學計算機講師。

孩子6歲開始在我的筆記本上用debug敲簡單的彙編命令,起初只是簡單的rd,t,但他對得到的結果有異常的敏感,比如他會去想為什麼ax的值是0,或者為什麼不是0,以及怎麼變成0。
通過半年左右的學習,已經能用notepad++和masm完成不算簡單的彙編程式,現在他對程式設計的興趣越發強大,C幾乎是完全自學的,最近還學會了 C 和 visual c++(.net),且嫻熟運用mfc,stl,atl,他母親只給了一點點引導和提示,這樣的孩子屬於神童嗎?該怎麼引導和教育?

現在最大的問題是,孩子對數學沒有足夠的興趣,對數學,演算法的興趣達不到程式設計的百分之一,該怎麼引導孩子形成演算法的基本思維?

從你的描述來看,你不需要操心他對演算法不敏感。
當他在程式中學到一定瓶頸,必然會開始自發學習演算法

極致的程式需要的不僅是技術的熟知,更是對文學藝術和美的追求。
要做的引導,就是學習更多方面的學科,歷史,英語,中文
像一個正常的孩子一樣學習豐富的多方面的知識。
特別是不要自傲,被誇大的孩子很容易陷入自我滿足和傲慢,這對一生的性格都有影響

儘早引導到非商業平臺上,微軟的平臺太封閉且商業,做多了意思不大;
如果真正喜歡程式設計,應該會對GNU,開源運動,自由軟體運動,Linux背後的精神內涵有認同感。
而且開源界的好東西太多了,可學的,有趣的東西數不勝數。
我其實和lz的娃的經歷差不多,很小的時候接觸程式設計,然後沉迷其中,同樣一開始接觸的也是m$平臺的東西,直到高中接觸到了*nix和開源運動,相見恨晚;十分後悔沒有早點接觸,所以如果lz的娃大一點以後,希望能引導到*nix平臺上,相信如果真的喜歡程式設計,應該會在這邊能找到很多志同道合的朋友。
希望10年後,能再多一個hacker

七、開源

Apple的開源不太瞭解,我在這裡試圖比較一下Google和Facebook。資料大部分來源於網路,歡迎補充。
首先看看自身開源的專案,數量太多隻列舉比較有影響力的:
Google的開源專案裡面,包括作業系統 (Android,基於Linux),瀏覽器(Chromium,之前基於Webkit現在fork為Blink),程式語言(Go, Dart),JavaScript VM(V8),程式碼審查工具(Gerrit),虛擬機器/叢集管理工具(Ganeti,lmctfy),資料庫(LevelDB),OCR和條形碼(Tesseract, ZXing),視訊編碼(WebM),前端框架和工具(Angular, Polymer, Closure, GWT)...
Facebook的開源專案有程式碼稽核/重構工具(Phabricator, codemod),PHP語言VM和大量的PHP相關工具(HipHop, 等等...),Python web框架(Tornado), 前端框架(React),日誌管理(Scribe),Linux快取模組(flashcache),rpc
膠水語言(Thrift)。
從範疇來看,Facebook主要集中在伺服器這方面,而Google涉及的範圍要廣得多,綜合影響力也更大
然後看看對外開源專案的貢獻:
Facebook對Apache的很多開源專案有貢獻,包括Cassandra, Hive, Hadoop 和 Hbase。其他貢獻的專案包括memcached,MySQL和Varnish。在資料這方面Google完全是自己的一套系統(見下文研究比較),所以在對這一類專案的貢獻上Facebook更活躍一些。另一方面,Google自發布Chrome起一直是Webkit的主要貢獻者,而在Webkit comitters名單裡沒有facebook的僱員;Linux核心貢獻2013排名 Google爬升到第8,Facebook具體排名不清楚,但未進前10。
最後比較下對外發布的論文/研究成果: Google Research粗略統計有近千篇論文,Facebook Research總計不到100篇。可以說,Google Research產出了大資料研究的一些最重要的文獻:BigTable, MapReduce, GFS, Spanner... Hadoop基本上就是在MapReduce和GFS的論文影響下誕生的。Facebook的研究文獻,說實話我並不十分了解,但從數量和影響力上來說都遠不如Google。另外值得一提的是Facebook牽頭搞了Open Compute Project,旨在提供一整套開源的伺服器硬體架構設計。
綜合來說,我覺得還是Google的貢獻更大一些。

六、生活方式  http://www.zhihu.com/question/22867204/answer/22944185

我的生活習慣和wangye差不多,每天早上10:30 - 11:00到達公司, 會和幾個團隊成員先sync一下各種事情的進展,很快很輕量. 然後想今天該寫神馬東西。基本上是從TODO list裡撈有用的東西出來,作為一個主要寫C++的工程師,人生很大的一段時間在編譯連結,於是趁這些時間會瀏覽各種新聞和刷微薄...
12:00 吃免費的午飯,同時一邊寫程式碼。一直寫到下午5點,中途偶爾會去1 on 1或者開會討論,但是討論的東西一定是技術問題和技術方案,不會有扯淡的東西。任何會議如果覺得打斷你寫程式的思路,都可以忽略,老闆不會找茬

下午6點,吃免費的晚飯。
6點半,團隊的sync meeting,總結下今天做的的事情,和短時間未來的計劃,看看最新的產品資料(大概是明天或者未來一週)

7點,寫程式,或者隨便上網看看
8點半,回家
9點,開始寫自己的一些專案,可能是開源專案,也可能是學一些新東西,也可能是陪老婆
11點半,睡前刷郵件
12點,看pocket中收藏的文章
12點30,睡覺

週六因為我家住得略遠,而且高速特別堵車(G6),為了不把生命浪費在堵車上,偶爾會home office

請問豌豆對C++開發者有什麼要求嗎?

把google c++ codestyle guidelines每一條都看懂,並且知道這麼做的原因;同時對智慧指標, RAII等現代C++的概念都比較熟悉,如果能讀過chromium的程式碼,並能熟悉chromium的訊息和執行緒框架的話會有加分

五、跳槽原因

考慮了很久還是決定先匿名了.
本人經歷介紹, 全國前5大學本科畢業, 應屆入職廣州網易遊戲, 做過支援部門的程式, 遊戲工作室程式, 朋友又有很多支援部門非技術職位. 對網易遊戲的強烈感情才讓我下決心寫這一篇, 覺得不吐不快.

看了一下上面的答案很少是寫網易遊戲的, 就仔細說說網易遊戲的情況吧. 涉及到一些內部的東西, 或許有人能猜出來我是誰, 會心一笑即可

離職以後還懷念的東西:

  1. 免費的三餐, 健身房, 理療等等. 網易的食堂真心沒話說, 雖然吃了4年沒長胖反倒變輕了, 但是菜式非常豐富, 三葷N素, 西餐, 麵點, 壽司, 湯, 雜糧, 酸奶, 水果全都有..
  2. 良好的人際關係. 大學剛剛畢業沒有同學進到同一個公司, 又遠離家鄉, 所有的朋友幾乎都來自公司的同事和技術社群, 我在這裡找到的很多的好朋友, 有共同的技術信仰和愛好, 業餘時間也常在一起娛樂
  3. 技術氛圍濃厚. 公司定期舉辦技術沙龍, 基本上從前端到後端到web到運維, 各方面的技術都有, 所有的講座都在網站上面有視訊和Slide下載. 如果開發中遇到疑問, 問別的部門的同事, 對方也肯定會慷慨相助,

離職的原因, 最大的原因是覺得沒有發展了. 沒有發展可以從幾個方面來說, 一是個人不能發展, 二是產品不能發展. 三是公司不能發展

一: 個人不能發展, 包括了技術發展, 和薪水職位的發展.

技術不能發展是我個人原因外加遊戲公司的特殊環境造成的. 
由於遊戲開發其實就是一個不停實現策劃玩法的過程, 在整個基礎引擎成熟以後, 剩下的技能編寫其實是一件挺枯燥和乏味的事情. 雖然從一進公司開始就被教育說, "不要以為只有做引擎才是有技術含量的, 寫邏輯也是可以區分寫得好和寫的不好的, 也是有技術含量的". 是的, 寫邏輯是可以區分好和不好. 但是這並不能否認這件事情的乏味性. 而要嘗試去改變底層的東西, 能夠讓這個乏味的過程變得有趣的事情是幾乎推動不起來的, 因為
  • 要改變底層, 必須保持原有玩法的相容, 如果需要涉及到原有玩法的重寫, 那麼這件事情是幾乎不可能辦到的. 
  • 遊戲開發是一個勞動密集型過程, 策劃的需求在不斷的推進, 程式經常面臨的問題是在"開發策劃新需求"和"優化現有程式碼"之間權衡, 甚至和策劃在這個問題上扯皮, 更何況去做一些耗時的底層改動.
  • 底層的改動往往要牽扯到策劃, 比如新工具的開發之類的, 因此對於策劃的培訓, 包括策劃的抵