[轉]成爲高效程序員的搜索技巧

文章做者:紙口杯
本文地址:http://www.y513.com/201102807.html
版權全部 © 轉載時必須以連接形式註明做者和原始出處!php

 

對於缺少編程知識的人來講,徹底有可能編寫一個網頁或小程序。若是在用Google搜索相關示例時幸運的話,能夠搜到現成的代碼。即便是經驗豐富的程序員,一般也會爲了節省時間和精力而在網上搜索解決方案。html

若是不借助搜索技術、網絡及集體智慧,現代化高效編程是不可思議的。所以,搜索技巧對高效程序員變得愈發重要。程序員

如今,咱們不須要了解和記住如何解決衆多的編程問題,能夠採用搜索技術。咱們正變得更加高效、高生產力,並可以解決更多的問題。但這是否意味着在構建軟件時,擁有好的搜索技巧就足夠了呢?本文將討論,搜索技巧在程序員知識的造成過程當中的做用,以及如何高效使用搜索技巧。編程

知識的類型及它在程序員大腦中如何成長。小程序

如何使用搜索技巧來成爲一名高效的程序員

有三類知識:設計模式

概念知識(爲何、是什麼、若是—— 語義上的)——理解軟件系統構建過程當中的概念、原理、關係及主要方法。根據這類知識,可以找出體系結構或代碼必須按特定方式設計的緣由,以及從中選擇最佳 設計方案的備選方案和邏輯是什麼。概念知識,不是指用特定編程語言解決特定問題,而是對問題的長遠見解和理解。網絡

  • 用途:對複雜的開放式問題尋找新的解決方案,並建立穩健的軟件系統。
  • 收穫:學習計算機科學、體系結構以及編程概念,在實際實現和經驗的基礎上,構建本身的理論。

實踐性知識(如何作 —— 過程當中的)—— 關於如何解決特定編程問題的知識。這類知識不須要深刻理解實現方法選擇過程當中隱含的概念及基本原理。搜索技術在這裏最重要,由於對有限的編程語言問題所採起的特定解決方案,搜索能相對容易的加以共享並說明。架構

  • 用途:用已證明的和已知的解決方案快速解決問題,而不是每次都從新發明一種新的方法。
  • 收穫:搜索現有的解決方案,經過例子學習或提出本身的解決方案並之後對其重利用。

隱性知識(專業知識、經驗及直覺)——基於軟件系統實現過程當中所積累的我的經驗,在大腦中造成的內在知識。經過 強大的大腦功能,隱性知識能夠綜合並協調其餘兩種知識。這類知識很難傳授,由於它的大部分都存儲在咱們的潛意識中。在特定環境下,它和直覺一同發揮做用, 可以在經驗、對概念性和實踐性知識的反饋和評估的基礎上,制定最佳決策。編程語言

  • 用途:利用本身的專長、經驗及直覺來實現最佳解決方案。
  • 收穫:構建軟件並從結果中學習知識。
如何使用搜索技巧來成爲一名高效的程序員

設計模式(還有架構、領域及其餘)是不一樣類型知識相結合的有趣的例子:「如何作」的例子,這些例子中隱含的概念及實現過程當中積累的經驗。這種知識的表現方式是模式成功及普遍應用的緣由之一。函數

隨着愈來愈多的可供使用的實踐性解決方案和示例出如今網絡上,人們大腦中的實踐性知識的價值愈來愈小。咱們不須要記住實踐性知識。如今咱們可以處理 軟件構建過程當中幾乎全部可能遇到的常見編程問題。然而,除可以解決問題的示例或從哪搜索這些示例之外,一名大師級的程序員還知道更多的知識。他可以提出自 己的解決方案,制定大部分最佳決策,並採用最好的方式應用它們。此外,很難在網上找到新的、複雜的、領域性的及特定環境下的問題的解決方案。並且,對全部 重要的軟件工程,在制定優秀解決方案的過程當中,都須要高水平的軟件開發理論、這些理論的應用經驗、對系統的深刻了解、問題空間及環境等相關知識。

所以,在軟件開發過程當中,概念知識和隱性知識仍然是很是重要的。在使用搜索技術時,咱們應當努力擴充各類知識,而不是僅僅解決特定問題。隨着解決更高級問題的能力的提升,你會取得成功,成爲更高效的程序員。

如何使用搜索技巧來成爲一名高效的程序員

可解決實際問題的高效搜索

A. 查找

  • 1. 定義——弄清楚要解決什麼問題,並以要查找的內容爲焦點。網絡上有如此多的有趣的材料,以致於搜索過程能輕易地佔掉你所有的工做時間(和我的時間)。
  • 2. 檢索(使用標準的Google、代碼搜索或其餘的檢索引擎)—有不少關於如何高效的使用檢索引擎的建議。
  • 3. 瀏覽結果(內容的質量、可信度及專業技術的水平;若是資料的可信度太低,無須再看)-> 閱讀 -> 評估(人力物力、所需工具及函數庫)

B. 使用

  • 1. 複製代碼 – 單獨複製(針對這一目的,帶有長釘技術的顯式單元測試最適合)
  • 2. 清除代碼 – 僅保留最小限度、相關性代碼,清除解決方案中的其它代碼。
  • 3. 在系統中應用代碼。

C. 學習

  • 1. 理解——你作了什麼及你爲何那樣作——從代碼和實現中學習。
  • 2. 擴充知識——
    • a. 實踐性知識:解決問題的特定方法、技巧及風格;
    • b. 概念知識:學習新概念、提煉現有的並構建本身的概念;
    • c. 隱性知識:明智地使用並學習搜索到的解決方案,經驗會天然而然地獲得增加。
  • 3. 收集(連接、意見、參考文獻、閱讀清單)—任何對你從此搜索、發現及學習有用的有趣信息。爲這些目標積累知識。

你還有其餘高效搜索代碼的訣竅嗎?歡迎在評論或微博中和你們分享。

 

文章做者:紙口杯
本文地址:http://www.y513.com/201102807.html版權全部 © 轉載時必須以連接形式註明做者和原始出處!

相關文章
相關標籤/搜索