科技愛好者週刊(第 174 期):全能程式設計師 vs 特長程式設計師

阮一峰發表於2021-09-03

這裡記錄每週值得分享的科技內容,週五釋出。

本雜誌開源(GitHub: ruanyf/weekly),歡迎提交 issue,投稿或推薦科技內容。

週刊討論區的帖子《誰在招人?》,提供大量程式設計師就業資訊,歡迎訪問或釋出工作/實習崗位。

封面圖

浙江普陀山客運中心最近獲得2021年度凡爾賽建築獎。(via

本週話題:全能程式設計師 vs 特長程式設計師

我讀過一些籃球報導,裡面說 NBA 球隊不喜歡"全能型球員",更喜歡"特長型球員"。

所謂"特長型球員",指的是其他方面可能都不行,但是某一方面特別突出,比如防守特別好、三分特別準,或者籃板很強等等。球隊願意籤這樣的球員,關鍵時刻派上場,沒準就能立下奇功。

反過來,"全能型球員"各項技術都很均衡,防守、進攻、投籃都還可以,能達到平均水平,但是每個方面都不突出,沒有明顯的過人之處。球隊看不上這樣的球員,覺得讓你上場,贏不了球。

我馬上聯想到, 軟體行業其實也是如此,"全能程式設計師"的出路,明顯不如"特長程式設計師"。

如果你什麼都會幹,前端、後端、資料庫、伺服器管理都能上手,那麼哪裡缺人手,就會讓你頂上去。但是,一旦遇到疑難問題,又指望不了你,因為你不是那個方面的專家,解決不了。

反過來,你精通某一項技術,其他都不懂,公司反而會覺得你更有價值。因為你可以把這個技術做得很深,克服技術難點,超過競爭對手,所以你的晉升會快得多。

我甚至讀到過這樣一段話:

"絕大多數成熟的程式設計師都專攻某一個技術棧,因為這樣更容易找到工作。 一些專家甚至認為,在不同的技術棧中工作是簡歷的汙點。"

所以,大家寫簡歷的時候,千萬不要把自己懂的所有技術都寫進去,那是簡歷的扣分項。而只寫你掌握最深的那項技術,以及與之相關的工作經歷。

同樣的,新人如果想在軟體行業長遠發展,建議選擇一兩個技術方向進行專研,成為專家,而不要什麼技術都懂一點,但是哪一項都不精通。

但是,這樣也有風險,萬一你選擇的技術棧走下坡路(比如 PHP),甚至消失了(比如 Flash),你可能被迫要換技術棧,那就慘了。

最保險的做法,就是選擇那些有大公司支援的技術。這就是為什麼市場上有那麼多 Java 專家和 .Net 專家的原因。

總之,"全能程式設計師"在這個行業是不受待見的,被視為"萬金油"。如果你不幸屬於這一類,那麼除了抓緊時間開發特長以外,也不必過分灰心。我覺得,全能程式設計師也有自己的價值和優勢,這個就放在下一次談吧。

養老金諮詢與規劃

本週有一個理財活動的訊息,關於養老金的規劃和諮詢

程式設計師是年輕人群體,對於養老金,大家關心的不多。有些人還有錯誤的觀念,覺得如果工作的年限足夠長,公司就會承擔你的養老金。

這種想法不對,養老金跟公司無關,是由社保承擔的。我國現行的規定是,只要繳納養老保險滿15年,達到法定退休年齡後(目前是60歲,以後會上調到65歲),就可以從政府領取。所以,大家要關心公司有沒有繳納養老保險,這關係到你以後能不能領到養老金。

程式設計師這個職業,流動性非常大,換公司是家常便飯,而且這是一個年齡敏感的職業,很少有人能寫程式碼一直到退休。所以,養老金對於程式設計師,相對來說有更大的保障意義。

下面是幾個大家普遍比較關心的問題。

  1. 如果提早退休,或者離職後沒有再找工作,社會保險怎麼處理?
  2. 養老金的金額怎麼計算?如何拿到更多的養老金?
  3. 自由職業的程式設計師,可以領取養老金嗎?
  4. 除了國家的養老金,商業的養老保險是否值得考慮?

這些問題都可以在本次的養老金活動裡面諮詢。

這個活動來自一直跟我合作的孫明展老師。他從世界500強保險公司離職後,自己創業,開辦了創必承公司,從事理財教育和財務諮詢工作。大家搜一下"孫明展"這個公號,上面有多年來很多原創的理財科普文章。

這一次他們為了推廣業務,考慮到週刊讀者大多數是程式設計師,就辦了這個《養老金的規劃和諮詢》活動,一共有200個免費名額。各種財務問題都可以諮詢,專業的理財師會為大家提供養老金規劃,以及家庭財務保障定製服務,保證不推銷任何產品。

活動的主要內容如下:

  • 養老金目標梳理;
  • 家庭成員保障責任綜合評估;
  • 現有保險產品的價效比分析比較;
  • 家庭風險屬性評估;
  • 基於家庭狀況和需求的養老金規劃和家庭保障規劃構建。

微信掃碼上面二維碼,就可以報名。感興趣的朋友,歡迎參加。

科技動態

1、.com 域名漲價

從今年9月1日開始,.com 域名的註冊費從 $7.85 上調到 $8.39,每年增加54美分。

全世界的域名由 ICANN (網際網路名稱與數字地址分配組織)管理,它把 .com 域名的管理權委託給 VeriSign 公司,再由 VeriSign 向域名零售商收取註冊費,並將一部分收入轉交給 ICANN。

由於 VeriSign 壟斷了 .com 域名的註冊權,並且還是一家上市公司,歷史上域名註冊費一直在上漲。可以預期,未來幾年中 .com 域名的註冊費還會上漲。

2、電子咖啡

很多人工作疲憊時,會喝一杯咖啡振奮精神。一家美國創業公司發明了一種電動剃鬚刀大小的裝置,可以替代咖啡。

這種裝置只要按在脖子上,開啟開關,就會向人體釋放低壓電流,每次持續一毫秒,相當於一次電擊。

它可以刺激迷走神經,促進體內腎上腺素的分泌,起到跟咖啡類似的作用。目前,價格是每個 1250美元。

3、《堡壘之夜》的虛擬紀念活動

8月28日是馬丁·路德·金發表著名演說《我有一個夢想》的紀念日。今年的這一天,《堡壘之夜》在遊戲裡面開展了虛擬的紀念活動。

玩家會在路邊看到演講的視訊,還能進入虛擬紀念館,詳細瞭解。以後,這種虛擬形式的紀念活動,將會越來越多。

4、

米其林公司正在測試,貨輪上面安裝可以升降的大型風帆,充分利用風能,減少柴油燃料的使用,從而抑制溫室氣體的排放。

5、預製小屋

美國拉斯維加斯的一家公司,推出了預製小屋,只要 49,500 美元,你就能立刻擁有一間35平米的房子,裡面有臥室、浴室、客廳和廚房,已經全部裝修好了。

這種小屋在房價昂貴的加州引發了轟動,連馬斯克都聽說了,他就下單購買了一間,要求運到 SpaceX 公司,他想住在裡面試試看。

這件事傳出去以後,想要購買這種預製屋的人就更多了,目前已經有5萬人登記預購了。

6、太陽能飛機

據報導,美國海軍正在委託研發一種太陽能載人飛機,可以連續飛行90天不落地。

這種飛機的機翼長達72米,全部鋪滿了太陽能板,並且配備了大量電池,儲存電能供夜間飛行。2015年,這種飛機的原型曾經環球飛行,創下了117小時52分鐘(接近5天)不落地的記錄。

7、演算法裁員

美國的遊戲服務公司 Xsolla 的收益今年下降了40%,決定裁掉三分之一的員工,大約150人。這件事的特別之處在於,公司使用軟體演算法判定,應該裁掉哪些人。

CEO 的內部郵件這樣寫道:

"你收到這封電子郵件,是因為我們的大資料團隊分析了你在 Jira、Confluence、Gmail、聊天、文件、儀表板中的活動,並將你標記為不敬業和效率低下的員工。換句話說,當你遠端工作時,你並不總是在工作。你們中的許多人可能會感到震驚,不認同軟體的演算法,但我真的相信 Xsolla 不適合你。"

文章

1、500米飽和潛水背後的故事(中文)

我國最近成功完成500米飽和潛水的陸基實驗,9名潛水員進入加壓艙,在51個大氣壓的環境下,停留了176個小時(相當於7天多),為下一步潛水員正式出艙,進入500米的深海做準備。

2、我怎麼加入微軟劍橋研究院(中文)

作者詳細記錄從亞馬遜跳槽到微軟劍橋研究院的過程。(@DoctorLai 投稿)

3、如何在 Linux 中實時監控日誌檔案(中文)

Linux 系統的日誌檔案一般位於 /var/log,以 .log 副檔名結尾。本文教你如何在一個視窗裡面,同時監控所有日誌檔案。(@jerrylususu 投稿)

4、使用 React Hooks 分離元件邏輯(英文)

本文介紹 React Hooks 的正確用法,寫得非常好,推薦閱讀。它回答了一個基本的問題:Hooks 到底應該用來幹什麼?

簡單說,Hooks 應該用來將元件的 UI 和邏輯分開。

5、iOS 的四種設計模式(英文)

本文分析了 iOS 引入的四種新的手機 UI 設計模式,比如將表單的確認按鈕,放置在頁面頂部的右上角(上圖)。

6、CSS 中 content 屬性的妙用(中文)

CSS 的 content 屬性可以向網頁新增文字內容,本文總結了這個屬性的用途,並逐一給出示例。

7、作業系統是什麼?(中文)

本文是《作業系統開發入門基礎》系列譯文的第一篇,討論了作業系統的概念,哪些工作屬於作業系統的範疇。(@StrokMitream 投稿)

8、Firefox 瀏覽器引入強化版 Cookie 刪除(英文)

瀏覽器提供的 Cookie 刪除功能,只能刪除頁面本身的 Cookie,不能刪除由該頁面引入的其它網站 Cookie。

Firefox 91 提供了強化版 Cookie 刪除,可以將某個網站引入的所有 Cookie 刪除。

9、掌握 Python 網頁抓取(英文)

本文詳細介紹如何使用 Python 開發一個爬蟲,抓取網頁,並且考慮到了很多細節問題,比如多執行緒並行抓取、防止被遮蔽等等。

工具

1、FeedAdd

一個免費服務,提供微信公眾號的 RSS 檔案,使用者可以自己建立訂閱源。(@miscommunication 投稿)

2、PlayCover

在 M1 架構的 Macbook 上執行 iOS app 時,這個開源工具可以讓滑鼠和鍵盤支援 iOS app。

3、Judo

一個 Mac 應用,用來設計 iOS app 的頁面,不用編寫程式碼,用視覺化的方式製作頁面原型,可以在手機上預覽頁面效果。

4、Mac OS Monterey Web

使用 Svelte 框架在網頁上模擬 Mac OS Monterey 的 UI。

5、OneDev

一個開源的 Git 倉庫託管軟體,類似於 GitHub / GitLab,可以自己架設,特點是資源消耗小。

6、BackgroundRemover

一個開源軟體,用來移除影像和視訊的背景。

7、js-ziju

一個自制的編譯器,可以將 JS 程式碼輸出為 LLVM IR 格式和 X86 Assembly 語言。(@wizardpisces 投稿)

8、zx

一個 JS 庫,用來在 JS 指令碼里面方便地呼叫 Bash 命令,很適合使用 JS 語法來寫 Bash 指令碼。

9、HyperFormula

Excel 公式的 JS 版,目前有300多個公式。同時,這個庫也提供資料操作功能,可以用作電子表格的後端。

資源

1、Go 語言入門課:零基礎到實戰

極客時間福利課程,零基礎講解 Go 的語法和用法,最後帶讀者手寫一個計算器小程式。《Kubernetes 生產化之路》作者、Go 資深工程師李建強主講。

下週一(9月6日)開始,三個晚上直播課,微信新增助理老師報名。

2、MacOS Bliss

作者參照 Windows XP 著名的草地桌布,為 MacOS 和 iOS 也建立了多張類似風格的桌布,可以免費下載,挺好看的。

3、如何在 Linux 上玩任天堂 Switch 模擬器(英文)

這篇文章是詳細的操作指南,介紹在 Linux 桌面電腦上面,怎樣通過模擬器玩 Switch 遊戲。

4、Minecraft 的岩石和礦物

Minecraft 遊戲出現過各種各樣的石頭和礦物(上圖),這個網站列出遊戲裡的石頭在真實世界的對應物(下圖)。

5、AWS 的簡單英語介紹

AWS(亞馬遜網路服務)現在包含50多種產品,官方的介紹有時很難懂,搞不清楚每種產品到底幹什麼。這個網頁使用簡單的英語,介紹每一種服務。

圖片

1、鍵盤褲子

使用鍵盤,總是需要抬起手腕。一個荷蘭學生 Eric De Nijs 就想,能否不抬起手腕就能使用鍵盤。他發現,最方便的方法就是把鍵盤放在大腿上面,只要坐下來就能使用。

於是,他發明了一種鍵盤褲子,鍵盤做在褲子上面,隨時隨地可以用。

2、河狸咬樹幹

河狸是中國一級保護動物,有著強壯的門牙,可以咬斷樹幹,再將樹幹拖回家做巢。下面就是一段河狸咬樹幹的視訊,看著非常紓壓。

文摘

1、Linux 核心5.14版釋出說明

8月25日是 Linux 作業系統誕生紀念日。

1991年8月25日,芬蘭大學生 Linus 在網上宣佈,他寫了一個作業系統的核心,歡迎大家提意見。

30年過去了,Linus 依然在為這個專案忙碌。他按照預定計劃,在8月29日釋出了核心的5.14版。並且寫了下面的釋出說明。

"我意識到,大家一定還忙於30週年的慶祝活動,各種花裡胡哨的晚會。但在某個時候,你一定會厭倦那裡的浮華、煙花和香檳,穿著禮服也不舒服。這種慶祝活動還將持續數週,但你可能想停下來喘口氣。

如果是這樣,我正好為你準備了一個新的核心版本,歡迎來測試和享用。5.14版已經發布,就等著你來試用,別忘了所有那些慶祝活動是為了什麼。

當然,可憐的不知疲倦的核心維護者,是不會有時間參加慶祝活動的。因為對他們來說,這一天只是意味著合併視窗將在明天開始。我們期待還有下一個30年。但是對於其他人,請稍事休息,構建新版本的核心,對其進行測試,然後你就可以回到那個你剛剛離開的、看上去不會結束的聚會上了。"

2、退出 C++

斯科特·邁耶斯(Scott Meyers)是著名的 C++ 語言專家,寫過《Effective C++》系列著作。

  • 1992年,《Effective C++:50 種改程式序和設計的具體方法》
  • 1995年,《More Effective C++:35 種改程式序和設計的新方法》
  • 1998年,《Effective C++(第二版):改程式序和設計的 50 種特定方法》
  • 2001年,《 有效的 STL:改進標準模板庫使用的 50 種具體方法》
  • 2005年,《Effective C++(第三版):55 種改程式序和設計的具體方法》
  • 2010年,《新 C++ (C++11)概述》
  • 2010年,《嵌入式環境中的 Effective C++》
  • 2014年《Effective 現代 C++:42 種改進 C++11 和 C++14 使用的具體方法》

2009年3月,他獲得 Dr. Dobb's 傑出貢獻獎。

2015年,他宣佈不再寫作 C++ 書籍了。

2018年,他又宣佈不再修正自己著作裡面的技術錯誤了。原因不是他不想修正,而是已經沒有能力了。

"為了修復錯誤,我必須能夠識別它們。但是,我不再相信自己有能力做到這件事。"

"如大家所知,我在 2015 年底退出了對 C++ 語言的積極參與。在過去的兩年半中,我忘記了足夠多的語言細節,以至於無法再正確評估關於 C++ 的錯誤報告。

C++ 是一種龐大而複雜的語言,有各種複雜和微妙的功能,我不再相信自己會記住所有這些內容。因此,我所能做的就是感謝讀者提供的錯誤報告,但不再更新我的書籍了。我認為這是唯一負責任的行動方案。"

言論

1、

我從網際網路上得到的最好的經驗之一,就是永遠不要複製和貼上不是自己編寫的程式碼。如果你一定要複製,那就照著它逐字輸入,逼著自己思考,這些程式碼實際上是什麼意思。

-- Hacker News 讀者

2、

推行 996 工作制的心態,可以追溯到製造業時代。一家服裝廠提高產量的最簡單方法是什麼?就是讓你的工人加班。

不幸的是,這不適用於科技公司,程式設計師在一段程式碼上花費更多時間,並不意味著寫出更好的程式碼。事實上,處理錯誤的最佳方法通常是休息一下,然後回來重新閱讀程式碼,你會更容易發現錯誤。

-- Hacker News 讀者,評論中國最高法院判定 996 工作制違法

3、

日本和韓國都有法律規定,手機拍照必須有快門聲,無法關閉這個聲音,目的是防止偷拍。

-- 知乎

4、

寫一本技術書籍,報酬寥寥無幾,很可能除了榮譽,你得不到任何東西。

-- 《自出版技術書籍》

5、

無所畏懼(fearless)不是沒有恐懼;而是你依然心懷恐懼,但無論如何都決定要跳進去。

-- Taylor Swift

歷史上的本週

2020年(第 123 期):網際網路公司與湘軍的軍制

2019年(第 71 期):名校畢業,不容易創業

2018年(第 20 期):不讀大學的替代方案

訂閱

這個週刊每週五發布,同步更新在阮一峰的網路日誌微信公眾號

微信搜尋"阮一峰的網路日誌"或者掃描二維碼,即可訂閱。

(完)

相關文章