20180131

肖威工作总结

  • 上午:梳理雷军成长线+整理用户的逻辑体系
  • 下午:添加管理员用户的后台和前台的逻辑
  • 晚上:产品放入购物车形成支付,然后完成产品的部署;

    小米科技 雷军的财富人生

    1990 求学 1991 创业 1992 就业 2007 上市 2010 投资 2011 打造小米

    • 第一段人生:求学

    1969-1987 18岁 求学:湖北省仙桃中学

    1987-1991 22岁 本科:武汉大学计算机系

    1991-1992 23岁 出版:深入DOS编程 书籍出版

    • 第二段人生:创业+就业

    1991-1992 28 岁 三色公司 于王全国、李儒雄一起 (BITLOK 加密软件并组建了黄玫瑰小组;除此还用PASCAL编写免疫90,此产品获得了湖北省大学生科技成果一等奖。)

    1992-2007 36 岁 金山上市 雷军辞去金山CEO职务 从事移动互联网投资

    • 第三段人生:投资别人的事业

    2007-2011 40 岁 顺为资本

    • 第四段人生:打造小米事业

    2010-2018 49 岁 小米科技

看到一个全栈营的孩子欢喜的发展线路; (1)2017年全栈营学习,成为一个编程的新手; (2)2018年李亚飞公司,有老前辈带路,成长的速度会更快; (3)完成了一块输出的产品上线(网页端产品)+一块输出(小程序产品)+移动端产品(缺乏移动端的产品) https://www.huanxitime.com 李亚飞 简历:深圳百分之八十网络技术公司 联合创始人 https://yafeilee.me https://github.com/windy http://www.rubyconfchina.org

文洋简书:
https://www.jianshu.com/p/4b49a8606e3e
xdite的人生的学习经历
https://ruby-china.org/topics/30294


这个产品和全栈营地的产品非常的相似,打造一个容器之后,关键就在于是不是具备能力打造出有价值的内容化的产品,不然没有太大的价值可言;

在人生的发展线上面,学习是一个方面,关键是个人的成长,自己是不是可以快速的完成成长,决定了自己是不是局别打造产品的能力;我们现在懂了绝大多数的框架,需要依靠时间完成三端的产品的打造,从而具备在任何地方都可以立足的真实的实力;














鄭伊廷
2012年12月12日 · 台灣 · Taipei · 台北市 ·
今年真是收穫滿滿。

出國了四次,去過了三個國家。給了超過 10 場 talk。完成了五個案子。opensource 了兩個熱門 gem。拿了一個世界大獎。開了一間公司。開發了超過 10 個 Rails porject。寫了超過 60 篇文章。寫了超過 30 萬字。讀了超過 200 本書......

只是好像很少睡覺.....

鄭伊廷
2014年12月26日 · 香港 · Yau Tsim Mong District · Kings Park ·
做FB ㄧ年回顧才發現今年好像出國太多趟XD

三月去菲律賓 Rubyconf
四月去芝加哥 Railsconf
四月去箱根泡溫泉
五月去香港看劇場版科學怪人
六月去新加坡 Rubyconf
八月去北海道過生日
十月去東京血拼
十一月去灣區出差兩個月
十二月跟妹妹到香港過聖誕節
十二月帶媽媽去北海道玩⋯⋯

https://www.hksilicon.com/articles/99383

鄭伊廷
2013年10月30日 · 台灣 · Taipei · 台北市 ·
当然,重新发明东西并不会给我带来论文发表,但是它却给我带来了更重要的东西,这就是独立的思考能力。一旦一个东西被你“想”出来,而不是从别人那里 “学”过来,那么你就知道这个想法是如何产生的。这比起直接学会这个想法要有用很多,因为你知道这里面所有的细节和犯过的错误。而最重要的,其实是由此得到的直觉。如果直接去看别人的书或者论文,你就很难得到这种直觉,因为一般人写论文都会把直觉埋藏在一堆符号公式之下,让你看不到背后的真实想法。如果得到了直觉,下一次遇到类似的问题,你就有可能很快的利用已有的直觉来解决新的问题。

鄭伊廷
2014年12月30日 ·
體會到ㄧ個神秘的哲學:面對未知的領域,作好萬全的準備是思考上的懶惰。唯有勇敢邁出第一步,然後不斷的修正前進,才是執行上的巨人⋯⋯

偏偏這是人類的大盲點⋯⋯
---

xdite · 发布于 2016年06月16日 1978-2006 文化大學應用數學系毕业+高校调代码 http://crssam.pccu.edu.tw 2006-2012年,6年.我中間還有做很多網站,LOGDOWN 算是覺得最個人產品的一個。 http://logdown.com 2012-2016年,4年,GROWTHSCHOOL,《增长黑客这样做》 http://www.growthschool.com 2016-2017年,2年,全栈营 fullstack 。 https://fullstack.xinshengdaxue.com 2017-2018年,2年,ico.info, OTCBTC.com https://otcbtc.com

23岁 第一份工作:文化大学人事室 职务:全校教职员出缺勤,劳健保 24岁 第一份工作:文化大学计算机中心 职务:关机器、写网页 25岁 第三份工作:Handlino(KKTIX前身)&PIXNET 网页工程师 26岁 第五份工作:T客邦技术部经理 业务:架构网站、带Team 27岁 第六份工作:HTC资深经理 业务:(想做世界级产品) 28岁 第七份工作:创业 业务:想做世界级产品 30岁 第八份工作:加入SpoonRocket 业务:想要做世界级产品 32岁 第九份工作:GrowthSchool 用硅谷外星科技影响改变学校风气

2008年5月 ·在 Handlino Inc. 开始了新工作 ·

2009 在痞客邦开始了新工作

2010年8月 从城邦文化事業/PC home 電腦家庭出版集團离职

2010年8月 在 HTC Corporation 开始了新工作

2011年3月 在 T客邦开始了新工作

這一篇是上個月某個雜誌採訪我時的內容,但正式刊登時,篇幅真的太少了。我覺得當時分享的東西被埋沒太可惜了。所以跟採訪者要了逐字稿,整理出來。分享給大家。

希望對各位有一點幫助。

問:你是大學畢業後,開始自學程式嗎?

其實,我從十五、六歲就開始玩程式,但那時不叫「寫程式」,而是試圖怎麼樣「改別人程式碼」出自己想要玩的東西,但就是很玩票。我一直到大學時,才會想要怎樣變成專業人士「寫程式」。

問:大學時,就立下這個目標嗎?中間有發生什麼事情導致你想這麼做?

像我十五、六歲時,台灣BBS很盛行,我也有管學校的BBS,只是處理站務改改程式碼而已。但我對於改程式這件事沒有很厲害,那時候不會寫程式,只是會改 C 程式、調一下,架站這樣。以現在的標準,那不叫會寫程式,那叫會改程式。

大學時,玩網路連線遊戲,那時是文字型的,叫MUD,是文字介面。

當時覺得這個滿有趣的,因為很多人寫程式都是從玩遊戲開始的,然後試圖想要改遊戲、做遊戲這樣子,我那時覺得這個很好玩。但我都沒動變成職業開發者的念頭,因為學校沒有教怎樣做這件事。

問:妳是念那一個系的。

文化大學應用數學系。會念應用數學系是因為,在高三時,問在 mud 時認識的朋友(清華應數),如果要寫程式的話,要念哪一個系?

他就說念應用數學或資工皆可。所以,我在大學填志願時,是應用數學系與資工系交叉填寫,只填這兩個系。其實在台灣早期,大學只有應用數學系,數學可以運用到很多領域,而當中有一門電腦科學,後來電腦科學變得很大,就拆出去變成資科系。我很慶幸後來念了應用數學系,後來有發現們台灣這一行寫程式非常強的人,很多都是應用數學系的。因為應用數學系在我們大學時,幫我們打下了很好的邏輯底子,寫程式需要邏輯。

以前我們練數學要寫證明題,假設一個證明題有 1-10 個步驟,若你答題只這樣寫「1,2,7,8」的話。這樣老師只會給 1,2 的分。若你跳答,老師就知道作弊了。

這樣強制養成數學系的人,做事情都要從根本想起,把問題想透的習慣。

問:你第一個學的程式是?為什麼?

C語言。因為那時大家都在玩BBS,BBS是由C語言寫成的,我第一個接觸的就是C語言,十五、六歲時就會寫C語言。

問:所以你是十五、六歲管BBS,然後再念大學時對寫程式有興趣,現在才變成職業程式設計師?

人長大之後會發現自己的能力有限,發現自己沒辦法沒門路進入自己想要的職業,做不到。所以其實我中間是有放棄這個念頭。

我念大學時,想要變成程式設計師,但又自覺沒天份。因為大學都教作業系統、資料結構,數位電路,卻沒教你怎樣規畫一個大型程式,只有教你寫基本的程式語言、物件導向程式、資料結構、演算法而已。那時候也沒有 MOOC 這種東西。

光靠學校教的東西,就會覺得很絕望,覺得念大學好像變不了像外面這樣很厲害的程式設計師。那時候從學生角度去看業界的開發者,就覺得超厲害。自然我就覺得我好像沒有天份。

但我發現我會管機器,我那時候比較有天賦的是管 Linux / FreeBSD 上面的服務。寄信郵件,網路伺服器,這是我真正擅長的事。但說到寫大型網站程式,老實說我沒辦法,我也不知道怎樣入門。

問:你當時有辦法想像到你現在變得那麼厲害嗎?

完完全全沒有辦法。變成現在這樣,根本是超乎我百倍預期。要是我大學時代就能知道我變成現在這樣,可能會心臟停止吧。

問:所以,你當時並沒有立志要寫程式?

我沒有立志要寫程式改變世界,而且我也學不會,那時候很挫折。我出道時不是天才設計師。

問:你那時學寫程式時遇到的最大挫折是什麼?

我根本不知道怎樣才能變成一位程式設計師,我沒有認識這樣的人,網路上找不到資源,學校也沒有教,好像這整個個世界跟我沒有丁點關係。

問:所以妳怎麼走出來?那不是等於毫無任何人可以幫你?

對。我剛大學畢業那一、兩年,那時在流行PERL寫程式,就是用寫動態的 CGI 網頁,後來又有PHP,我就去學做簡單的開發。當時無名小站、PIXNET開始起來。然後我就去學PHP,PHP 比較簡單,但我也只會做非常簡單的開發,我不知道怎樣做架構。

後來,我去參加 Open Source 社群,我去聽一個演講,有人介紹有一套程式式軟體叫Ruby on Rails。架站速度非常快,就是外國有一個流行的框架正在興起,它號稱5分鐘就可以做一個部落格。

不是微軟的拖拉工具,而且是open suorce的,我現場看他們示範,就真的5分鐘。回來就自己玩玩看,也是真的5分鐘,那時我覺得我找到一道門了,竟然可以我改一改就有東西出來,讓自己覺得好有成就感,好像天才。雖然只是 CRUD,可以新增、刪除一些網頁,做一些玩具等級的網站。

但是我還是不知道怎樣做大型的網站。後來我去買了一本書,心想現在很流行無名小站這種社群網站,我要是用Ruby on Rails做這個網站,如果可以做出來去求職,應該會很順利。我原本認為無法把書上的習題做完,沒想到不到兩周就做完了,就自信心爆棚,都在瘋狂地練習,做功能。

問:一般人遇挫折就算了不學,為何妳沒被打敗?

我不是完全學不會。我覺得我應該學得會,只是我一直找不到門可以打開這個世界。

問:妳心裡想變成什麼樣的人?

那時做BBS、做一網站是很開心的事,因為BBS讓大家上去流覽看板,站長可以管看板,就像現在的PTT一樣,修改上面的服務,提供給人家用。我覺得這樣子很厲害,我想要變站長。但C語言太難了,你要做成一個BBS非常難。就想說做網頁,也是很困難。我就想說怎樣才可以做一個論壇,當時的願望只要這樣子,因為我可以做一個服務很多人用,這樣子而已。

問:後來有達成?

有算達到。因為有經營一個部落格平台LOGDOWN,那是讓程式設計師發表技術文章的平台。

問:從那時 LOGDOWN 到多久了?

2006-2012年,6年.我中間還有做很多網站,LOGDOWN 算是覺得最個人產品的一個。

問:聽演講、買書,兩周做完一個社群網站,是第一個作品嗎?

我不知道能不能算,因為那是書上的範例網站。

問:兩周學會,滿快的?

對。它就一步一步,我照著上面打CODE,再修改成我要的。它的例子很實際,我算遇到很少的困難,做出來的東西又有模有樣,這是在出社會一年多的事情。

我是在2007年開始學的。

一開始有點難。難度在於,它的安裝環境在WINDOWS裝不起來,只能在MAC或LINUX系統。這對大部分的新手來說很難,因為不熟悉LINUX系統指令環境,而且要裝系統套件,但這對我來說不是問題,因為我剛好是做系統網管的,要非常熟LINUX系統指令列。所以我剛好就沒被打倒,這個對一般人來說天一般高的門檻,對我來說剛好不是門檻。

然後,裝機對我來說也不難。Ruby on Rails當時更新很快,套件不斷推出,套件若爛掉就無法做用,但對於我來說,平常解這些問題解習慣了,根本不是什麼問題。我只要聚焦在怎樣做網站就好了,其他的系統問題根本擋不住我。

問:你花多久時間學會?

半年。因為那時候只有一台WINDWOS電腦,因為上班的地方只有這一台,用它來寫有很多的BUG,沒有辦法解,薪水也很少,系統工程師的薪水只有3.5萬,當時一台MAC電腦要價4萬元,我去辦分期付款,每個月要還6000元,買一台MAC,下班時間使用。

因為我沒有錢,上網自學書的錢便宜,但沒錢買電腦。很多人覺得我現在怎麼這麼順利,但他們不知道的是我當時連買電腦的錢都沒有。那時就聽說學Ruby on Rails一家要用MAC,而且可以少掉很多阻力,我實在被那些亂七八糟的事搞煩了,因為開發的人都活在mac世界。

問:所以不是來自程式本身,而是資源?

對。

問:學習 Ruby on Rails 有什麼好處?

Ruby on Rails的好處是,它是一個框架。語言與框架不同。Ruby 本身是語言,那 Rails 是程式框架。框架可以讓一般人可以透過工具、模板做出、改出你想要的東西。 像木頭與積木的不同。就像樂高積木也是已經打造了某些基本的素材,你不需要從頭開始。

Ruby on Rails 可以存活到現在沒被淘汰,是因為創辦人有很強的哲學。他說,Convention Over Configuaration。寫程式都有一些好的習慣、好的 Pattern,那我們應該在框架上實行這些東西,讓後續寫程式可以輕易打造複用的工具,不用重新發明輪子。

用別人的東西,修改好再 Feedback 回去,例如,當你要做一個網站的登錄系統時,你可以用人家做好的登錄系統修改。有點像蓋房子一樣。因為它的東西很多都是固定、現成的,當你不需要重新發明輪子的時候,你的學習挫折感會降低,當你去看人家的套件時,就會學到很多。而且這個社群就是愛分享。

問: Ruby on Rails 社群與其他社群有什麼不一樣?

在其他社群比較挫折的狀況,像是 PHP或 NODJS 社群,每個人的方法都不同,組起來也不能動,新手的挫折感就會非常地大。去問A框架裡面的東西,B就會鄙視你,新手的挫折感很大。就像你可能在PHP中學了A+的寫法,去B+不能用。

Ruby on Rails寫的東西都差不多,就好像你有許多好強的同事在幫你,你不需要真的去國外厲害公司,你在這個社群就可以很快成長。有一個框架約束,大家可以很快做事,就可學得更快。

問:你覺得 Ruby on Rails 初學得快、慢的關鍵差異在哪?

不肯買MAC,因為好的資源都在上面。

問:前半年沒MAC電腦,後來才發現。

對。因為MAC很友善,頂尖的程式設計師開發很多工具。好用工具與慣例都在上面。

問:你這次創業的原因是?

這次做這個公司是無心插。,我因為喜歡Ruby on Rails,所以就在有Ruby on Rails職位的公司任職,收了很多徒弟,培養的開發者很厲害,後來有一些人說要來「我的公司上班」,不管這個公司是不是我創立的,或是其他人雇用我。但問題這些人來學,只是對Ruby on Rails想學,對公司沒有愛,可能學完就跑了。

對於我或公司來講,這都是很傷的一件事,因為我們希望為社群創造出更多人才,但這不是辦法,這是開公司不是學校。於是就開了GROWTHSCHOOL,別人是教你入門,我是教你變成職業選手。因為我之前陪養出很多的職業選手,所以我很清楚入門技能、方法、職業需要哪些。

問:在學程式語言過程中,有遇過撞牆期嗎?

有。這跟學程式比較沒有直接關係。

為何我教Ruby on Rails,又教專案專案,之後又教 growth hacking,其實這也是我之前的一些學習歷程。

因為我覺得學程式就要懂產品,我後來找到 Ruby on Rails,寫大型程式的速度才有辦法提升,升職也很快。但之後發現,自己寫程式很快沒有用,要很多人一起寫才有用。但問題來了,那時我底下帶了三、四個人很難有效溝通,我發現要讓一個網站快速發展就要學專案管理,因為很多事情混亂,效率無法提升。

後來將專案管理練到極致,又發現問題,所有你需要的東西會在時間內出現。那沒問題,問題是公司產品死掉了,因為成員沒有熱情了,他是按照專案經理的指示去做而已。

那我就去想為什麼會這樣?發現專案當中很多是是PM或老闆妄想的規格,不是公司產品會成長的關鍵。

要成長就要學GROWTH HACKER,程式設計師跟產品行銷結合,這是一個突破過程。

問:你在那一間公司遇到這個瓶頸?

其實我發現大家都有這種瓶頸。

問:怎麼解決上述問題?行銷與程式不容易結合?

大部份人都以為行銷就是廣告,在這個階段 Acquisition 叫做獲得客戶的眼球,但後面其實還有幾個階段叫 Activation 買你的東西。下一個是Rention,變成長期訂戶。

但很多人,只在意曝光行銷。成長是客人一直成長,同時也會有人流失。怎樣降低流失的人,衝高成長的技術,叫GROWTH。

更重要的是要有常客,幫你推銷。但舊世界的人很少意識到這一點。下面這一段反而是好控制的,你都有數字的,可以調查,他們喜歡什麼。例如NPS,願意把這項產品推薦給家人使用嗎? 例如,推薦 XXXX 月刊……

這個技術是有辦法用工具去做的。技術可以與行銷結合,公司也可以快速發展。但台灣很多人做行銷只在乎曝光。

問:對於一個新手而言,想學程式語言,如何選擇標的?

新手選擇學習程式時,都有一個盲點,只想學最能幫他找到工作的程式。

比如說,現在的寫手機程式的 iOS 或是 Ruby on Rails,比較能幫他找到工作,他就想學這個,而且他只想跟大師學。但他忽略掉了一件事情,他自己真的適合嗎?有些人學了之後才發覺這不是他真正想要的,我覺得學一個語言最好是學一個初級班的程式,拿一本快快樂樂地學 Ruby on Rails之類的,去找那一個你做了有成就感的,沒有成就感的沒用。

問:為什麼?

因為如果你一開始就學太難的東西,像我就是剛開始一直犯這種錯,一開始去學太難的就仆街了。

還有些新手只想跟大師學,問了一個問題,希望大師回答你。但大師回答有大師的風格,如果你問的問題太蠢太無俚頭的話,大師沒有興趣跟你聊天,所以就會挫折。然後新手就會懷懝是自己的問題,還是大師的問題。但事實上根本都不是,而是你自己沒有到那個境界,頻率不到,問問題的方式也不對。

大家都只想挑遠大的目標,但學習事實上是你要挑適合的目標。

比如說,我自己要學專案管理好了,我去書店時,我一定會挑新手如何第一次做好專案管理,我一看覺得這個我會,就很開心照著這樣子看,幾乎我那個時代的管理書籍我都看遍了,但我是從淺的買到深的,因為我看了以後,我回去用它來管,然後真的有得到效果,我才會繼續啊。

問:一般人的想法是,對找工作、增加錄取率沒幫助的就不學?你呢?你的學習哲學是什麼?

這是我跟別人不同的地方,我的哲學是會被別人鄙視的,我是「短視」哲學。

怎麼說呢?因為大家都會問我學哪些技術有沒有辦法讓我找到工作或是升職。我覺得問這些東西都還太遠了。

我日常工作最常見的問題可能如何讓底下的人聽我的話,讓團隊一起向前,效率有效提升,公司產品如何成長這一些很實際的問題。

我只專注解決眼前的問題,後面那麼遠的問題,我甚至不知道該怎樣走。要是我真的說我知道該怎樣走,我都認為這樣的說法是太自大了。

我不知道為什麼其他人有那樣的自信說「我知道學 XXXX可以幫我找到工作」,怎麼有可能,等你「刻苦紮實打底」搞不好人家都用別的語言了。

是你有沒有辦法學會眼前這些程式解決你現在的問題,這樣子才能往前進啊。

我當時去學 Ruby on Rails,根本不是為了找工作啊。因為那時候台灣根本沒有工作可言,太早了,根本沒有 for Ruby on Rails的工作存在。當時還只是實驗性的東西,我只是覺得我可以做一個網站給別人玩,那是我的夢想。那時候,人家還嘲笑說 Ruby on Rails 禁不起大流量。但是,這我不在乎啊,要是你的東西都沒有人上來用,管「大流量」幹嘛?但做出來第一步了之後,就很開心,就自然後面有辦法找到方法解決「大流量」的方法了。

「先做出可以解決問題的東西」,我的哲學是這樣。

我學很多技術都是這樣的初衷,沒什麼心機,就是去學「解決問題」的技術。

問:Ruby on Rails主要哪些網站有採用?

做網站,比如T客邦、AIRBNB、彭博後面的部落格,也是用這個框架做的,就是做大型的商業程式,幫人家快速開站,因為它是後端程式。手機是前端用IOS寫的,後面要去接API,呼叫程式,後端也是用Ruby on Rails寫的。職缺是真的很多。

問:新手該訂什麼自我學習目標嗎?

如果生活上有什麼問題,比如說有人想要做記帳軟體、減肥軟體,試著用程式思維去解決你現在的問題,然後去找一門語言解決這件事情。因為這件事情可能你沒有辦法用手動去解決,你可以試著用程式去解決看看。

問:創業有建議從哪邊切入嗎?

我建議從本身問題出發。我發現台灣人不論是創業或是寫程式,都有同樣的一個問題,那就是看別人在開發這個產品,他就跟著抄襲。如果要他真的想一個原創題目的話,他想不出來。台灣人缺乏生活體驗,想不出東西來,所以只能抄。

我認為只要專注在自己生活領域遇到的問題,其實就會想出這些解決方案來。

我會開發 Logdown ,是真的因為被貼 code 問題搞煩了。想開發一個部落格軟體,可以貼程式語法而已。因為有人對這些事有困擾,而且想要解決,就會有商機。學程式是為了解決生活困擾,我希望大家認清一件事情,就是你一定要去學程式「解決問題」,因為未來程式需求只會越來越多而已。

既然無論如何都要學程式,那就去學一門程式解決你的問題。

問:但學程式很辛苦吧?可能要一直不斷的學習?

每個學習程式語言的人都會焦慮這件事情,因為我們學Ruby on Rails後,又有IOS出來,那我們就會猶豫要不要學,後來決定不追。

但我發覺大家也搞錯一件事情,程式作品是「結果」,程式語言是表達你想法的「工具」。開發程式,是一個把日常慣用的交易模式,變成一個實際上可以自動執行交易化的結果。

重點是你怎樣想出「解決問題」的方法,然後把它具體化,跟語法無關。

這可能是程式教學界,比較流行的話叫Computational Thinking。用那一門程式,不是重點,重點是Computational Thinking。這不是說學會怎樣寫程式,而是教你如果拆解問題的方法。 Computational Thinking第一步,就是把未知的問題列下來,找出已有的模式、已有的問題,再用有效率的方法,比如寫程式的方式,拆成小樣的難題再去解決,再從中學會。

比如說,資深的編輯會有自己的工作模式,遇到一個陌生的人,你應該知道會有那樣的問題,再去解。不論哪一行都會有Computational Thinking,只是不叫做Computational Thinking,而程式設計師只是Computational Thinking特別發達,如果不會這個,他根本不會寫程式。

比如說,老闆叫你做「購物車」,你要去想購物車的原理、運作,怎樣對應到程式,所以重點不是學程式,而是及早具備有Computational Thinking的能力。

問:所以練習「解決問題」的能力很重要?

對,但職場上的人都不太注意到這件事才是最重要的。如果你有這個能力,就算軟體不斷推新,你還是可以用同一套方式去做就可以走出自己的路,跟你用什麼語言無關。

例如,我現在在學ios開發,跟我之前接觸的語言無關。我也是用同一套方法,把每一個難題控制在我可以稍微解決的問題。因為若不這樣子的話,我沒有辦法克服眼前學習上的難關,也就無法繼續下去,會非常挫折。

我其實就用這樣的方式,學到新的技能。

問:完全沒有程式底子人也適用?

對。像我現在教人家學程式,第一堂課上的是Computational Thinking。我用一個user story的手法來教。

問:如果我是第一堂來上課的人,你怎麼教?

比如說,要做一個購物網站就要有購物車、訂單系統、上架系統,還有廣告界面,但你不知道要怎樣把它做出來,所以,就會上網找怎樣做購物車,就會看到一大堆怎樣做的方法,但你也看不懂,所以就問pm,他也不懂,所以做不出來。

user story的方法則是從人的角度去想,會怎樣操作。比如用戶故事,當誰誰誰在這個軟體他應該做什麼事完成訂單需求。假設以訂單系統來說好了,消費者在購買產品後,應收到一張訂單,並收到購物信,然後他再把這個產品放進購物車並結帳。

你就要這個流程一條一條寫下來,好處是可以釐清係統會發生什麼事情,誰會發生什麼需求。因為做網站時最常發生需求與供給不合,人去用的時候,每個人的想像不同,工程師是按規格去做,比如訂單系統,工程師可能會按照他去購買時的訂單系統,但業主在做的時候卻說怎麼沒寫後台,你怎麼沒有做呢?我們還有訂單出貨之類的,你怎麼沒做?因為RD根本不知道還有後台操作這樣的人存在,如果不知道有這樣的需求。

所以,一開始就要想這些事情會有哪些人進來參與,他們會遇到哪一些場景,會遇到那問題,如何解決。就可以拆解出來,接下來,就可以預期有什麼狀況。對於一個新手,雖然還不會寫程式,但卻可以用這個方法,把問題列出來,用一條條問題去問人,如果問「怎樣做購物車?」高手會比中指。

問:到這裡都還沒寫程式,都是人可以懂的東西?

對,一直拆故事,要拆到可以寫出程式為止。

問:舉例?

管理者要可以登錄後台,上架產品。管理者有哪些?使用者分一般顧客、管理者。要做使用者系統。這時就發現有兩種人了。

管理者要登錄系統才能管理後台,這時候就要有帳密了。管理者再拆上架編輯、退換貨

第一堂就是在拆這個。

問:這是一路學下來的思路與結果?

對。USER STORY是很高階的設計師用的技巧,但我覺得這技巧,低階程式設計師也要學,它很重要,應該要教他們這個工具。

問:談談撞牆期。有哪一時間點上想放棄?怎麼突破?

到一個程度你會覺得技術開發上好像沒東西可以學。就覺得到頂就是那樣了,要不要改學新程式語言。後來發現那是因為在台灣可以玩的「狀況」不夠。所以等級上不去,所以我後來就去上國外的課程、研討會。學會新技術、新視角。

因為台灣大型架構經驗跟公司太少了,當書無法、國內工作無法滿足我的時,我會去國外上課,他們很多元視角。我剛從rails研討會回來。就有人分享 Rails 教學該怎麼教,她是高中教師出身,他的觀點切入就讓我大開眼界。

我真的覺得,看書、研討會、工作坊、去學別人的經驗是最快最便宜的。因為「自學」要花「時間」,「時間」是不可逆貨幣,太貴了。

問:跟別人學程式的部分?可以舉個例子嗎

像我剛在 Rails 研討會,學會到怎樣設計到 API 技巧,怎麼設計得完美漂亮,而且同事也可以做出厲害程式文件。對方示範了可以寫一次程式文件,然後就用這份文件,轉成假後台。需要改程式就直接先改文件。這個想法我從來沒有過,很震撼。

這如果在台灣,可能去你同領域討論半天都學不到,因為別人也沒有這種經驗。可能我們在原地自幹5年,但是去要跟厲害你太多的人學、去跟大師學,可能大師講到一個突破點,你瞬間就成長好幾倍。

省下三、五年的原地打轉。有時候真的一個程式設計師就卡在這裡,上都上不去。

問:要怎麼成為厲害工程師?

當出色的碼農比較簡單,符合效能、維護性,就行了。但是碼農可能只能寫程式,做出來的是就沒有價值的「產品」

「產品」價值很低,但「商品」是有價值的。「產品」只是產出而已。

駭客松第一名可能也沒什麼,如果不會團隊合作,其實有可能把自己搞死。所以,不能只會程式這東西,還需要有別的。有的人只知道寫出程式,但不知為何當初被吩咐要這樣子做,把它當成一件工作而已。這樣很可惜。

其實這個世界還有很多方面你可以去想辦法讓你的「寫程式技巧加分」。比如說專案管理、產品打磨,在有效的時間點內做出足夠好的產品,讓人買單。

問:如何讓自己寫程式快速進步?

找一個你可以「有非常多熱情」的領域,用程式去解決問題,用程式去影響其他人,當你想要讓別人變得更好,你會進步得很快。

進步得很慢的狀況,通常是你只把這一份工作當作是「碼農...」。

問:你覺得寫程式會很辛苦嗎?

不會啊。這是我的休息娛樂。像我昨天寫了10個小時,突然有種放假的感覺。寫程式竟然是發洩與休息。

問:每一種程式的語法都不同?

對。

問:新手要學那種類型?

我覺得學熱門的,有文件的比較好,才不會求助無門。這樣你可以很容易找到有人肯回答你的問題,會覺得這個世界還有救。學程式有人願意幫你有成就感很重要。

田文艺工作总结

  • 上午:微信内容编辑推送
  • 下午:修改pr中视频字幕问题

    杨吉堂工作总结

  • 整理工作日志及撰写月末总结

如何入門 Ruby on Rails?(2009) 2009年5月24日 21:57 不知不覺,時間已經邁入 2009 。ihower 和我前陣子就在商量,又過了一年,我們是不是應該又要來寫一篇書單來 Update 了。

但老實講,Rails 這個框架發展至今,其實已經越來越成熟穩定了,書其實也出差不多齊了,推來推去也那幾本。想了一想,今年這篇文章我便想改轉以學習順序與開發中需要的技巧/技術為導向,推薦各種學習上的資源,來獲得更有效的進步。

  • Requirement Skill

這次的學習指南,將不再策重中文書以及中文文件的推薦。相反的,因為長期以來,許多在新手求助區發問的問題,絕大多數都是 缺乏基本常識 以及 看不懂 Log / 文件 所導致。這是即使提供中文資源也無法解決的狀況。因此在前面我先直接闡述一個重點,如果學習者沒有以下 background knowledge。我會建議你直接放棄學習 Ruby on Rails。(以後會另外開篇文章解釋)

  1. LAMP background / Web Development Background

  2. svn / git 基本操作

  3. 英文技術文件閱讀能力 / 英文 Log 閱讀能力

  4. 至少會寫一種 scripting language ( Perl / Python / Ruby …)

  5. 願意花時間練習

  • First Step

初期學習 Ruby on Rails 的途徑,筆者 prefer 以幾個方向開始打基礎。

  1. 初步瞭解 Ruby / RubyGems / Rails / Rails Plugin 之間的關係

  2. 初步瞭解 Rails 目錄結構。

  3. 至少有辦法在 Linux 上裝起 Ruby / Rails,新增一個 project ,接起 database

  4. 學習用 Rails CRUD 以及搞懂 MVC 架構的運作

  5. 至少有辦法寫出基本 BLOG 的 CRUD

  6. 透過 CRUD 的操作瞭解 Rails 的 form 以及 ORM ( ActiveRecord ) 的簡單概念

  7. 初步瞭解 Rails RESTful 的概念,以及練習如何在 Rails 使用 RESTful / Non-Restful (搞懂 routes)的方式練習 CRUD。

  8. 初步熟悉一些常用的 plugin:Restful Authenication(認證)、Attachment_fu(上傳檔案附件)、Will_Paginate(分頁)的安裝以及使用方式。

  9. 學一些 Ruby 基本的語法。

以上這一些都有辦法從 blog 或 官方 Repository 的 README ,step by step 學到,暫時不需要買什麼書。把這一些功課練完,幾乎就掌握了 Rails 的一些開發基礎技能,差不多能開始寫點有趣的小東西….

至於 Ruby 的書推薦:Ruby Programming — 向 Ruby 之父學程式設計、Programming Ruby 3nd edition

  • Second Step

開始開發以後要繼續念/練的東西…

  1. 進階 ActiveRecord

  2. 學習如何下 condition、name_scope、relation、Callback

  1. 進階 ActionController

  2. filter、filter 搭配 resource(巢狀目錄)

  1. 編寫自己的 helper,操作 partial

  2. 學習如何用 helper,把 view 裡面的混雜的邏輯與 html 處理乾淨

  1. 熟悉 routing 與 respond_to 搭配 builder

  2. 練到想怎麼指就怎麼指

  3. 學會怎麼生 RSS / ATOM / csv / json

  1. Library、Gem、Plugin 的搭配使用

  2. 依照自己的需求上 Github 或 RubyForge 找適合自己的 gem / plugin ,或者上 Dzone 找 Library 搭配自己的 Application 開發。節省重新造輪子的時間。

  1. RJS

  2. Ajax …..

  1. I18n

  2. 學會怎麼使用與操作 Rails 內建的 I18n

  1. Deployment

  2. Mongrel / Thin / mod_rails 的使用

  3. Capistrano Recipes 的撰寫

  1. Mailer 與 Observer

  2. 寄信

  1. Asynchronous jobs

  2. Daemon 與 Queue

  1. Ruby for Rails

  2. 就是熟悉 Ruby for Rails XD

推薦:

Agile Web Development with Rails, Third Edition

這是 Rails 界的聖經,由 DHH (Rails 之父)主筆。內附基本開發實例,以及詳述 Rails 常用 API 。目前這本書的第三版跟進到 Rails 2.2.2 。

Rails way

新 Rails 聖經 枕頭書。看完整本絕對超熟 Rails ,可惜沒幾個人有耐性看完….XD

Ruby for Rails

這本書是專為 Rails 開發者所寫,作者特別把開發 Rails 所需的 ruby 語法和概念,搭配 rails 做整合性的講解。(才不會發生怎麼蓋高樓,卻根本不懂建築原理的情形。這樣房子會倒的啊啊啊啊….)

Deploying Rails Applications: A Step-by-Step Guide

Deploy Rails Application 的教學書籍。如果對 Deploy 策略不熟的可以買來看看補充常識。如果熟的應該看大家平常的討論應該就夠了….

Advanced Rails Recipes: 84 New Ways to Build Stunning Rails Apps

這本書強烈建議購入,每一章都精彩。比較進階的開發進巧,比如:寄信、Nested Forms、 Asynchronous jobs 的作法 大概都有提…

RJS Templates for Rails (O’Reilly shortcut PDF)

蠻不錯的 RJS PDF

Rails 2.2 Release Notes Rails 2.3 Release Notes

Rails 本身是一個觀念與架構都進步十分迅速的 framework,只看書其實不太足夠,進度也跟不太上。加上 Rails 後來更組織了專門寫 Document 的團隊,近幾個版本的 Release Note 都寫得相當好以及清楚。Rails 2.3 的 Release Note 更簡直像一本小教書,許多 feature 以及使用方法都解釋的十分清楚。如果想瞭解新 feature,直接看 Release Note 現在是我相當推薦的方法…

下一篇會繼續寫的是如何進階 Ruby on Rails 以及推薦閱覽練習的材料…

再次把玩 Heroku(Rails Hosting) 的一些心得 2009年3月31日 00:14 Heroku 是一個 Rails Hosting Sevice。剛推出的時候,以可以「在線上撰寫 Rails Application」(Ajax Console)這項神奇的 Feature 為著稱。

不過現在筆者撰寫 Web Application 的習慣一向是在 local 端寫好之後,配合 SCM (svn / git )加上 Deploy Tool ( Capistrano)推出去。因此線上撰寫 Application 對我來說只能說是「炫而不實」XD 當初只把玩一下就放著了

今天聽老闆 hlb 說,在 Heroku 上 Deploy Application 似乎變簡單了,便開張票要我練一下把某 Service 搬上去。

我大概玩了一下,整理了一些重點(詳細 Detail 可見他們的 Document):

  1. 需要 熟悉 Git 指令:

Heroku 目前的策略,取消了「在線上撰寫 Rails Application」。而改成類似 SCM + Deploy Tool 的方式。Heroku 有自己的 rubygems。而 git push heroku master 等於 git push + deploy。

  1. 必須手動撰寫 .gems 檔 :

require 的 gems 必須寫成一個 .gems 檔,一起 commit 上去,這樣 git push heroku 上去就會自動安裝。上面的 Rails 似乎是 2.2.2 版,所以如果 Rails 版本比較低(如 2.1.x),必須也要當成一個 require 的 rubygems 寫在 .gems 裡。我的建議是,如果想省時間,也許可以考慮把 rubygems unpack 成 plugin 的方式掛上去。

  1. 只支援 PostgreSQL:

Heroku 的內建 db 是 PostgreSQL,似乎沒有其他選擇。如果 Application 都是用 ActiveRecord 生 query 倒還好,如果有手刻 SQL 語法的份就必須要注意一下。有可以把舊有 db 推上去的選項,但我試用的心得是 MySQL 倒進去轉成 PostgreSQL 會遇上 schema_migration 版本號的 integer out of range 問題,直接導致 import 失敗。

結論:

Heroku 適合當 stagging / demo site ,而不適合當 production 環境。原因是 deploy 方式很便利,但效能似乎不佳以及有先天環境上的限制。而 Heroku 有 DNS mapping,拿來當個測試用的站台不錯(自己找機器架好 Rails deploy 是一件累人的事)。以後如果在 RailsEnvy 上面看到什麼 powerful 的 opensource cms or application,可以扔上 Heroku 玩看看。

如何將你的新工程師迅速調教成一隻老鳥 2012-11-12 Facebook 3,083 儲存文章

前言

第一次覺得有興趣介紹新兵營文化是和王建碩聊天的時候。當時我在百姓網裡做Advisor, 了解到他們也有類似新兵訓練營(即如何讓新來的員工迅速融入到公司文化中進行高效協作)的項目,一開始也是向Facebook學習,但在具體的操作上都在很小心的摸索,所以我們進行了比較深入的探討。本文將分多篇來介紹新兵營計劃的內容,背後的理念和操作上要注意的細節問題。本文節選自即將於12月份出版的新書《我在Facebook的日子 – 打造Facebook》。

什麼是新兵營

其實,扎克伯格在2012年2月宣布IPO時對外發表的公開信里說得很清楚:「……Facebook要求所有新入職的工程師——包括那些將來並非主要從事編程工作的經理——參加新兵訓練營(Bootcamp),學習我們的代碼庫、工具和方法。業內有許多人負責管理工程師團隊,並不願親自動手編寫代碼;然而,我們尋找的實踐型人才都希望也能夠經受新兵訓練營的檢驗。」

沒錯,新兵訓練營,其實也是菜鳥養成營,其目的就是讓新來的工程師和產品經理接受為期六周的集中培訓以儘快融入公司之中,更為順暢地開始工作。可是,這有什麼稀奇的?很多公司都會為新員工指定一個導師啊。但是,Facebook的做法明顯區別於他們。

為什麼要有新兵訓練營?

先談談新兵訓練營的歷史。

新兵訓練營計劃並不是從公司一成立就有的。我加入Facebook的時候還沒有這一計劃。我進入公司時,第一個月里找了一堆有問題的代碼來修改,通過這些工作接觸並認識了很多朋友。第二個月,我選了一個大概長度為一個月的項目自己玩,也沒什麼人來管。就在這些練習中慢慢地認識公司的人,學習公司的文化,並逐漸融入Facebook。但是隨着公司迅速發展、員工不斷增多,無計劃的自學式的方法無法迅速地幫助大量新員工高效融入到Facebook,所以從2008年中開始,Facebook開始系統性地設計和試驗新兵訓練營計劃,並在實踐中不斷改進。很快,這個計劃變成了所有新加入的工程師都要強制參加的培訓計劃。對於產品經理,原則上也要求他們參加。由於產品經理進來的時候都已經確定好去某個組,不像工程師,大部分都沒有確定去向,所以如果產品經理的老闆有特殊要求的話則可以不經過新兵訓練營而直接開始工作。這種情況比較少見。

這一計劃的主要推動者是安德魯·博斯沃斯(Andrew Bosworth), 博斯沃斯是公司文化的主要捍衛者,「上帝不允許我們有一天不為Facebook的未來做準備。我們曾見過一家又一家的公司在做大后因為規模陷入麻煩,或因為文化陷入麻煩。」在2008年初,他開始意識到,Facebook的文化可能面臨挑戰甚至失敗。他剛進公司時,所有人都彼此認識,可是2008年夏季的一天,當他在公司的餐廳排隊時,遇到了一位之前從未見過的工程師。於是博斯沃思問他,在公司幹了多久;對方的回答讓他震驚:一年。他感覺有點不對勁兒。「我們是Facebook,如果我們不能規劃一個超過150人的溝通網絡,就真的有麻煩了。」他這麼想。我在Facebook這四年半,一開始幾乎每個工程師都互相認識,但人員的迅速增長,讓這一點變得不可能。如何有效的讓最適合(潛在)合作的人互相認識,有信任感,來保證項目的高效完成,成了Facebook這麼些年很大的一個挑戰。等到項目開始的時候參與的人員才開始互相認識,那麼磨合期會更長,磨合成本會更高。

2008年中,正是新員工如潮水般湧進公司之際,作為公司整個文化培育行動的一部分,新兵訓練營計劃登場了。這項計劃就是為了讓新工程師們認識公司裡面相關的人,了解公司的文化,了解公司的技術與產品,從而能迅速地融入Facebook,並找到適合自身能力和興趣的小組(即通過這個過程確定他的具體工作職能)。

新兵在這六周里究竟要做什麼?

第一周的周一,新來的工程師們在公司自助餐廳里和負責他們的導師(Mentor)吃完中飯後,為期六周的強制性訓練營就拉開了序幕。這位導師將全權負責回答新人們的各種問題,從工作,到生活,到八卦,如果新人真的感興趣的話。簡短的介紹之後(博斯沃思和其他老員工會在這個環節介紹公司的文化),每人會分到一台電腦和一張辦公桌。第一次打開電腦時,他們會看到6封電子郵件,其中1封是歡迎信,另外5封介紹了他們將要執行的任務,包括修復Facebook網站上的錯誤。訓練的目的很多,其中之一就是讓新員工充分認識到,他們擁有直接改變Facebook網站的力量。

Facebook很希望工程師在第一天就把所有的編程環境都設置好,在第一天就提交代碼 [1]。這樣可以在周二參與每周例行的代碼發佈活動,將代碼同步到Facebook幾十萬台服務器中。Facebook並不希望新人在第一天提交複雜的代碼,基本都是很簡單的改變;希望通過練手讓工程師能迅速了解整個流程,迅速進入角色。

頭三周有很多課程要上。一般公司的COO(首席運營官),CPO(首席產品官),工程副總裁都會在第一周給新人們介紹各個部門概況,給大家一個全局的認識。第二周,重點在於公司各個重要產品,常用的技術框架和技術工具的介紹。第三周,集中在公司的運營(包括市場,銷售等部門),商業模式(Facebook主要的廣告模式和虛擬貨幣的盈利手段)和其他非產品技術部門的介紹。

從第三周開始,新人們就開始接觸很多相關的需要招人的組,和這些組的經理交流,了解這些組的產品,參加這些組的會議和討論。一般要求在第三周的周末,新人要選出不多於三個組作為他們感興趣的備選組。接下來每一周的事情就是進一步縮小目標範圍,以達到在第六周時只剩備選組的目的。這個組當然就是新人最後要加入的組。

從第一周到第六周,所有新人60%以上的時間,都需要花在修復代碼錯誤上面。其他所有的事情應該在剩餘的40%時間內完成。Facebook相信,讓工程師融入公司最好的辦法是通過代碼的交流。畢竟,產生高質量的代碼的確是所有工程師最主要的工作。

誰可以做新兵訓練營的導師?

導師需要對公司文化有比較強的認識,一般要在公司呆過一年以上。自願擔任導師者一般是想發展成人事經理(People Manager)的,也就是對人員管理、對與人打交道感興趣的人。

既然作為公司整個文化培育行動的一部分,那麼如何產生出新兵訓練營的導師則是其中的關鍵。首先,他需要對公司文化有比較強的認識,一般要在公司呆過一年以上,當然越久越好。我在2010年中開始做新兵訓練營導師時已在Facebook超過三年;和我同期的導師有一位比我還要早一年。其次,做導師是自願性質的(也可以由老闆推薦合適的工程師去擔任),只要你有意願就可以提出申請,但也需要得到你老闆的同意,因為做導師需要佔用1/4強的正常工作時間。對自己要求高的人並不會因為做導師而讓自己的績效降低1/4,所以這意味着要擠占自己一部分業餘時間。

通常,自願擔任導師者一般是想做人事經理的,也就是對人員管理、對與人打交道感興趣的人。現在Facebook硬性規定,所有可能升職為經理的候選人,必須至少做一期新兵訓練營的導師。比如我就是在升職為經理之前,被我的老闆推薦去做過兩期的導師。另外,做導師一般要求是技術牛人,因為在訓練營里,新員工每天都要完成大量具體的技術任務,需要導師在必要的時候在技術問題上加以指導。導師也要有能力在結束時準確判斷新兵們的能力和所長。

截至我離開Facebook時,大概每兩周會進來一批新工程師,那麼每期新兵訓練營是六周,每期有2~4個導師,每個導師要帶5~9個人,大概每周需要花10~20小時的時間。所有的導師有一個負責人,就是博斯沃斯,他還有一個助手,負責所有的導師和新員工的分配,基本上是把背景類似的(比如校友、原同事、有相同的技術興趣點等)分配給同一個導師,這樣每個小組裡成員之間更好溝通。

導師需要做什麼?

新員工在訓練營里60%~70%的時間要用在修改程序錯誤上,而遇到任何困難,都可以尋求導師的幫助,關鍵是方法、理念、文化的傳遞。

那麼,導師具體要做些什麼呢?新員工有任何問題,尤其是關於公司文化的,除了嘗試自己解決以外,都可以尋求導師的幫助或指導;導師不會在任何時候給新員工臉色看,而是會全力支持他們的學習。

首先,導師每周和被指導的新員工做「一對一」的重點討論,比如他最近的學習進展,表現如何,哪些方面做得好,哪些方面需要加強。公司要求導師對新員工給予最直接的反饋,以幫助他們迅速成長。另外一個交流的重點是對於公司內現有的哪些團隊和項目感興趣,因為新兵訓練營的最終目的就是讓他們順利融入公司,找到合適的小組。什麼才算是合適的小組呢?從新員工的角度來說,就是既能發揮他的長處,又是他感興趣的;從公司的立場看,當然希望重點的項目能夠得到合適的人力分配。如果能做到雙方都滿意的匹配,就是理想狀態了。Facebook非常鼓勵員工到他感興趣但不熟悉的領域,這樣可以給一個項目帶來新鮮的視角。當然,這麼做的前提是這些人是很聰明的、非常有學習能力的工程師。

其次,導師每周都要參加導師碰頭會,參加者包括所有正在訓練營的導師、博斯沃斯及其助手,會議就訓練營中遇到的一些具體問題進行討論,找出解決方案。大多數時間會花在一些表現特別出色或特別遜色的新兵身上,如果沒有這兩類人的話,會提早散會。對於表現特別出色的,導師要着重考慮哪些組最適合這些能力強悍的新兵。公司希望將最好的新兵用在最重要、最需要他們特長的崗位上。有好幾次,在一期新兵營剛開始的時候,幾個組的組長都發信要招同一個人,這樣的「搶人」就需要在碰頭會上商量如何進行引導和解決。對於表現特別遜色的,則會花時間討論如何幫助他們改變以有所起色。因為,對於通過Facebook層層面試的人,公司相信他們還是有實力的。不經過多次努力,公司不會輕易得出他們不適合Facebook這一結論。

還有,導師會分配一些代碼錯誤給新員工進行修補,這類任務通常會佔到新員工60%~70%的時間。設想一下,作為一個新人,你的工作成果很快就被數以億萬計的用戶使用,多麼有成就感的事情!這樣做可以給他們極大的自信。修改錯誤的過程中,新員工可以了解到相關項目的前因後果,需要跟相關程序的小組及工程師打交道,熟悉很多內部工具……這就又回到了新兵訓練營的最終目的上——幫他們找到最合適的組。

如果新工程師在修改錯誤時遇到了困難,那他是先跟自己在訓練營里的朋友互相商量,一群菜鳥找出答案來,還是直接尋求導師的幫助呢?當然,菜鳥互幫互助是最受鼓勵的,解決問題的方式往往不止一種,而是有很多,每個人都可以構想自己的方法,自己什麼嘗試都沒做就直接問別人則是非常忌諱的。如果實在不行、確實需要找導師時,導師往往也不會給出直接的答案,而是告訴新人們,可以去找代碼錯誤涉及的原先的工程師聊聊,哪些人對這個部分更了解。正如中國的諺語,「授之於魚,不如授之以漁」,希望新員工能夠自己去思考這些遇到的問題,然後找出解決方法;當然,也不能在困難面前自己一個勁死磕,要學會適當尋求別人的幫助。一個簡單的原則是:至少要在相關的代碼里花了半小時而沒有任何頭緒,這時候才適合去尋找導師或者問相關的工程師。這樣你在和導師或者相關工程師請教的時候,可以在解釋完遇到的問題之後,再迅速描述你已經查看的代碼和已經排除的一些假設;當別人知道你做過功課的時候,會更加願意幫你。不懂就問,而不是自己先鑽研的人,在Facebook不受歡迎。

訓練營里很多時候碰到的情況是,解決一個問題其實有好幾種方式,但新員工還不明白哪種方式是Facebook通用的,這個時候導師可以告訴他去代碼庫里看看其他類似的地方是怎麼處理的,看以前的工程師是怎麼做的,重複這種方式保持一致性一般沒有問題。所以如何高效地做代碼查看成了每個員工都要學會的技能。

如果涉及的是具體產品的技術性問題,Facebook不建議導師進行深入的幫助,因為這樣就變成我來幫助你做一件非常具體的事情了,而關鍵的是教給新員工方法、理念、文化上的東西。

如何為新員工找到合適的工作職位

導師在跟幾位需要招人的經理討論之後,就會安排大致匹配的新員工與之見面,通常是經理在做「推銷」;而新員工好比是在「面試」那些小組,最後由他決定自己想去哪個組。

為了讓合適的組找到合適的人,新兵訓練營負責日常運營的人(博斯沃斯的助手)會在每一期開始前一周把所有新兵的簡歷E-mail給有招人名額的經理。如果經理看到一個特別合適的,新兵營會配合這個經理去引起目標人選的興趣,比如說會鼓勵他參加該組的討論會,多分配該組相關的代碼錯誤修改任務等。但最後能不能成功,最大的決定來自於新兵本人。

另外,導師也會主動跟目前需要人手的那些組溝通,看自己負責指導的新員工更適合哪些項目。Facebook專門有一個頁面,叫團隊優先級頁面(Team Priority Page),負責產品技術的各個組都可以把自身的用人需求放在上面,還有一個由博斯沃斯和工程總監們組成的委員會,每兩周開一次會,討論每個組的用人優先度。博斯沃斯的強勢在這個會議上大有用處。根據這些情況,導師會跟相應的幾個經理做一些探討,比如挑幾個最重要的組當中要招人的幾個職位,看起來跟自己的所負責的新員工背景比較符合,進行一個大致的匹配,相當於導師幫新人做了一次初選。畢竟讓一個新人在完全沒有指導的情況下去了解每個組,效率太低,也不現實。導師再鼓勵新員工去跟這些備選組的人去接觸、溝通。

導師每周都會對所指導的新員工進行評級(有Rockstar—明星,Solid—紮實,Shaky—搖擺這幾個級別)並簡要地評價,說明他水平如何、有什麼特長、對哪些組特別感興趣等,這些評價整理匯總之後會發給所有的經理,所以他們對新員工的能力也有了大致的了解。

導師在跟幾位經理經過討論之後,就會安排大致匹配的新員工與之見面,一般半個小時左右,通常是經理來介紹他的小組在做什麼項目,需要招什麼樣的人,這項工作的意義何在,這個小組對整個公司有什麼意義等,相當於在做「推銷」;而新員工主要是聽,好比是在「面試」那些小組,最後由他決定自己想去哪個組。

除非有特殊情況,一般某個新員工選定的組都會接收他,不能拒絕。因為如果你拒絕的理由是「他不行」的話,那不如解僱他,而不是說你不願意讓他到你的組、但可以到其他組,這種想法違背Facebook的文化。我在前面就強調過這一點,「我們都是為Facebook工作的,而不是為了某個小組工作」,所以如果你覺得某個新員工不行,那其他組也不應該要他。如果原因是「他的背景不適合」,那一開始就不應該見面會談。導師極力避免把新人介紹到明顯不適合的組裡面,所以這個理由也不成立。

這種討論既可以由導師發起,也可以由需要用人的經理髮起。比如我曾在新兵訓練營里指導過一個之前在Google的資深工程師(Senior Staff Engineer),原先在Googe屬於前3%行列的,水平很高,沒過幾天就有好幾個組的經理跟我說想找這個人談談。當然,這種情況下,我不希望經理直接去找這個人。我要先做個篩選,畢竟對雙方都了解的只有我一個人,如果是我覺得合適的組,再轉給該工程師看他是否感興趣。另外,就是避免過度的「推銷」,這會讓員工迷惑、陷入過多選擇。畢竟對Facebook很重要的組有很多,有趣的組也很多,如果每個組都來向新人推銷一遍,新人的想法就混亂了,反而沒辦法做出選擇。

導師還有一個很重要的任務,就是當某幾個特別重要的崗位急缺人的時候,要花力氣去「忽悠」合適的人到這些組去。這個時候,導師會循循善誘,極力爭取喚起新人對這些組的重要性的認同和對其業務的興趣。我做過幾例這樣的推銷工作。老實說,這不是最自然的匹配方式,因為在這種時候誘導性太強。

在新兵訓練營結束后,也會發生淘汰的情況,但幾率很低。印象中,在我離開Facebook時,像這種情況淘汰掉的總共不超過10個人,而經過新兵訓練營的工程師和產品經理一共大概有500多人,淘汰率不到2%。

在我曾經帶過的一期當中,有一位伯克利畢業的專攻機器學習(Machine Learning)的博士,美國人,有三年多工作經歷,很年輕。他很聰明,但有典型的博士風格——凡事都要弄得特別深入、特別細緻。這樣導致了一個問題,速度太慢。一個我自己去做只用一兩個小時完成的代碼修復,一般期待新人最多半天,但這位兄弟為了把前前後後弄得一清二楚花幾天時間都搞不定。我們之間有過多次關於質和量如何平衡的討論,也達成了他應該加快速度、增加產出的結論。我在多次的表現評級上都給了他「搖擺(Shaky)」的評價,但似乎改善不多。在第四周,我們給了他最後的機會,讓他嘗試給動態消息組的機器學習算法部分做一個改進。機器學習算法的一個特點是對試驗的設計、數據的獲取和分析要求很高,相對於其他的產品項目,對質量的要求要高,速度的要求較低,比較適合研究型人才的胃口。所以,這種安排也是希望能讓他更容易展現自己的特長。從組裡的反應來看,對他的表現還算滿意。最後我們就讓他進了這個組,沒有讓他走人。對於表現不良的新人,雖然總體上Facebook是求快,但對於在某方面有造詣的工程師還是儘可能為他尋找合適的崗位。

這裡面其實也反映出一個問題,就是研究型人才如何在一家步伐很快的技術公司立足。Facebook也在慢慢地摸索。

就我個人做導師的經歷而言,新兵訓練營結束后我還會繼續跟蹤(這不是公司統一要求的)。新兵營畢業后一個月和三個月後,我會跟這些新員工再進行「一對一」談話,看他們感覺怎麼樣,新兵營對他們有沒有幫助,是否適應目前的工作,有沒有文化溝通上的衝突等。

訓練營不僅是新員工培訓班,也是經理培訓班

對於快速成長、規模不斷擴大的Facebook來說,新兵訓練營還是一個培養一線管理者的好地方,並有效地保持了自身的文化特色。

對於成立於2004年的Facebook來說,如何在快速成長中保持自身的文化特色(本書相關章節會專門講到公司的文化),如何在新工程師潮水般湧進公司時仍能以一貫之,就必須有一批新的一線管理層做基礎。新兵訓練營看似只不過是個新員工培訓班,但就像我們上面介紹的那樣,做導師的基本都是潛在的經理候選人,他們在訓練營里同樣獲得了寶貴的領導經驗。他帶着5~9個新員工,就像一個小團隊,討論遇到的各種問題;在指導新員工如何解決問題的過程中,他可以學到管理技巧。

這種培養管理者的程序特別重要。因為Facebook從一開始就是由幾個20來歲、沒有職業經驗的年輕人成立的,之後的工程師主體也大多是這樣的年輕人,其中很多都沒有在別的公司工作過,儘管在打造網站方面做得非常出色,但對於公司文化的可持續性實在沒有把握。由於Facebook的結構非常扁平,一線管理層作為整個工程師管理的基礎,有一個系統性的培訓機構能持續性的提供新的經理,對於公司的發展是非常重要的。

新兵訓練營在這方面起到了不可忽視的作用。 —————————————— [1] Facebook代碼產生的過程包括寫代碼(write code),測試代碼(test code),審查代碼(review code),提交代碼(check in code),發佈代碼(release code)。寫代碼指在自己的開發機器上做好修改,這些修改只存在於自己的開發環境中;測試代碼指在本地端測試自己的修改以保證修改不引入明顯的問題;審查代碼指找合適的工程師同事來查看待提交的代碼;提交代碼是將經審查的代碼提交到服務器端的代碼庫之中;發佈代碼是將提交的新代碼同步到所有的服務器端讓最終用戶使用新的功能。

簡單回一下好了。關於職業的部分。我本來也是覺得就如同跟 @vgod 一樣所說,在裡面可以全新鍛鍊和學習各種知識和技能。

我在大學裡面,就是抱著這樣的心態,學習各種知識。我在大學裡面最認真修的課,不是數學(唯一感興趣的是線性代數、離散數學、代數) ,而是....去資科系基礎理論的課,什麼作業系統、計算機結構、演算法、資料結構、數位電路、etc...大概能修的我都修了。數學系最 重視的微積分、高等微積分,我沒有很喜歡。而且,我大概下課的時間都泡在系上的機房,弄網路、伺服器、寫寫簡單的網站。

而最後我也是抱著這樣的心態,選擇了第一份工作。因為我覺得大學的環境才能讓「自己有選擇想練什麼武功的自由」。 我希望一直這樣持續下去。

然而,接下來的事情。你們知道了,我被打臉了。狠狠的打了一巴掌。

那一天,我才發現我關在學校自己練的等級,跟職業的人是差上那麼多。這才是讓我選擇馬上離開那個環境的主因。

很多人以為「自己有選擇想練什麼武功的自由」,才能讓自己的 power 開到最大。我對這件事情有截然不同的感受。為什麼職業的環境 會成長很快。因為上班領錢,才有限時被交出成果的壓力。而且那個壓力能造成的動力是遠比自己下定決心要練什麼技能的動力還要可怕 的。上班,你會被迫限時學到跟這個領域所有「基礎」的工具。一個月「基礎的程度」,可能直接贏掉自己自由學「半年」以上的程度。

而且特別是,如果你的同事和老闆,都是佼佼者的話....。到現在我還是相當感謝曾經共事過的 @gugod, @ihower, @gslin, @hlb, @嬸嬸 XD

我的能量一直等到我大學畢業後,終於不用躲躲藏藏的滿足別人對我的表面期望之後,才用力的迸發出來。如果可以,我希望我一開始就不用花時間在這件事情上。

我一直到出社會、甚至當主管以後,我才開始意識到全民盲目的拿高等學位這件事,對國家的競爭力是多麼可怕的傷害。很多人以為讀大學用的都是自己的錢,浪費學費也是自己家的事。事實上,完全不是這回事。不管你是讀公立大學或者是私立大學,國家都花了非常多錢在你身上。每一個人讀大學的成本,其實並不是光光只有學費而已。事實上政府對每一間學校的大量補助,才讓你可以每個月以最多只繳五六萬的代價就取得學位。事實上若真要計算,一個學期正常的每人教育成本應該是幾十萬台幣...。

但是,這當中有多少比例的人真的渴望上大學唸書?恐怕真的很少。幾乎絕大多數的學生都把念大學當作是可以打電動郊遊的坐牢而已。國家投注四年心血,結果學生放空放四年。

這完全是巨大的實體資源(金錢)以及黃金的無形資源(年輕人的青春)浪費。但卻沒有人對這件事情提出質疑。

大家都覺得外國人都超厲害,十幾歲二十幾歲技術就都超強,做出超屌的網站,創上超級厲害的公司。為什麼台灣人沒辦法?

很簡單,因為台灣人的人生從 22 歲才開始…人家 15-18 歲就開始了...

很多人也害怕,如果沒有一個大學學歷會找不到好的工作,有不錯的薪水。我出社會、當上主管以後才知道企業選才的標準完全不是你念哪個大學畢業的。而是你專業技能的純熟度、你當年的可塑性(年紀)。(換句話說你越老,但技術越嫩,競爭力只會越來越弱。)

沒有一個好的大學、碩士學歷,也只會影響你「第一分工作」的起薪。「第一分工作」並不是人生的全部。「第一分工作」只是唯一一個人家願意容忍你犯超級愚蠢錯誤的地方。

把時間浪費在『坐學校牢』上,完全沒有意義。如果你有一件事超級有熱情,那麼你就應該現在去作。如果你想光宗耀祖,那麼你應該從現在開始。

爸媽不會跟你說這件事,而他們會認為我在傳邪道。

Dovoas. 2013-05-22 09:57 来源:《The Little Book of Talent》 笔记: Zen

第一部分:如何开始(1 -12)

  1. 观察你想要成为的人,并与其建立更多的联系,能够增进动力
  2. 熟练掌握好一个个细小的组块,每次只需要10几分钟
  3. 直接学习该领域牛人的做法,但不要停留在表面模仿,而应该关注关键行为以及他们与我的不同之处
  4. 坚持做记录,保持一种自省的态度,人并不善于记忆,记录能够让自己有一个清晰的定位 5.犯错 = 发现进步的空间
  5. 无所畏惧,当选择了“hard”模式的时候,就意味着可能出现失败
  6. 技能可分为软技能以及硬技能两种
  7. 硬技能的特点是途径单一、机械、可重复的,学习的关键在于“明确性"以及”精确性”,同时,慢慢来,关注错误并及时修正
  8. 软技能的特点是识别样式,然后迅速作出反应,学习的时候应该持“探索”精神,不断挑战自我
  9. 很多技能都包含了两者,但是硬技能是基础,只有掌握这些基础,才能不断探索
  10. 人生是场马拉松,不要因为过去的成功限制了自身的进步,也不要因为过去的失败选择早早退出 12.选择一个好的导师,好的导师具有威严,而且强调基础,不会取悦你,每次指明一个清晰的小的目标。如果其他因素一样,选择一个年长的。

第二部分 如何提高

13.找到最佳学习区域:投入、奋斗、不断超越边界。如果停留在舒适区,没有“奋斗感”,如果停留在生存区,感觉实力悬殊,而且还要寄希于运气

  1. 不要用单纯的时间积累来衡量自身的进步,要有清晰的目标让自己处在最佳区域 15.将技能进行分解:最小的单元是什么,它们是如何进行联系的,每次只掌握一个,然后不断建立联系 16.每天试着去完美的掌握一个单元 17.拥抱奋斗,”desirable difficulty”
  2. 宁可选择每天练习5分钟,而不是选择一周在某一天练习一小时 19.游戏化,发现一种方法让自己做的事情变得有趣 20.单独练习 21.善于比喻等方法让学习资料变得更加生动且易理解 22.当错误出现的时候,应该马上关注它,避免再犯,而不是选择逃避
  3. 错误不仅仅是错误,而是帮助你大脑建立连接的催化剂
  4. 练习过程中,大脑建立连接的速度会越来越快,有点类似于复利
  5. 缩小练习的”空间“:eg 体育:在小片空间里练球更能提高球性 eg 作家利用twitter(140字)来练习写作,也就是说,增加适当的条件限制
  6. 越慢越好,练习的速度越慢,你越能够发现错误
  7. 闭上眼睛,除了能够集中注意力外,其他感官提供的反馈也能够让大脑更有效的建立联系,人是一个整体 28.不一定要有工具,比如在桌上练习钢琴,当去除工具之后,你更能发现自己是如何做的 29.练习时,当做出一个完美的动作时,停下里,在头脑中演练,记住此时此刻的感受、节奏 30.小睡有助于提高学习效率,19分钟的小睡能够提高10%的记忆测试分数(by Berkeley, California) 31.学习新知识的时候,适当的”夸大“它能够加深印象
  8. 总是关注积极的一面
  9. 用自己的语言解释所学的内容,而不是去死记硬背
  10. 三明治练习法:做一遍正确的示范-做一遍错误的示范-再做一遍正确的示范,这样能够使你注意到错误并避免再犯
  11. 3*10练习法:重复练习3次,然后休息10分钟,by 神经学家 Douglas Fields
  12. 自己设计”测试“方法,参考原则:有趣、关键点、精确、快速、可重复、跟踪进步进度
  13. R.E.P.S练习法:能力极限(Reaching)、可重复(Repeating)、投入(Engagement)、刻意地(Purposefulness)、快速显著的反馈(Strong,Speedy Feedback)
  14. 累了就停止学习,因为在精力不佳的状况下,更容易犯错,养成坏习惯
  15. 当你在展示成果、竞赛、表演之后,马上开始新的练习
  16. 睡觉之前,在脑海中想象自己最佳的表现
  17. 在兴致还未完全消失的时候结束,这样下一次就更容易开始 42.成为好的导师的建议:重视情感、将要表达的信息分成简单的块、避免模糊两可的指示、使用计分卡、培养学生独立自主的能力、激发他们的能力极限

第三部分 如何持续进步

  1. 强迫自己重复练习,宁可一个小模块重复100次,而不是一次练习100个模块
  2. 要有体力劳动者的心态:不管喜不喜欢,每天都要练习,勿自大
  3. 1比5原则,比赛时间与练习时间的比为1:5,比如每打1小时的野球,就自己训练五个小时
  4. 不要浪费时间去停止坏习惯了,试着用新的习惯取代之,不要速成
  5. 教是最好的学
  6. 对于新的技能来说,保持耐心,至少要坚持8周 49.处在平台期的时候,调整下方法,比如加快练习、放慢练习,增加次数,增加难度等等
  7. 培养自己的毅力,毅力不是天生的,而是后天发展的
  8. 不要告诉别人你的大目标
  9. 不要评断自己,思考的时候像园丁那样有耐性,行动的时候像木匠那样一个一个模块慢慢练习

讀碩士,不如工作兩年;工作兩年,不如認真創業兩年 October 20th, 2016 by Jamie

Starting up

當然研究所經驗、工作經歷,與創業歷練三者之間,有很多的異質性,不完全能互相比較。但如果你正要在這三種路線間做出選擇,本文單就以一個人才而言,投資在其中一個路線,兩年期間所積累的知識、技術與經驗,未來對於 Internet 企業雇主的價值,略作論述。最終,每個人應該還是要綜合考量自己的興趣、天賦等其他要素,做出自己的人生路線抉擇。

雖然數十年來研究所的供給從稀缺到過剩,碩士對於人才的加值日益降低,但單純從數字看,時至今日,研究所畢業較大學部的平均起薪,還是有相當的增加 ─ 在美國,碩士較學士平均起薪增加約 22% 。在台灣,多數企業給碩士起薪則通常較大學畢業生高五千元或以下。[1]

碩士的對手不是學士,而是兩年工作經驗的人才

但這樣的比較少考慮了一個非常關鍵的點:讀碩士需要投資 2 年的寶貴青春,所以,碩士的真正對手其實不是學士,而是學士畢業後直接投入職場,累積兩年工作經驗的人才。

尤其在 Internet 這樣變化快、學用落差大、看重實務經驗的行業,兩年經驗的價值,事實上已經遠遠超越碩士學歷。根據我們近期對 15 家 AppWorks Startups、加總員工人數 1,362 人所做的粗略調查顯示,無經驗的大學畢業生平均起薪為每月 NT$ 35.8K,無經驗的碩士則為 NT$ 39.6K,較大學生有 10.7% 的增加。但不論學歷,有兩年經驗的人才,平均薪水為 NT$ 48.3K,較學士增加高達 35%,較碩士增加也達 22%。

換言之,在網路這個行業,兩年工作經驗對雇主的價值,平均來說遠遠大過兩年的研究所學歷。

複利計算的經驗價值

更重要的,經驗在網路這個領域的價值是複利計算的。相較於新鮮人,五年經驗的人才平均薪資是 NT$ 62.9K,增加 76%;十年經驗的人才平均薪水則達 NT$ 86.4K,較剛入行時增加 141%。換言之,花兩年時間念碩士,不僅起薪會輸給大學畢業直接進入 Internet 歷練的人才,在後續加薪曲線上,恐怕會一路落後到底。

因此,除了轉念資工所等少數特殊路線外 [1],在網路與電商成為主流行業的現在,投資兩年念碩士,比大學畢業直接出來工作、積累實務經驗,恐怕是相對較差的選擇。

這是今天這篇文章,我想講的第一個重點。而第二個重點,我想聊的是,如果要計算積累兩年經驗的價值,那有一個選項,可能比去 Internet 公司上班的時間投資報酬率還高,那就是努力試著創造一家 Internet 公司。

創業兩年經驗更有價值

雖然這個統計比較不科學,但根據我們能拿到的幾個 AppWorks 校友資料點顯示,如果你認真創業兩年,但最終因為機運、因為大環境、因為客觀條件而沒有成功,事實上,你積累的經驗與能力,對於未來的雇主而言,可能是非常、非常有價值的。

平均來說,畢業後直接創業,積累兩年經驗,最後沒有成功,選擇去就業的 AppWorks 校友,起薪高達 NT$ 69K,更勝於前述 5 年工作經驗的積累,較新鮮人則幾乎是翻倍。

更重要的是,在質化統計上,我們的校友的回饋顯示,進入公司後他們佔有不少優勢。因為創業過程中,已經積累了相當的管理經驗,因此跟主管、老闆往往更能溝通。當有升遷的機會,通常是被優先被考慮的人選。

回頭想想我自己的經驗,1999 年,我還是大三學生時,就跟學長們一起創辦個電子商務網站哈酷,成功募得數億創投資金。達康股災後後我們轉型為企業知識管理方案商碩網,2002 年我被調派到上海擔任大中國區總經理。2003 年,公司就成長到上億台幣營收,並且開始獲利。這時我的很多同學,才剛念完研究所、當完兵,要開始找工作。如果我當時選擇去別的企業上班,我相信要到一個想經營中國市場的跨國 IT 公司,擔任經理、副總職位,應該相當有機會。換算起來,的確就是等同於 5-10 年工作經驗的加速。

創業失敗,可以是職涯的成功

所以,雖然創業失敗機率雖然很高,但如果把眼光放大、放遠,只要你在過程中專注、努力、拼命學習,即使這個事業嘗試最終不幸的失敗了,可能還可換回來後續職業生涯的成功。從這個角度去看,創業失敗就一點也不可怕了。


要認真工作兩年的人,歡迎到 2017 冬季 AppWorks 聯合大徵才找機會,85 家優質 Internet 企業、787 個熱門職缺等著你


後記:這篇文章得到了不少分享,但有些概念的表達可能太簡潔、不夠完整,因此從讀者在 Facebook 的留言來看,有可能讓人形成四種主要的誤會。以下把與這些讀者的 Q&A 編輯後貼出,協助所有人更理解我在描述的概念。

Q: 什麼事情都用錢來量化,是不是把自己路走窄了、讓夢想銅臭了?

A: 我完全同意,錢不是所有事情的衡量。事實上,更進一步論述,我認為如果能不要用錢衡量事情,人生往往會過得更滿足。但畢竟不是每個人都有這樣的選擇,所以就像所有期刊論文一樣,這篇文章嘗試著從收入,也就是對雇主的價值,這個簡化模型去論述我觀察到的現象。當然,一個簡化的模型,不適用於所有情境,也不適用於所有人。因此在文章一開頭,我提醒大家最終還要要根據自己的興趣、天賦,選擇自己的路線。或許是我的寫作能力不夠好,讓您與許多讀者有這篇文章是「什麼都用錢來衡量」的印象。在此請大家原諒,也請大家用更包容的態度,去理解這篇文章真正想傳達的。

Q: 不是所有人都適合創業,這樣的言論會不會害人?

A: 我的確也認為創業不適合所有人,事實上,這個選擇很有可能只適合少數人。關於這點,之前寫過很多文章。所以本篇文章的用意,不是鼓吹創業 (我尤其不鼓勵盲目創業),而是在論述當你選擇創業,非常努力在過程中歷練、學習,兩、三年之後,即使新事業因為外在因素而失敗,你的職業生涯,很有可能不會因此而跟著失敗,相反的,在我們的觀察裡面,很有可能會更成功。但這只是一個面向,就像文章一開始說的,最終所有人要根據自己的興趣、天賦去做出最適合自己的選擇。以上背景說明供您參考。

Q: 15 間新創團隊就可以代表全台灣的薪資水準?

A: 這個採樣的確應該有偏差,但我認為與母體 (所有 Internet 公司、所有員工的薪資) 的主要差異,應該在平均薪資的絕對金額上,在佐證該段落提出的假說:

“在 Internet 這樣變化快、學用落差大、看重實務經驗的行業,兩年經驗的價值,已經超越碩士學歷”

換言之,不同學歷、經驗間的薪資相對排名上,我認為有相當的信心水準。當然,它還是有某個機率是 False,所以您絕對可以不信任這個調查結果,也絕對可以因此推翻我提出的假說。我提出一些我的觀察結果,每個人依自己的判斷決定是否要採用,這是人類知識傳遞的基本結構,我完全尊重。

Q: 我知道你們一直在為了台灣創業環境做努力,也很希望台灣能變成創業者無後顧之憂的地方,但用「無論創業成敗與否,薪資都會成長」來作為創業的誘因是否恰當?

A: 我跟您有一樣的擔憂,因此「無論成敗與否,薪資都會成長」,並不是我想表達的觀念。如果讓您有這樣的印象,那是我的寫作能力不夠好,還請見諒。我在文章標題點出要「『認真』創業兩年」才算,在最後一段也強調「創業『失敗機率… 很高』… 在過程中要『專注、努力、拼命學習』… 這個事業嘗試最終不幸的失敗了…『可能』還可換回來後續職業生涯的成功」,都是在描述我觀察到的模型是特殊的,不是一體適用的。

[1] 在我們的調查裡面,相同學、經歷,工程師的薪資平均較行銷等前台職位高 30-46%

(Photo via hackny, CC License)

鄭伊廷更新了状态 2016年10月11日 · 觀察這社會。我發現年輕人之所以陷入困境的原因,是因為社會演化造成的。(而且多數人察覺這件事太慢了) 在這之前,先講一個定律

  • 你能賺到的錢 = 你能創造出的價值 * 影響力 (這邊不討論房地產等理財工具,純就在社會就業、從商的錢) 所以「一般年輕人」出社會低薪是很正常的。因為「沒有價值」以及「沒有影響力」。 那麼以前的年輕人為什麼能夠賺到錢。因為那個年代百廢待舉,所以只要你的技藝能夠幫上這個社會一點忙,不管是腦力或者是勞力。都會產生「價值」。影響力係數低也沒關係。 那麼現在呢?其實你看看,有年輕人持續窮苦,但還是有年輕人致富。他們的差異是什麼? 前者多半在做「一些低價值的事」。 我不是在說這個人沒有價值,而是這件事「在機器或程序自動化」下,價值變得低了。如果你沒有比機器人或程式有效率,那麼繼續處在低價值的世界是理所當然的。 現代教育就是所謂的普魯士教育,普魯士教育想要批量生產的就是,在沒有機械化時代時,將大量的人變成「半機械人」。然後,你可以發覺,世界上還沒有察覺並掙脫普魯士教育的國家,特別是東亞國家,年輕人都陷入了絕望。 (中國被影響的比較低,因為這個國家近幾年來在用人口紅利模式,大規模演化) 所以年輕人該怎麼做?感覺很絕望。 如果你現在就想找「一些不是低價值的事」做,我想恐怕你也會很失望,因為下場可能有絕大部分是「周遭的人」嘲弄你「還沒走就想要學飛」。(這也可能是真的) 我認為可以做的事,就是如同李笑來所說的,為自己現在正在做的事賦予意義。一旦你認為這件事有意義,把它做得更好。你會發現「有價值的方向」自動浮現。 還有,就算你想轉行,拜託別再只是從這一個無意義的事,跳到下一個無意的事了。就像我觀察我周遭轉行變成程序員的朋友,有的寫作技藝不是職業級,賺了大錢。有些轉過去還只是單純窮苦的碼農。 如果你不把手上的技藝賦予價值,任誰都沒辦法救你啊! 對了,最後小叮嚀。千萬遠離那些「老是跟你說學這個東西沒屁用」「老是嘲笑別人也不過如此」「鄙視別人只不過怎麼樣怎麼樣」的混帳。 因為他們「也不過只是個不怎樣沒屁用的人」而已,這種人講的話你就當廢話吧。

學校、公司給不了你的成長,如何自己創造? 謝宇程10 Mar, 2016 圖/stocksnap.io 圖/stocksnap.io 每一個有自我期許的人,每一個在事業上有抱負的人,必然會想問這句話:如何不斷成長,如何讓自己更有能力、見識、價值?

尤其在這個時代,傳統的進修管道(博碩士學位)不但代價極高,而且似乎愈來愈不可靠了。而企業又不斷削減開支,愈來愈不投資在員工的培訓。學校、公司給不了的成長,只能靠自己。但是,怎麼做?

在我認識的年輕世代之中,鄭伊廷是極有資格在這個問題上發言的人。先說一下鄭伊廷是什麼樣的人吧。話說前頭,她這個人真的是很奇特!

▎倒敘一下

鄭伊廷是最早將Growth Hack帶入台灣並且推廣的程式專家之一,而且是這個領域不斷研發新策略、新方法的意見領袖,她自從開設Growth Hack課程到現在,只要開班就報滿,供不應求,等候名單一直有幾百人。

2012年,她在臉書舉辦的世界黑客松競賽得到首獎,並在商周(1301期)受訪報導。這不是她第一次被主流媒體報導;她在27歲當上宏達電資深經理時,也被商業周刊訪問報導過(1198期)。在台灣,如果要找一個人對於程式技術、經營管理、創業行銷這些領域都極擅長的人,除了鄭伊廷之外,很難找到第二個。

不多說他的豐功偉績了,Google一下可以找到很多。嗯,關於她的收入?很可怕,不要問。

如果鄭伊廷在麻省理工讀大學,哈佛商學院畢業,這也很合理;但她不是,其實差很多。她在高中時接觸程式,一頭栽進去,大學沒有考好,進入文化大學數學系。她的第一分工作,是在文化大學當個行政職員,準時上下班,工作不忙不累,生活品質還好,但你在那個時候認識鄭伊廷,絕對不會想到,今日的她是這樣的強者。

從她的職涯路徑,從她每天在臉書上的分享、寫作、發言……許多認識她的人都認為她是「學習成長極快」的人,而且是自己創造的學習成長。鄭伊廷是怎麼辦到?她說:「其實不神祕不複雜,每個人都做得到。」

▎方法一:換一個你真心喜歡的工作

許多人會試著找穩定、輕鬆、薪水過得去的工作,然後在下班後發展興趣。鄭伊廷一開始就是這樣。她一開始當大學職員,先是在人事室處理教職員出缺勤、勞健保,後來在計算機中心管電腦,工作重複不變,非常簡單,但她卻愈做愈慌。就算她都準時下班,下班後練程式技能,但她知道專業程式員每天寫程式十小時,她只寫兩小時,差距是「五倍」!

她下定決心從穩定的學校行政體系離職,進入一個新創公司,做有挑戰性的工作,而且是她的興趣所在,所以她全心投入,一做就忘了時間。她用「爆量成長」這個詞來描述當時的進步速度,而且發現自己做軟體產品的能力超過常人,於是開始了她精彩萬分的職涯大冒險。

▎方法二:扛起責任,一起向前

許多人會認為,進入不夠好的公司是自己無法進步的原因。但鄭伊廷不這樣認為。她說:「很多人上班只會抱怨豬隊友或豬老闆,但他們可能正是你進步的契機。當我的豬隊友跟不上,我就去研究,寫一份指南給隊友;當我發現協作流程很糟,我就會跑去研究專案管理;當公司網站炸得一塌糊塗,就算這不是我的分內工作,我也主動研究系統整合。當同事有什麼不會,我就盡力試著用簡單的方式講解給對方聽,因而我發現自己有領導的潛力。」

「那幾年中,我可以有『一飛衝天』式的成長,常常不是因為把『分內的事做好』,而是幫團隊中的成員做到最好,幫著他們扛起責任,一起向前進步。因為我對這分工作有興趣、有熱忱,我心甘情願地認為團隊的事都是我的事,一點都不覺得我「吃虧」了,損失了「自己的時間」。在此同時,我能扎實地學到一個團隊運作中的各種學問、技能;乍看是不相關,但是卻是極有價值的組合技。」

▎方法三:和別人分享見解、回答他人問題

大部分人對於「分享」是減法思維:把見解分享給別人,我己的優勢就減少了,回答別人的問題,我花掉了自己的時間。但鄭伊廷的想法相反。如果你是鄭伊廷的臉書朋友,你會看到她每天都在分享各種見解、回答別人提問:內容包括技術、商業、經營,甚至包括她的演講與課程投影片……那都是她的經營事業的重要資源、商業機密不是嗎?

「當你要把想法分享給別人的時候,勢必要先寫下來,這是思緒整理與檢視的過程。其實任何道理和知識,你有辦法寫出來,能用明確的文字說明給別人看,其實你的腦才是真正理解。」鄭伊廷說,「而當你公開分享知識,你可能有錯誤被別人指出來,就是有人補充意見,你就進步成長了;如果我的見解很好,受到肯定,被轉載,可能有比我更強的人肯定我、認識我,都可能為之後的合作與友誼埋下機會。知識分享給別人,是瘋狂超車,是 360 度補血跳級。」

▎方法四:勤於自我檢討

當我們在工作上遇到挫折,大部分人會私下怨同事、譙老闆、怒客戶,或是大吃大喝一頓忘了它。當我們做完了一個專案,合格過關,我們通常大吃一頓、旅遊放鬆。這樣做也沒錯,只是絕對不會帶來成長。

鄭伊廷學到一個有系統的自我檢討方法,她不但用在自己身上,也常常和身旁的人推薦分享。這個方法叫 After Action Review——在完成一個專案/任務/計畫後,誠實而深刻地問自己這些問題:

我在矽谷的那些日子 : Sifteo

2017.06.09 作者:RT | 編輯:LL

2010 年春天,剛從大學畢業,我和許多同學一樣,買了張單程機票,離開冰冷的匹茲堡,前往陽光燦爛的加州去找一個新開始。在矽谷,我很幸運地加入一間位於舊金山市的新創公司 Sifteo,這段經驗正面影響了我往後的事務觀點與做事方法。

我第一次知道 Sifteo, 是在大學時看到一支關於 Siftables 的 TED 影片:

Siftables 是一套從 MIT Media Lab 研發出的互動式電腦平台,為一套多件大約 4.5 x 4.5 x 2.0 cm 的白色立方體無線電腦,每一塊電腦都有自己的螢幕,能獨立偵測傾斜、晃動、翻轉、並且可以和相鄰的立方體透過無線電溝通,擺脫電腦單一螢幕和鍵盤滑鼠的限制,讓使用者可以透過玩積木的直觀方式操作電子資訊。

在搬到矽谷的幾個月後,我無意間得知 Siftables (後來改名為 Sifteo Cubes) 的開發團隊在舊金山剛成立一間公司叫 Sifteo,希望藉由發行 Sifteo Cubes,來改變人與傳統電腦的關係,並期許如此直率的互動模式能進一步啟發兒童的多媒體創新思維。我在看完 Sifteo 的網站的當下想:「如果能與這一群絕頂聰明的人一起工作,參與一個新創產品的誕生,一定是很棒的經驗!」於是我鼓起勇氣寫了封信,推薦自己做他們的無薪實習生。發信後隔天我收到 Sifteo 創辦人之一 David Merrill 的回信:「下禮拜四早上 10:15 你能來我們的辦公室與我們的團隊見面嗎?」

四月十五號, 那天我滿懷期待的開了四十多分鐘車程,從東灣區跨越舊金山-奧克蘭海灣大橋,進入年輕人嚮往的舊金山,一路來到位於 Dogpatch 區一間看似倉庫的建築物。我心中帶有疑惑地走了進去,裡面的工業格局與想象中光鮮亮麗的矽谷新創公司完全不一樣。我既興奮又懷疑,走到一道標著 223 的鐵門前,門上貼了張小小、淺藍色的 Sifteo 貼紙,再三比對 David 給我的地址後,我敲了三下門。

2010 Sifteo 合照,左起:Liam Staskawicz、Jeevan Kalanithi 、David Merrill、我、Josh Lee。

Sifteo 一開始是一間窄小的辦公室:裡面堆滿了各式電子器材、設計圖和紙盒子,簡陋的廚房裡有滿滿的可樂空罐,五張 DIY 辦公桌旁坐了五位大男生。公司核心為 CEO / 創辦人 Jeevan Kalanithi 、總經理 / 創辦人 David Merrill、和軟體總監 Brent Fitzgerald,三人一起就讀於史丹佛大學與 MIT Media Lab 研究所,是我遇過最聰明也最全能的一群人,從軟硬體開發到創業大小事都能駕馭。公司內還有 Liam Staskawicz ,他是一位厲害的音樂家轉軟體開發者,負責 Sifteo Cubes 的 firmware,還有 Josh Lee 這位熱心又多才多藝的遊戲設計師兼創意總監。公司的組成很多元化,有來自科技、設計、與藝文的混合背景。

面試當天我穿了全套黑色西裝,上了銳利的髮膠,希望展現出我的專業態度。但一開門,我反而覺得格格不入 -- 幾乎所有人都穿著平素的帽 T 或 T-shirt。我們的談話內容相當簡單,主要在確認我履歷上的資料以及我的個性是否能和團隊磨合。面試尾,Brent 開玩笑般地開啟了我大學樂團的網站說:「嘿,你們的音樂還滿有趣的。」隨即又補充道:「David 和 Jeevan 以前也有一起玩過學生樂團,在 thebestrockbandever.com 上面還看得到。」

我好奇問他們,為什麼樂團網域選折 The Best Rock Band Ever (有史以來最棒搖滾天團) 時,Jeevan 理所當然地回答·:「因為還沒人用過啊!」

短暫談話三十分鐘後,喝了一罐可樂,我成為了他們第一位實習生,第六位成員。我主要分配到 Josh 底下工作,負責用 Python 程式語言設計與開發 Sifteo Cubes 上的遊戲原型。

(1)拋棄了西裝,來到 Sifteo,我只是一位還未見過世面的大學畢業生,對公司各方面完全陌生,不管是對 Python 語言、軟體開發過程、新創公司體系、矽谷文化等都是一片空白。第一天開始就是實戰,並沒有訓練期。「第一件事,你要與 Git (版本控制系統) 做朋友。」Josh 首先這樣告訴我。

除了要自己主動的快速學習 Python 語法,我還要學會謙虛的向 Josh 詢問技術上的疑惑,並想辦法在最短的時間內把我寫的程式放到 Brent 自行開發的 Cubes 模擬器上執行。終於,Josh問我:再來你就要進入 Basecamp 專案管理系統的世界,進去就沒有回頭路,你準備好了嗎?」

我感覺就像玩超級瑪莉歐過關了ㄧ樣。

一週下來,我看到了比學校更深更廣的實務操作以及自己知識的短淺,但 Sifteo 每一個人都很有耐心教導我,並鼓勵我一邊做一邊發問。無關身分,公司每位成員都會無私分享自己的知識,因為 Sifteo 團隊相信每個成員能越好,公司整體就會越好。

(2)公司是用 scrum 的方式來管理,早上十點,每個人會短暫敘述自己昨天作了什麼以及今天預期要完成什麼。開會時間是越短越好,因為團隊每個人都信任對方的執行能力,能將越多的時間放在實質的工作上才有效率。

工作規劃是以兩週為一檔期的 sprint,每一個 sprint 結束時我們會檢討這一期達成了什麼目標、沒有達成什麼、有沒有辦法加以改進、並計畫下一個 sprint。公司鼓勵每位成員獨立探索與解決問題,在漸進式的思考下自我檢討並訂下可達成的目標。

Sifteo 作為新創公司,有募資與成長的壓力,但和許多矽谷公司一樣並沒有加班文化,我們可以自由決定下班時間。我們相信事業和私生活一樣重要,今天過度的工作反而會影響明天的工作成效。在軟體開發上,我們要求品質與效率,工時長並不相等於好產品,沒有適當的休息往往只會製造更多 bugs,長遠來看反而會要花上更多時間與腦力去 debug。Brent 身為一位頂尖的軟體開發者,他對於 Sifteo 整體的平台開發有明確的規劃,他並不是以苦力來寫程式,而是用耐心以及善用多方工具來打造一個平台。

工作之間,David 和 Brent 會分享自己週末到 Fort Point 衝浪的心得,Liam 也會發表他對舊金山當地爵士樂的新發現並不時小哼一段。Sifteo 的辦公室不是一間乏味的工作室,它是一群年輕人生活交集的空間。

Sifteo 以公司的型態呈現了一個大家都有興趣參與並能發揮各自所長的機會。在這樣正面的環境下,我覺得我是這個很酷的團體的一份子,而不是一名小小職員。我們的努力是為了完成 Sifteo Cubes 這個創新的產品平台,讓一個想法一步步踏入實際的生活面。

舊金山分租的公寓。

在我開始實習的幾個禮拜後,Jeevan 和 David 成功募資到第二輪資金,他召集了全部的同事,笑著說:「匯進來了,你們過來看一下。」 Jeevan 的螢幕上顯示了公司銀行頁面 -- 13,000,000 美金,

當下我腦袋一片空白,那是我這輩子第一次看到這麽多真實的 0。我感觸很深,一間窄小簡陋的辦公室裡,坐著一群年青人,他們抱著一台台電腦、憑著熱情與努力,實踐自己的理想,這筆錢並不只是獎勵,而是這社會給予他們對未來遠景的信任與創新的責任。 我回去思考了很久,或許我們工作並不是只為了生活,而是為了自己、為社會、或為下一代做更長遠的建設。

那天晚上,舊金山市下著大雨,我們一群人開車到 Smuggler’s Cove,一間位於 Gough Street 上,以加勒比海為主題的酒吧慶祝。我們興奮地坐在地下室,外帶了起司披薩,還被服務生抗議披薩的味道會干擾到其他客人。我們並不在乎,我們情緒相當高昂,彷彿站在世界頂端。我看著 Jeevan、David、Brent、Liam、和 Josh 在酒精的催化下敘述著他們對於未來的興奮期許。David 也跟我分享了他們一路從研究所到 TED、創業、募資的過程。慶功宴結束後,因為我沒喝酒,就由我開著我那可笑的電藍色二手克萊斯勒 PT Cruiser 載 Jeevan、David 和 Brent 回家。那是我人生最美好的夜晚之一。當時我 23 歲。

2010 Smuggler’s Cove 慶功宴。

在去矽谷經驗之前,從小在父母與周圍親友灌輸的台灣觀念下,我一直深信大學會是我人生最精彩的尾巴,一但畢業後我就會掉入社會的深淵,過著日復一日的無望生活 :「畢業就是失業」、「你最快樂的日子結束了」、「畢業後你的人生就定型了」等負面思想和恐嚇。但在 Sifteo 我看到另一個世界,那些日子,我每天上班都很愉快,是我人生第一次對「明天」的到來感到充滿希望。

每天早上的 scrum,我都期待聽到 Jeevan 和 David 跟不同投資者開會的心得, Brent 對 Sifteo 平台的更新,Liam 又擴充了那一項硬體功能、Josh 新的設計思維、以及我自己遊戲的開發進度。我體會到來自於一個實質工作的快樂。

在矽谷,不分年紀、學歷、語言或種族,他們都願意給你基本地尊重與機會,因為他們在乎的是一個人處理事情的能力、學習態度、以及做人操守。就算我只是一個無名氣無背景的實習生,Sifteo 每一個人都以平等的態度與耐心與我溝通,不管是使用基本的

Github、Python 語法、遊戲設計概念、使用者經驗、專案管理系統、或是創業歷程等等,

他們五個人讓我看到了比校園更寬廣的世界以及我自己的未來藍圖,我感到萬分謙虛與幸運。

2011 Sifteo 辦公室,遊戲測試。

Jeevan 和 Daivd 對團隊成員的信任和鼓勵,使我感受到確實的歸屬感。Sifteo 開放式的工作環境經歷,讓我重新思考對於事務的許多觀點。一年後,在就讀 UCLA 研究所的暑假我又回到了 Sifteo,這次是有薪實習,那時候的 Sifteo 已搬到一間更大的辦公室,坐滿了超過三十位員工。

本來希望達成什麼? https://opinion.udn.com/opinion/story/8921/1553749

https://www.masterclass.com/ https://tw.voicetube.com/videos/11466?mtc=derrick_blog_24036

實際上達成了多少? 期待的結果和實際差距多少? 這個差距是因為哪些因素造成的?哪些方法和措施是有效的,或無效的? 下次該做哪些改變和調整,才能更接近目標? ▎聽天由命/操之在己

當然,鄭伊廷不是完美的人,因為在個性耿直,也會得罪人、在網路上發言有時引起論戰(旁觀者也學到不少東西就是了)。她還在學習成長中——極為努力、高效地學習和成長——從她職涯的起點,到她現在的表現、思維、成就,我們都看得見這一點。

鄭伊廷如果讓我們明白了什麼,應該是:即使學歷、出身背景、大環境……這一切我們無法決定的因子,也許都對我們的人生成就造成或多或少的影響,如果我們用對方法、心態,勤勉地學習與成長,沒有什麼可以讓我們永遠卑微渺小。

 

【連續創業者,GrowthSchool 創辦人 鄭伊廷 Ⅹ 謝宇程】

一个博客的文本:可以参考的文本; https://quip.com/

區塊勢 公開文章整理 http://zaklee.logdown.com/posts/5297413-blockchain-blocktrend-today-open

《上課筆記》SEO 實務操作全攻略 筆記大全-載點 https://medium.com/@CaroleChen/seo-%E5%AF%A6%E5%8B%99%E6%93%8D%E4%BD%9C%E5%85%A8%E6%94%BB%E7%95%A5-%E7%AD%86%E8%A8%98%E5%A4%A7%E5%85%A8-%E8%BC%89%E9%BB%9E-c01f9ba3287

Y Combinator 總裁 Sam Altman:最好的初期新創用最慢的速度雇最少的人 https://www.inside.com.tw/2016/01/04/notes-essays-cs183c-technology-enabled-blitzscalin16-lessons-on-scaling-from-eric-schmidt-reid-hoffman-marissa-mayer-brian-chesky-diane-greene

哈佛最受歡迎的行銷課:建立商業概念的第一本書 http://www.books.com.tw/products/0010502981

鉤癮效應:創造習慣新商機 http://www.books.com.tw/products/0010701136

Swift 30天實作30個iOS範例 https://softnshare.wordpress.com/2016/02/23/swift-30%E5%A4%A9%E5%AF%A6%E4%BD%9C30%E5%80%8Bios%E7%AF%84%E4%BE%8B/

https://github.com/allenwong/30DaysofSwift

大師輕鬆讀466:職涯資本勝出法則 https://readmoo.com/book/210001814000101

results matching ""

    No results matching ""