作為程序員,2017 年你習得了哪些新技能?


碩士畢業後15年來幾乎不做運動,今年入門了長跑(3km@4:28/km,15km@5:31/km)、長距離游泳(3km@2:21/100m);推舉、正手引體向上、深蹲、器械等各種阻力鍛練。

出生第40個年頭減了40斤,希望做一個健康的程序員。

程序員的身體優化(一)

程序員的身體優化(二)


配置伺服器群集:現在做 web 都不需要了解伺服器群集相關的知識吧,因為所有的東西都在雲端,只要代碼部署好了就能跑。上半年我碰巧有機會要去改一下伺服器群集的配置,才知道對於 Facebook 來說這是多麼複雜的事情。其實我要改的只是一點點東西,不過為此要看大量的文檔,最後大致搞明白了一個請求如何進入 Facebook 的網路、負載均衡在哪裡發生、返回的內容如何帶上 CDN 地址。雖然這一切都是別人搭好的,我只是學習和使用而已,但知道這套系統如何工作也是挺有意思的。

項目管理:本來以為這是挺簡單的事情,大家坐下來說清楚項目需要做什麼,然後各自把自己該做的事情做完,項目就應該能交付。但現實是,如果每個人都只做完自己該做的事情,那項目必然有缺口沒堵上。做過項目管理就會明白為什麼程序員喜歡自己干自己的不願意跟別人溝通其實是很讓人討厭的事情,因為不溝通就沒人知道缺口在哪裡。舉一些不完全真實的例子:Engineer 把上報日誌的代碼寫好了就發版了,然後 Data Scientist 就說系統里沒有日誌數據可以分析。這時候雙方都覺得自己把自己的工作做好了,但為什麼發版前 Engineer 就不測試一下日誌是否真的已經存儲到系統中呢?只能修復 bug 再發版。接著 Data Scientist 發現日誌分析出來的數據不合理,一核對才發現 Designer 在開發過程中改設計了,再追查下去發現 Designer 以為這個改動 PM 會跟所有人說但 PM 忘記說了。現在上報上來的日誌無法對改動後的設計作出準確分析,再改再發版。做項目管理有時候跟做 debug 的偵探工作差不多,明明這個信息從這裡傳到了那裡,這個步驟你做完他做,最終所有事情都應該正確順利發生,但出現異常情況了就要把原因排查出來然後防止問題再次發生。

績效管理:上手做了一次美國公司很常見的 performance review 和 calibration 的過程。簡單來說,作為經理我先要能總結出下屬這半年做的事情有什麼 impact,然後公平公正地打一個分。接著相近領域的經理進入 calibration,討論各自的下屬和打分,確保大家的打分的偏序關係是正確的,不會存在不公平的狀況。(之後會有總監級別以上的人保證更大範圍的公平性。)接下來就要向下屬溝通結果,並且討論未來半年的個人成長重點是什麼。雖然這項活動每半年才發生一次,一次也就一個月,但其實平時需要花很多功夫。日常不僅僅需要知道下屬在做什麼,還需要知道為什麼要做這些事情。(不值得做的事情最後沒辦法說明 impact。)這時候就會體會到,如果程序員不跟經理積極溝通自己想要做什麼和為什麼想要做,經理就會很頭痛,因為所有這些事情都需要花額外的功夫去搞明白。如果程序員總是隨性去做事情,那就格外地頭痛,因為經理最後要自己想辦法證明這些事情的價值。做過績效管理,就算將來不做經理有些事情該如何配合經理也顯得更明白了。

招人:這一年從公司內部招了幾個人進自己的組,感覺這件事情運氣成分很大,只能不停地嘗試,很多時候說不準什麼時候會成功。我對這件事情的感覺還不如撩妹子。撩妹子至少是可以感覺得到對方對自己是否有好感的,也能感覺得到下一步應該做什麼。招人的話,我現在的套路就是我負責客觀分析,找另外一個人幫我做洗腦銷售,然後催對方儘快做決定。客觀分析的意思是,我會問你有沒有什麼職業規劃,有沒有想像過未來幾年想學什麼想做什麼,我們組到底是不是一個合適的選擇。這是為了讓人覺得我還是在他立場幫他做決定的,而且不合適的人也可以過濾掉。接著洗腦銷售就不是我擅長的事情了,但幸好身邊有人特別擅長,這可以幫助別人堅定信心,避免沒必要的選擇困難症。

自由泳:我小學就學會了蛙泳,因為廣州市小學生畢業條件包括 50 米蛙泳,可能這算是沿海地區生存技能吧。中學學會了自由泳,但花了很多年業餘時間去練習才讓姿勢變得高效起來,能夠連續游超過一千米。今年夏天開始報了個成年人自由泳的班,有專業的教練來教,感覺比自己摸索好多了。教練還是從最基本的開始教,一個動作一個動作地優化,只有一個動作做標準後才開始學下一個動作,這是自己練不可能學會的。例如說,教練教會我用腹肌轉身,強迫我在不用腿打水的情況下把身轉過來,然後再用這種感覺去配合打腿。這確實能省掉很多腿上浪費掉的能量,腿就不會那麼快覺得累,而腹肌訓練起來後力量肯定更充足。

領導力:年初有機會跟一個 executive coach 見了三次,他問我想學什麼我說我想學 leadership,然後他就跟我說 leadership is 80% understanding people and 20% vision。之後他深入的解釋了 understanding people:他說 fact 只是最淺層的,要能理解到一個人的 emotion 和跟他的 emotion 進行溝通比討論 fact 有更有效,而 identity 是最深入的一個層次。然後我提供了一些我遇到的難題,他跟我進行了模擬的互動。雖然我不知道我學會了多少,但我感覺這套理論是正確的。跟一個人就 fact 進行沒完沒了的爭吵很容易,因為大家可能看到同樣 fact 的不同側面。雖然我們鼓勵「就事論事」,但「你是對的」並不代表「別人因此很有激情地跟你做事情」。要別人跟隨你,你必須要至少深入到 emotion 這個級別,你要理解別人做什麼會開心,或者會因為逃避什麼而怎麼樣。如果能進入到 identity 這個級別,理解別人根本的「為什麼」,那就更厲害了。我個人的理解是,當你問某人為什麼做某事,假設他願意誠實地探討這個問題,不停地追問他為什麼問到最後的答案一定是「因為我就是那樣的人」。「那樣」可能指代「善良」、「遵守規則」、「注重健康」、「追求刺激」……無論是什麼,如果你能理解到一個人的 identity,並且配合他的 identity,你讓他做的事情自然是他想要做的事情。


  • 學習Android開發,上線了兩個APP,一共近十萬下載量、近五千個評分

  • 學習TypeScript,上線了一個VSCode插件,這一周里下載量七百多。

  • 和一本成功人士合作上線了網頁,再次深刻體會到了web前端開發是多麼的蛋疼。

  • GitHub有了一百多個star,幾個fork。
  • 積累了七八個大廠和四五個中小廠的onsite經驗,意識到了一個人的命運吶。
  • 當然最重要的成就是遇見了女朋友,中國有句古話。


準確來說2017年之前我是做Java開發的,當然也會做Python以及爬蟲,但是進入2017年之後我開始踏入了數據分析的坑了,作為程序員,這一年我在技能樹上增加了一些新東西。

1、數據分析從零開始

畢業前一直是自己在瞎琢磨做數據分析,畢業後開始正式的接觸數據分析。

不停的寫SQL和Python,所以我的SQL能力在2017年可以說有了一個質的提升,而Python我覺得對我來說還是:拿來可以用,用的順暢即可。

閱讀很多數據分析相關的書籍,並且深入思考,對於用數據講故事又上一層樓,能從數據的角度看問題,工作之後對生產數據理解更深刻,能真實的做到:數據驅動業務增長,認識到數據的內在價值。

2、寫作能力

再往前推一兩年,想一想讓我每周寫幾篇上千字的文章,我感覺真的是無從下手,不過現在幾千字的文章信手拈來。

每周會逼著自己寫讀書筆記、寫周總結報告、寫一些有趣的文章在知乎和微信公眾號上面。

一年多,積累了很多讀者,也通過寫的東西造福了很多找工作的學生、迷茫的大學生、想轉行的就業者,也讓我有動力的不斷繼續更新下去。

3、演講能力

以前我沒勇氣做演講,在班級到講台上在40個人面前做一個自我介紹我都不敢大聲說話。

今年我在第一家公司工作一個月之後,老大給了我機會讓我在公司幾十個人面前講課關於數據分析。一開始我非常的蒙,意識到這件事情沒法拒絕之後,我提前了半個月開始準備,把一個小時的演講內容寫了整整10張紙,然後不斷的練習。

本來,我在第一次做排練的時候做的非常差,不過在最後一次演講時候,整個演講都沒有緊張或口吃。公司的小夥伴們紛紛我給我點贊。

而這是個開始,在公司做了數據分析的演講之後,我還給中國電信做過Python爬蟲培訓,也給很多學生講過數據分析。

以上是作為程序員的我在2017年感覺比較明顯的新增技能。


和這裡的各位不同的是,大家都是增加了技能,我是感覺減少了技能(對,就是強答一發)。

以前我還是會寫前端的,現在我發現我不會了。因為前端已經不是我知道的那個前端了。

以前我還可以說我會寫C++的雖然不精通,但是現在我也覺得我不會了。現在的C++完全是一門我從沒見過的語言。

Docker剛出來沒多久的時候我就開始在用。然而現在docker變化的太快我發現我基本上對現在的best practice也不會玩了。

如果自認為兩年以前還算是碼力十足的話,現在已經變成了一條完全不會寫代碼或者完全不想寫代碼的鹹魚,唯一的技能基本上可以說是只會煉丹了。


按照16年的計劃,做了很多iOS的開發工作,並且是在千萬級日活的app上的核心容器。

本來計劃還要學一門純函數式語言,遺憾沒做到。

今年年底的計劃是了解集團的推薦演算法,熟練進入後端開發,同時接手部分搜索相關的任務。

另外今年花了很多時間在產品業務和團隊上,搭建了兩個非常不錯的團隊,帶起了幾個非常聰明努力的小夥子。想來這些技術以外的收穫也是非常有意思的。


掛著Android的Title, 實際上已經大半年沒怎麼碰Android, 從上半年到現在都在做和機器學習相關的工作。

具體的工作包括跟幾個小夥伴一起,在終端從無到有搭建了一套完整的機器學習框架;上線兩個模型,落地到4個業務,現在都看到了效果;在部門的AI比賽中也拿了獎項。

接下去會更加忙,一方面工作上終端機器學習相關的業務越來越多,會繼續做這方面的工作,聚焦在圖像和音頻兩塊;另一方面晉陞,比賽,文章等也都要耗費大量的時間。


  • 曾經帶我衝上了 GitHub Trending 榜眼的小玩具突破了 500 Star。

  • 參加了 MCM2017(數學建模美賽)。這為我這個純工程向選手打開了新世界的大門。兩位數學系大佬蛋淼和 @劉子不 教會了我許多。這段稍微有點「科研入門」性質的經歷或多或少的促使我的興趣轉向科研。BTW,美賽時我第一次接觸到了 MatLab 和 LaTeX 這兩樣強大的工具。

  • 入選並完成了 Google Summer of Code 2017 —— 一個超級贊的項目 for students only。和來自 72 個國家的 1318 名小夥伴一起為開源項目貢獻代碼。值得一提的是,其中來自中國大陸的學生僅 49 名 —— 如此低的參與率主要源於國內圈子對 GSoC 不甚了解。為此我第一次嘗試在知乎上撰寫文章,以安利 GSoC:Google 編程之夏(GSoC):海量優質項目,豐厚報酬,你竟然還不知道?;也意識到了寫作能力是程序員另一項重要技能。

GSoC 2017 的紀念 T-Shirt

貼紙和筆記本

Certificate of Completion
  • 參加了 QCon Beijing、LinuxCon Beijing。和許多大佬進行了交流和技術探討。彼時 QCon 上的人工智慧議題還很少。

上圖是 QCon 時,第一次來國家會議中心。那時經常去環奧園訓練,經常過這裡,不過一直沒機會進去。

LinuxCon 和 Hall 主席談笑風生了一小會兒,發覺自己口語也沒那麼差。

  • 在 7 月離開了度過一年 gap 時光的創業公司,來到 MSRA,慢慢的開始了由 Engineer 到 Researcher 的轉變。

寫了一小段時間 C#,在 ML 剛入門的水平下做了個 naive 的多輪問答系統。惡補了好多好多知識,迷茫了很長一段後終於確定了 research topic。經歷了許多掙扎,昨日剛剛把 baseline 調至完美,接著就要 apply my own model 了呀。

  • 至於 2017 年最重要的,當然是和她在一起了。


這一年裡,在工作上,我主要做的都是移動開發,分別是三種不同的技術棧:

  • 基於 Ionic + Cordova 的混合應用
  • 基於 React Native 的跨平台應用
  • 基於 Java 的 Android 原生應用

期間,使用 Java、Objective-C 編寫 Cordova、React Native 插件。又花了好多時間,將 Cordova 應用嵌入到 React Native 中。

最近,在將 React Native 上的 WebView 經驗,整理成半混合應用框架:phodal/dore 。

這幾個月,順手擼了一遍 Serverless,寫了幾十篇文章。

當然,如果你想要的話,也可以看看:phodal/serverless

從概念上,收穫最大的,莫過於參加公司的 DDD 培訓《事件風暴》,理解了,如何從業務到建模的一系列流程

也順便使用 TypeScript 擼了一個生成圖形的框架:phodal/stepping 。

培訓的話,還有一系列的基於 Spring Boot 的微服務工作坊,大致就是:

  • Eureka 服務,提供服務註冊、發現
  • Ribbon 服務,提供客戶端的軟體負載均衡演算法
  • Hystrix 服務,熔斷器
  • Hystrix dashboard 服務,對 Hystrix 進行實時監控的工具
  • Turbine 服務,日誌收集器,用於聚合 Hystrix 中的日誌
  • Config 服務,統一配置中心
  • Feign,聲明式、模板化的HTTP客戶端
  • Spring Security Oauth 2 服務,授權管理

大抵對於新的後端技術有一個全面的認識,微服務相關的代碼在:phodal/ms-workshop。


在教練的指導和保護下今天squat直逼100公斤,等於扛三瓶煤氣加一瓶小的。


2017年屬於我職業生涯比較不穩定的一年,在動蕩中點亮了不少技能點,卻又只是星星點點。

辭職離開杭州all in 到了一家做手機的公司,團隊是新建團隊,業務方向也是新的一個方向,本著從0到1的態度決定做點事情,實際上也確實做了不少事情。

由於團隊前期缺少人,為配合團隊未來整體方向規劃,技能上跳出了自己做了四年的java舒適區,開始用golang 作為主力開發語言,期間重構某廣告平台又熟悉了下C++,用python寫了一些MR腳本處理廣告日誌、扣費等相關功能。雜七雜八的做了很多,有時候語法會切換不過來,但那段時間確實很充實。

後來由於公司整體層面裁員一部分人走了,留下的我們也要重新考慮個新的方向,選擇了一個最陌生的人工智慧方向,這期間學習了下機器學習的基礎知識。最終,因為場景化問題以及對團隊未來定位的迷惘,整個團隊毅然決定出走到一家創業公司。

現在在這家創業公司,又是因為人員問題,初期讓我選擇了做客戶端這塊,技術選型上考慮到多平台問題選擇了React Native,這期間業餘時間又系統補習了下前端知識,做了一些H5的頁面,現在App已經上線,雖然RN具備多平台能力,但是後期還是需要一定原生開發能力的,Android有java基礎的話自然不必費很多時間,抽時間看了幾頁Object-C實在看不下去。。。

其他技能:

組織了幾場技術沙龍,目前正在籌備組織一場年底技術大會,找贊助、寫文案忙的不可開交。

學會了適時的控制自己的情緒,避免了一些不必要的衝突。


2017年開始學習RxJS,正在寫一本相關的書。

2017年開始學習巴西柔術,對於我這樣戴眼鏡的人來說是比拳擊更合適的格鬥術。


0、Python入門

1、搬了次家,整理東西能力UP

2、回老家發現自己16年前的日記,閱之大笑三天。

3、簡單入門openCV

4、學會用PS插件切圖和標註

5、學會四處找世俗關係為生活謀福利

6、繼續協調天下第一難關係

7、陪小孩玩/學習入門

8、忽悠口才初級入門


孕育了一個寶寶,升級為麻麻~


謝邀……當然是掌握了習主席在十九大提出的新時代中國特色社會主義思想,畢竟是考研狗都得背的(逃

——————————

正經答題,今年主要是精進技術,一些潤物細無聲的改變,沒開什麼新坑。上半年還見到了尤雨溪大大的本尊,猴開森。

如果說有什麼編程之外的新技能,那就是缺衣服的時候自己設計吧。

【日常】《紙書科學計算器》終於出了一套周邊


作為一個全職媽媽,在家的兩年,沒有把專業的東西丟掉,這是我最大的收穫。

不過也在努力嘗試轉型。

學什麼已經不重要了,重要的是有大局觀、掌控力、決斷力和最最重要的快速學習的能力。


一、語言方面

從Python轉Java

二、技能擴展

傳統機器學習和深度學習(比較淺顯)

四、滑雪

體驗就是「根本停不下來」

五、化妝

十五分鐘畫個淡到同事們看不出來的妝

突然想到了2016年的在知乎回答的2017年願望,時間過好快,好在大部分都實現了。

更好的是,那些沒實現的,現在不想要了


【12月9日補充】想起來2017年增加的最重要的兩個技能點居然忘記寫了&> &<

  1. 正兒八經學了學做菜

2. 堅持健身五個月,每天兩個小時舉鐵 + 騎行,體重從108斤瘦到92斤,終於練出了一點馬甲線。然而,然而,然而,來美帝之後,吃吃吃...現在已經看不見我的馬甲線了T T

------------------------------------分割線------------------------------------

Final 前最後一答然後就滾去寫random forest...

(隱私問題模糊化處理和貼白條&>&<)

  1. 給自己寫了個中文版個人網站(目前訪問量1700+),順帶學了點node.js:

2. 給自己做了個英文版的Proliforio,順帶學了點PHP:

3. Learning Python E5 的譯稿歷時一年半終於完結了哎呀:

4. 作為first author和speaker(然而遲到了orz)參加了IEEE VIS2017(也是自己發表的第一篇SCI一作)。會上遇見了各界大神,交流下來受益匪淺。(圖為彙報時的PPT)

5. 給Maven的一個負責Regression Test Selection的插件做了一個可視化版本。支持對多module的java項目的分析,生成類依賴圖和測試集閉包。學習了很多關於軟體測試方面的知識。

6. (見答主Naco Siren的第三個回答)一個組隊課程項目,做得實在是有點粗糙... 不過最大的收穫是遇見了這輩子遇見過的最好的隊友兼程序員鼓勵師(隊友不上知乎所以肆無忌憚地說說23333)。他教會我的東西,已經不僅僅局限於寫代碼本身了。受他的影響現在答主每天都在爭取早上七點起床泡圖書館,徹底扔掉之前那個懶散的自己。隊友馬上就畢業了,希望他這麼棒的人能有一個輝煌的前程吧。

7. 正在和小夥伴合作一個項目(小夥伴要求保密),從焊電路板開始一直到資料庫到後端到前端一條龍...希望未來能夠上市賺點小錢&>&<

遺憾到事是浪費在玩遊戲上的時間實在太多了...雖然認識了不少遊戲里的朋友是一件挺開心的事,但總覺得荒廢了人生。希望2018年年底能少一點遺憾。


給elemefe/element vuejs/vue microsoft/typescript 做了一點微小的貢獻 :)


沒做什麼特別的。只是嘗試閱讀和寫作。

一周一小篇讀書筆記

平均一周1-2篇文章,有些發到自己專欄里,有些還躺在筆記本里呢。

閱讀了十來本非技術,非虛構的書。

也就這樣了,這些都堅持了一整年,以後還會繼續,爭取讓這些習慣成為一種本能。

對了還學了一些IOT的開發。


推薦閱讀:

哪些技能是給你的人氣毫無加分的?比如吹嗩吶
你有什麼適合用「視頻」展示的「酷炫小技能」?
拿了公共營養師證可以找兼職嗎?
你為了追求妹子,都 get 過什麼技能?
如何有殺傷力地飛撲克牌?

TAG:互聯網 | 學習 | 程序員 | 技能 | 2017年度盤點 |