一周精彩內容分享(第 23 期):程序員的酒后真言
這里記錄過去一周,我看到的值得分享的東西。
一方面是整理記錄一下自己一周的學習,另一方面也是期待自己有更多的輸出,有更多的價值。
周刊開源(Github:wmyskxz/weekly),歡迎提交 issue,投稿或推薦精彩內容。
題圖

直布羅陀機場[1],是世界上唯一一條與道路相交的機場跑道。幸運的是,這不是一個繁忙的機場。它每周僅處理大約 30 個航班,所有航班都往返于英國。
本周討論:程序員的酒后真言
(來源:阮一峰[2])
美國最大的論壇 Reddit,最近有一個熱帖[3]。
一個程序員說自己喝醉了,軟件工程師已經當了10年,心里有好多話想說,"我可能會后悔今天說了這些話。"

他洋洋灑灑寫了一大堆,如今已獲得獲得 10k+ 贊。內容很有意思,值得一讀,下面是節(jié)選。

1)職業(yè)發(fā)展的最好方法是換公司。
2)技術棧不重要。技術領域有大約 10-20 條核心原則,重要的是這些原則,技術棧只是落實它們的方法。你如果不熟悉某個技術棧,不需要過度擔心。
3)工作和人際關系是兩回事。有一些公司,我交到了好朋友,但是工作得并不開心;另一些公司,我沒有與任何同事建立友誼,但是工作得很開心。
4)我總是對經理實話實說。怕什么?他開除我?我會在兩周內找到一份新工作。
5)如果一家公司的工程師超過 100 人,它的期權可能在未來十年內變得很有價值。對于工程師人數(shù)很少的公司,期權一般都是毫無價值。
6)好的代碼是初級工程師可以理解的代碼。偉大的代碼可以被第一年的 CS 專業(yè)的新生理解。
7)作為一名工程師,最被低估的技能是記錄。說真的,如果有人可以教我怎么寫文檔,我會付錢,也許是 1000 美元。
8)網(wǎng)上的口水戰(zhàn),幾乎都無關緊要,別去參與。
9)如果我發(fā)現(xiàn)自己是公司里面最厲害的工程師,那就該離開了。
10)我們應該雇傭更多的實習生,他們很棒。那些精力充沛的小家伙用他們的想法亂搞。如果他們公開質疑或批評某事,那就更好了。我喜歡實習生。
11)技術棧很重要。如果你使用 Python 或 C++ 語言,就會忍不住想做一些非常不同的事情。因為某些工具確實擅長某些工作。
12)如果你不確定自己想做什么東西,請使用 Java。這是一種糟糕的編程語言,但幾乎無所不能。
13)對于初學者來說,最賺錢的編程語言是 SQL,干翻所有其他語言。你只了解 SQL 而不會做其他事情,照樣賺錢。人力資源專家的年薪?也許5萬美元。懂 SQL 的人力資源專家?9萬美元。
14)測試很重要,但 TDD (測試驅動的開發(fā))幾乎變成了一個邪教。
15) 政府單位很輕松,但并不像人們說的那樣好。對于職業(yè)生涯早期到中期的工程師,12 萬美元的年薪 + 各種福利 + 養(yǎng)老金聽起來不錯,但是你將被禁錮在深奧的專用工具里面,離開政府單位以后,這些知識就沒用了。我非常尊重政府工作人員,但說真的,這些地方的工程師,年齡中位數(shù)在 50 歲以上是有原因的。
16)再倒一杯酒。
17)大多數(shù)頭銜都無關緊要,隨便什么公司都可以有首席工程師。
18)手腕和背部的健康問題可不是開玩笑的,好的設備值得花錢。
19)當一個軟件工程師,最好的事情是什么?你可以結識很多想法相同的人,大家互相交流,不一定有相同的興趣,但是對方會用跟你相同的方式思考問題,這很酷。
20)有些技術太流行,我不得不用它。我心里就會很討厭這種技術,但會把它推薦給客戶,比如我恨 Jenkins,但把它推薦給新客戶,我不覺得做錯了。
21)成為一名優(yōu)秀的工程師意味著了解最佳實踐,成為高級工程師意味著知道何時打破最佳實踐。
22)發(fā)生事故時,如果周圍的人試圖將責任歸咎于外部錯誤或底層服務中斷,那么是時候離開這家公司,繼續(xù)前進了。
23)我遇到的最好的領導,同意我的一部分觀點,同時耐心跟我解釋,為什么不同意我的另一部分觀點。我正在努力成為像他們一樣的人。
24)算法和數(shù)據(jù)結構確實重要,但不應該無限夸大,尤其是面試的時候。我沒見過藥劑師面試時,還要測試有機化學的細節(jié)。這個行業(yè)的面試過程有時候很糟糕。
25)做自己喜歡的事情并不重要,不要讓我做討厭的事情更重要。
26)越接近產品,就越接近推動收入增長。無論工作的技術性如何,只要它接近產品,我都感到越有價值。
27)即使我平時用 Windows 工作,Linux 也很重要。為什么?因為服務器是 Linux 系統(tǒng),你最終在 Linux 系統(tǒng)上工作。
28)人死了以后,你想讓代碼成為你的遺產嗎?如果是那樣,就花很多時間在代碼上面吧,因為那是你的遺產。但是,如果你像我一樣,更看重與家人、朋友和生活中其他人相處的時光,而不是寫的代碼,那就別對它太在意。
29)我掙的錢還不錯,對此心存感激,但還是需要省錢。
30)糟糕,我沒酒了。
完)
熱點新聞
1、

最近,國外研究人員設計了一種看起來像日常 T 恤的面料[4],但可以使身體降溫近 5°C。
2、

據(jù)國家互聯(lián)網(wǎng)信息辦公室官方微信消息,根據(jù)舉報,經檢測核實,“滴滴企業(yè)版”等 25 款 App 存在嚴重違法違規(guī)收集使用個人信息問題。依據(jù)相關規(guī)定,通知應用商店下架滴滴旗下 25 款 App[5]。
3、

字節(jié)跳動表示,將于 2021 年 8 月 1 日起施行取消大小周制度[6],8 月開始有需求的團隊和個人,可以通過系統(tǒng)提交加班申請。
4、

海地臨時總理克勞德·約瑟夫 (Claude Joseph)表示,當?shù)貢r間周二(7月6日)夜間,一群身份不明的武裝分子突襲莫伊茲總統(tǒng)的私人宅第并開槍打死了總統(tǒng)若弗內爾·莫伊茲[7](Jovenel Mo?se),其妻瑪?shù)倌龋∕artine)也受傷住院。
5、

冰島試行一周四天工作制度[8],工人工時縮短,但是薪酬不變。研究人員指出,這樣做之后,大部分工作場所的生產力沒有改變,甚至有所提升。
6、

蘋果公司[9]據(jù)報道將大量 iCloud 數(shù)據(jù),存儲在谷歌云,總量達到 800萬 TB,單單今年的費用就是 3 億美元,是谷歌云最大客戶。
這表明,蘋果自己的數(shù)據(jù)中心可能規(guī)模很小,根本存儲不了它的所有數(shù)據(jù)。
文章
1、四十分鐘講完三體[10](視頻)

三體是非常經典的科幻類題材小說,如果你不想讀紙質類的書籍,那么這個視頻可以帶你深入了解。
2、圖形解釋 SQL 連接類型[11](英文)

使用圖形的形式,生動解釋了 SQL 中的不同連接類型究竟是怎樣連接的。
3、新手如果沒有搭建環(huán)境,還能怎樣快速練習寫代碼?[12]

很多時候,澆滅新手的不是什么復雜的 Coding,而是搭建編程環(huán)境。
文章介紹了很多「開箱即用」的編程環(huán)境,對于初學者來說無疑是個提高學習效率或保持編程熱情的解決方案。
4、iOS 15 如何讓您的應用程序啟動更快[13](英文)

文章揭示了 iOS 15 是如何讓程序更快的原因。
5、如何使用 Python 構建股票交易機器人[14](英文)

作者用 Python 搭建了一個簡單的自動交易的機器人程序,雖然國內似乎沒有接口實現(xiàn),但看上去還是挺有趣的。
6、相機維修課程[15](英文)
在過去,相機維修技術人員需要跑到專門的學校學習,但現(xiàn)在所有的學習材料在互聯(lián)網(wǎng)上都是公開的。
7、編程語言內存模型[16](英文)
這一篇文章揭示了一些通用的,被各大編程語言使用的內存模型。
8、Git 最佳實踐[17](英文)
最佳實踐因環(huán)境而異,并沒有一個正確的答案,但仍然有一些 #git 的共識,需要提前了解,并且在某些情況下可以幫助您構建討論以生成您自己的最佳實踐。
好奇星人
1、為什么許多游戲在存檔時會提示「不要關閉電源」?[18]

第一,減少意外。
玩家所擅長的領域千差萬別,不是每一個人都知道“寫入磁盤時掉電可能會對數(shù)據(jù)乃至磁盤本身產生重大危害”——偏偏玩游戲的過程中存檔又是一個非常頻繁的操作。設備壞了事小,心血沒了事大啊。
加上提示以后,如果真的因為關機丟失了存檔,也可以很大程度上規(guī)避責任,避免和玩家扯皮。
第二,丟失存檔的技術細節(jié)。
其實現(xiàn)代游戲,如果處理方式合適的話,丟失存檔的概率可以做到非常低。存檔的邏輯可以用偽代碼這樣表示:
功能:存檔()
步驟 1. 將當前需要保存的數(shù)據(jù)全部整理出來,轉換為一串純數(shù)據(jù) data
步驟 2. 打開存檔文件
步驟 3. 寫入存檔數(shù)據(jù) data
步驟 4. 關閉文件
這一連串功能中,如果執(zhí)行步驟 4 時關閉電源,大概率會丟失存檔。
步驟 2~3 時關閉電源,有可能丟失存檔,概率大小取決于存檔大小,以及主機寫文件的速度。
所以如果這塊代碼寫的合適,存檔容量不特別大,丟失存檔的概率并不高。因關閉電源而丟失存檔可以看成是巧合。
最后,也是可以防止玩家在存檔時閑著沒事兒做,給一句苦口婆心的忠告。
言論
1、
軟件開發(fā)機會如此豐富,以至于大多數(shù)雇主發(fā)現(xiàn)招聘專家開發(fā)人員幾乎是不可能的。機會如此豐富,以至于盡管全世界有名副其實的大量新手開發(fā)人員,但他們中的每一個人都存在工作機會。
最后,軟件工程沒有任何把關。任何人都可以參加編碼訓練營,參加一些在線編碼課程,并在第二天開始在 Upwork 上銷售他們的服務。他們的工作產品可以立即投入生產,無需監(jiān)管。
將這三者結合起來,很容易理解為什么有這么多糟糕的軟件。軟件正在吞噬世界,它的錯誤和安全漏洞也是如此。
--《為什么世界上有這么多垃圾軟件》[19](英文)
2、
編碼只是解決問題。學習編碼不會花費您太多時間,但是您需要花費大量時間來培養(yǎng)敏銳的解決問題的能力。
--Twitter用戶[20]
3、
真正有效的減肥方式,是你要找到一種能夠令你感到舒適的,同時又相對比較健康的飲食模式,按這個模式去踐行就可以了。
也就是說:最核心的關鍵,是找到一種能夠自發(fā)持續(xù)實踐下去的飲食方式,而不是強行靠意志力「堅持」下去。
--《如何長期堅持做一件事情?》[21]
4、
人類學習效率最高的方式,不是"讀書 + 思考",而是"觀察 + 模仿"。前者需要較長時間的注意力投入,后者只需要短時間注意力,更符合人類的天性。
--阮一峰[22]
5、
公司不喜歡員工遠程工作,因為覺得員工像在兼職,而公司卻支付了全職的薪水。
公司的想法是,既然我支付了全職薪水,那么從早上9點到下午5點,我對你的所有時間、注意力和精力,擁有所有權。這種所有權的體現(xiàn)就是,這段時間你需要到我指定的辦公場所,讓我看著你在工作。
--《遠程工作會摧毀老板》[23](英文)
訂閱
這個周刊每個禮拜天發(fā)布,同步更新在個人博客和微信公眾號
微信搜索"我沒有三顆心臟"或者掃描二維碼,即可訂閱。
參考資料
直布羅陀,世界上唯一一條與道路相交的機場跑道: https://www.amusingplanet.com/2011/11/gibraltar-airport-worlds-only-airport.html?m=1
[2]程序員的酒后真言: https://www.ruanyifeng.com/blog/2021/06/drunk-post-of-a-programmer.html
[3]我作為高級工程師學到的東西: https://old.reddit.com/r/ExperiencedDevs/comments/nmodyl/drunk_post_things_ive_learned_as_a_sr_engineer/
[4]新型“鏡面”面料可使佩戴者降溫近 5°C: https://www.sciencemag.org/news/2021/07/new-mirror-fabric-can-cool-wearers-nearly-5-c
[5]“滴滴企業(yè)版”等25款App被下架: https://finance.sina.com.cn/wm/2021-07-09/doc-ikqciyzk4547805.shtml
[6]互聯(lián)網(wǎng)反內卷!大小周、996、007本不該出現(xiàn): https://www.163.com/tech/article/GEGCB19V000999D8.html
[7]海地總統(tǒng)遇刺身亡: https://www.dw.com/zh/%E6%B5%B7%E5%9C%B0%E6%80%BB%E7%BB%9F%E9%81%87%E5%88%BA%E8%BA%AB%E4%BA%A1/a-58193172
[8]冰島試行一周四天工作制,研究指“大獲成功”: https://www.bbc.com/zhongwen/simp/world-57731398
[9]Apple Reportedly Storing Over 8 Million Terabytes of iCloud Data on Google Servers: https://www.macrumors.com/2021/06/29/icloud-data-stored-on-google-cloud-increasing/
[10]四十分鐘講完三體: https://www.youtube.com/watch?v=2vowHo2y-hI
[11]圖形解釋 SQL 連接類型: https://dataschool.com/how-to-teach-people-sql/sql-join-types-explained-visually/
[12]新手如果沒有搭建環(huán)境,還能怎樣快速練習寫代碼?: https://sspai.com/post/67541
[13]iOS 15 如何讓您的應用程序啟動更快: https://medium.com/geekculture/how-ios-15-makes-your-app-launch-faster-51cf0aa6c520
[14]如何使用 Python 構建股票交易機器人: https://dev.to/codesphere/how-to-build-a-stock-trading-bot-with-python-b1
[15]相機維修課程: https://learncamerarepair.com/productlist.php?category=1
[16]編程語言內存模型: https://research.swtch.com/plmm
[17]Git 最佳實踐: https://sethrobertson.github.io/GitBestPractices/
[18]為什么許多游戲在存檔時會提示「不要關閉電源」?: https://daily.zhihu.com/story/9737812
[19]為什么世界上有這么多垃圾軟件: https://software.rajivprab.com/2020/12/18/why-is-there-so-much-crap-software-in-the-world/
[20]普拉瑟姆 | Twitter: https://twitter.com/Prathkum/status/1413530586107449347
[21]如何長期堅持做一件事情?: https://mp.weixin.qq.com/s/C_IgJs55sAvQbBNhNe4jJg
[22]科技愛好者周刊(第 166 期):視頻學習勝過讀書嗎?: https://www.ruanyifeng.com/blog/2021/07/weekly-issue-166.html
[23]《遠程工作會摧毀老板》: https://ez.substack.com/p/the-work-from-home-future-is-destroying
- End -

一周精彩內容分享(第 22 期):YouTube 知識轉移革命

一周精彩內容分享(第 21 期):高考的重要性,正在下降

一周精彩內容分享(第 20 期):你是飛鳥還是青蛙?
