為程序員量身定制的12個目標
感謝伯樂的投遞 01. 變得有耐心 在一個月的嘗試之后,你可以決定是否繼續(xù)采用新方式,或者找到新方式中好的經(jīng)驗與原有方式的結合點。例如,在我從使用了10年的emacs轉(zhuǎn)向vim時,我會為插入模式設置emacs風格快捷鍵從而繼續(xù)使用vim。(《25個Vim教程、視頻和資源》) 學習一門新的編程語言 編程語言起起落落。如果只了解一門語言,程序員的解決問題能力以及職業(yè)前景都會因此受到限制?;ㄉ险粋€月時間吸收一門新語言或者一個新的編程范式,并用它寫一個小程序。 下面是一些可以學習但不是非常主流的編程語言: Racket、 Haskell、Scala、Erlang、Clojure、SML/NJOCaml、Squeak、Prolog、Datalog. 如果你無所不知,那么你可以實現(xiàn)一門新的編程語言。 自動化 程序員擁有最強大的待開發(fā)技能就是將虛擬和現(xiàn)實自動化的能力。如果你從來沒有造過一個機器人,那么去做一個吧。至少學會使用Lego Mindstorms或者玩一玩 Arduino board。 檢查一下你每天的任務,看看其中有哪些可以完全或者部分自動化。自動化在家庭生活里已經(jīng)有了長足的進步,甚至可以像Insteon那樣對系統(tǒng)進行DIY。 投資一個月的時間來進行自動化: procmail:procmail軟件包包含一個自動的郵件管理器,可以很好的過濾和排序郵件。 cron:linux下的定時執(zhí)行工具。 Roomba:Roomba是iRobo公司生產(chǎn)的定時智能機器人。 學習更多數(shù)學知識 計算機科學本質(zhì)上講是數(shù)學的一個學科。好的數(shù)學家中間會產(chǎn)出優(yōu)秀的程序員。不要讓你的數(shù)學能力喪失殆盡。 考慮每年花一個月時間復習列表中的一項: 邏輯學、離散數(shù)學、微積分、概率論、統(tǒng)計學、抽象代數(shù)、數(shù)論、范疇論、偏序理論 (《數(shù)學是成就卓越開發(fā)人員的必備技能》) 關注安全 很少有程序員具備好的安全習慣。如果你對自己的數(shù)字安全很在意,你就會對你寫的代碼安全性更加關心。確保你在每個站點都使用了唯一的高安全系數(shù)密碼。使用加密的密碼管理器來管理你的密碼,例如PasswordSafe或者KeePassX。如果你還沒有對整個磁盤加密,留出時間完成它。(在Mac上可以輕松完成) 每年都要研究過去12個月中前10位的安全漏洞。他們是如何發(fā)生的?在編程中需要怎么做能夠避免在你的代碼中出現(xiàn)這些漏洞? 下面是另外一些你需要嘗試的安全任務: nmap:linux下的網(wǎng)絡掃描和嗅探工具包 備份你的數(shù)據(jù) 每年花一些時間檢查你的備份策略。 花一個月時間將備份花費的時間減到最小。 使用基于云的備份服務,比如Mozy和Carbonite,很容易建立無縫自動備份。 更全面地防御可以選擇為每個人分發(fā)硬盤,對每臺電腦使用像Time Machine這樣的自動備份工具進行備份。 對重要文件使用異地遠程倉庫進行版本控制。 學習更多理論知識 計算機科學有豐富的理論基礎。 了解最新進展的同時還要加強對經(jīng)典開發(fā)理論的掌握。 譯注: 形式語言:按一定規(guī)律構成的句子或符號串的有限或無限的集合。 自動機:是有線狀態(tài)機(FSM)的數(shù)學模型。 可計算性理論:研究計算的可行性和函數(shù)算法的理論。又稱算法理論。它是算法設計與分析的基礎,也是計算機科學的理論基礎。 計算復雜性理論:計算復雜性理論是理論計算機科學的分支學科,使用數(shù)學方法對計算中所需的各種資源的耗費作定量的分析,并研究各類問題之間在計算復雜程度上的相互關系和基本性質(zhì),是算法分析的理論基礎。 形式化方法:在邏輯科學中是指分析、研究思維形式結構的方法。 語義學:研究自然語言中詞語意義的學科。也可以指對邏輯形式系統(tǒng)中符號解釋的研究。 對于剛起步的程序員,可以先看一看下列文章: CEK:CEK機器是由Matthias Felleisen和Dan Friedman開發(fā)的λ-演算的力學模型。 Haskell:一種純函數(shù)式編程語言,以美國數(shù)學家Haskell Brooks Curry命名。 接觸藝術和人文 工程師往往輕視藝術。他們沒有意識到藝術和人文是基礎升華的重要因素。史蒂夫·喬布斯樂于指出將技術與人文結合的重要性,事實也卻是如此。 藝術和設計原則同樣適用于人和計算機之間的交互。不要忽視這些原則。藝術和人文的訓練讓直覺更加敏銳,而這方面的練習是難以用數(shù)字來計量。工程師需要知道如何衡量那些他們不能計量的事物,而不是只是統(tǒng)計他們可以計量的內(nèi)容。 每年至少有一個月學習下面列出的主題: 向新的軟件學習 一個為自己的軟件尋找靈感的好辦法就是向新的或新型應用程序?qū)W習。例如,如果你從來沒有嘗試過3D建模軟件,可以嘗試Blender。抑或是,如果你從來沒有接觸過LaTeX,請真誠地試著去了解它。 在學習過程中,請注意你喜歡什么和討厭什么。真誠地問自己,這些觀察到的內(nèi)容是否在你的軟件中存在。在工作中很難看到自己的缺點,但發(fā)現(xiàn)別人的不足卻很容易。天下沒有哪個父母認為自己的孩子長得難看。請學習看到自己作品的不足。 完成一個自己的項目 如果你整天為別人寫代碼,那么為自己寫程序能讓你記得當初為什么會成為程序員。每年為自己選擇的項目分配一個月的時間,完成核心功能,將其開源發(fā)布。 原文:mattmight 譯文鏈接:http://blog./11590/ 編譯:伯樂在線 – 唐尤華 |
|
|