2024.10.18

xxc666發表於2024-10-19

我們可以將程式設計師所瞭解的一切有關計算過程的事實、工作的應用領域,以及所有經驗,視為他們擁有的知識組合。管理知識組合和管理金融投資組合非常的類似:1.正規投資者有定期投資的習慣。2.多樣化是長線成功的關鍵。3.聰明的投資者會平衡保守型和高風險高回報型投資的組合。4.投資者用低買高賣來獲得最大的回報。5.應定期審查和重新平衡投資組合。要想事業成功,你必須用同樣的指導方針管理你的知識組合。好訊息是,管理這類投資是一項技能,就像其他技能一樣—可以學會。訣竅是讓自己一開始就這樣做,並養成習慣。制定一個你能遵循的例行規程,照此去做,直到大腦將其內化。做到這個程度後,你會發現自己會自動吸收新知識。
構建知識組合定期投資就像金融投資一樣,你必須定期為你的知識組合投資,即使數量有限。習慣本身就和總數量一樣重要,所以要安排一個固定的時間和地點,這有助於撇開常見的干擾。下一部分將列出一些示例目標。多樣化你知道的東西越多,你的價值就越大。起碼要知道目前工作中特定技術的來龍去脈,但不要就此打住。計算機技術變化迅猛—今天的技術熱點可能到了明天就接近無用(至少不那麼受歡迎)​。熟悉的技能越多,越能適應變化。
目標:現在你已經有了一些指導方針,知道什麼時候新增什麼內容到知識組合中。對於那些構成知識組合的智力資產,獲取它們的最佳途徑是什麼?這裡有一些建議:每年學習一門新語言不同的語言以不同的方式解決相同的問題。多學習幾種不同的解決方法,能幫助自己拓寬思維,避免陷入陳規。此外,要感謝豐富的免費軟體,讓我們學習多種語言非常容易。每月讀一本技術書雖然網路上有大量的短文和偶爾可靠的答案,但深入理解還是需要去讀長篇的書。瀏覽書店頁面後[插圖]挑選和你當前專案主題相關的技術圖書。一旦你養成習慣,就一個月讀一本。在你掌握了當前正在使用的所有技術後,擴充套件你的領域,學習一些和你的專案不相關的東西。還要讀非技術書記住,計算機是由人來使用的,你做的事情是為了滿足人的需要,這非常重要。和你一起工作的是人,僱傭你的也是人,黑你的還是人。不要忘記方程式中人的那一面,它需要完全不同的技能集(我們稱這些為軟技能,聽起來很容易,但實際上它們很硬核,難以掌握)​。上課在本地大學或是網上找一些有趣的課程,或許也能在下一場商業會展或是技術會議上找到。加入本地的使用者組和交流群不要只是去當聽眾,要主動參與。獨來獨往對你的職業生涯是致命的;瞭解一下公司之外的人們都在做什麼。嘗試不同的環境如果你只在Windows下工作,那麼就花點時間在Linux上。如果你只使用簡單的編輯器和Makefile,那就試試最新的炫酷複雜的IDE,反之亦然。與時俱進關心一下和你當前專案不同的技術,閱讀相關的新聞和技術帖。這是一種很好的方式,可以瞭解用到那些不同技術的人的經驗及他們所用的特殊術語,等等。持續投資非常重要。一旦你進入了對某個新語言或新技術的舒適期,向前走,再學一個。你是否在專案中使用過這些技術並不重要,甚至要不要把它們放在你的簡歷中也不重要。學習的過程將會擴充套件你的思維,為你開啟全新可能性的大門,讓你領悟新的做事方式。想法的交叉傳授是很重要的;試著把你領悟到的東西應用到你當前的專案中。即使專案沒有用到某項技術,你也可以借鑑一些想法。例如,熟悉物件導向,你就可以用不同的方式來編寫樸素的C程式,理解函數語言程式設計正規化,就能用不同的方式來寫Java,等等。學習的機會你如飢似渴地閱讀,已站在你所在領域的最新突破性進展前沿(這可不是件容易的事)​。儘管如此,當有人問你問題時,如你的確毫無思路,也只能坦率地承認自己無法作答。但不要停在這裡,把找到答案作為一項個人挑戰。問問周圍的人,或是上網搜尋—不要僅限於大眾領域,還要試試在學術領域找一下。如果你無法自己找到答案,去尋覓有能力找到答案的人,而不要讓問題沉寂下去。和其他人交談有助於構建你的人際網路,而且你還會驚奇地發現,在這個過程中你會找到一些其他不相關問題的解決方案—舊有的知識組合會不斷地擴大……所有閱讀和研究都需要時間,而時間總是不夠用的。所以你需要提前準備好,確保在無聊的時候有東西可讀。在醫院排隊往往是把書讀完的好機會—不過一定要記得帶上自己的電子閱讀器。不然可能只好去翻醫院裡的舊年刊,裡面折起的那頁講的是1973年的巴布亞紐幾內亞。批判性思維最後一個要點是要批判性地思考讀到的和聽到的東西。你需要確保組合中的知識是精準的,未受供應商或媒體炒作的影響。當心堅持教條的狂熱者,他們將其視為唯一答案—而那些教條未必適合你和專案。永遠不要低估商業主義的力量。網路搜尋引擎有時僅僅是把熱門的東西列在最前面而已,並不能說明這是你的最佳選擇,而且內容提供商也可以花錢把它們的東西排到前列。書店有時僅僅是把一本書擺在顯著的位置而已,並不能說明這是一本好書,甚至不能說明這本書很流行,可能只是有人花錢把它擺在了那裡。