監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

如何使用搜索技巧來(lái)成為一名高效的程序員

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

 

沒(méi)有人是完全獨(dú)立的孤島,每個(gè)人都是整體的一部分?!s翰·多恩

對(duì)于缺乏編程知識(shí)的人來(lái)說(shuō),完全有可能編寫(xiě)一個(gè)網(wǎng)頁(yè)或小程序。如果在用Google搜索相關(guān)示例時(shí)幸運(yùn)的話,可以搜到現(xiàn)成的代碼。即使是經(jīng)驗(yàn)豐富的程序員,通常也會(huì)為了節(jié)省時(shí)間和精力而在網(wǎng)上搜索解決方案。

如果不借助搜索技術(shù)、網(wǎng)絡(luò)及集體智慧,現(xiàn)代化高效編程是難以想象的。因此,搜索技巧對(duì)高效程序員變得愈發(fā)重要。

現(xiàn)在,我們不需要了解和記住如何解決眾多的編程問(wèn)題,可以采用搜索技術(shù)。我們正變得更加高效、高生產(chǎn)力,并能夠解決更多的問(wèn)題。但這是否意味著在構(gòu)建軟件時(shí),擁有好的搜索技巧就足夠了呢?本文將討論,搜索技巧在程序員知識(shí)的形成過(guò)程中的作用,以及如何高效使用搜索技巧。知識(shí)的類型及它在程序員大腦中如何成長(zhǎng)。

有三類知識(shí):

概念知識(shí)

(為什么、是什么、如果—— 語(yǔ)義上的)——理解軟件系統(tǒng)構(gòu)建過(guò)程中的概念、原理、關(guān)系及主要方法。根據(jù)這類知識(shí),能夠找出體系結(jié)構(gòu)或代碼必須按特定方式設(shè)計(jì)的原因,以及從中選擇最佳 設(shè)計(jì)方案的備選方案和邏輯是什么。概念知識(shí),不是指用特定編程語(yǔ)言解決特定問(wèn)題,而是對(duì)問(wèn)題的長(zhǎng)遠(yuǎn)看法和理解。

用途:對(duì)復(fù)雜的開(kāi)放式問(wèn)題尋找新的解決方案,并創(chuàng)建穩(wěn)健的軟件系統(tǒng)。

收獲:學(xué)習(xí)計(jì)算機(jī)科學(xué)、體系結(jié)構(gòu)以及編程概念,在實(shí)際實(shí)現(xiàn)和經(jīng)驗(yàn)的基礎(chǔ)上,構(gòu)建自己的理論。

實(shí)踐性知識(shí)

(如何做 —— 過(guò)程中的)—— 關(guān)于如何解決特定編程問(wèn)題的知識(shí)。這類知識(shí)不需要深入理解實(shí)現(xiàn)方法選擇過(guò)程中隱含的概念及基本原理。搜索技術(shù)在這里最重要,因?yàn)閷?duì)有限的編程語(yǔ)言問(wèn)題所采取的特定解決方案,搜索能相對(duì)容易的加以共享并說(shuō)明。

用途:用已證實(shí)的和已知的解決方案快速解決問(wèn)題,而不是每次都重新發(fā)明一種新的方法。

收獲:搜索現(xiàn)有的解決方案,通過(guò)例子學(xué)習(xí)或提出自己的解決方案并以后對(duì)其重利用。

隱性知識(shí)

(專業(yè)知識(shí)、經(jīng)驗(yàn)及直覺(jué))——基于軟件系統(tǒng)實(shí)現(xiàn)過(guò)程中所積累的個(gè)人經(jīng)驗(yàn),在大腦中形成的內(nèi)在知識(shí)。通過(guò)強(qiáng)大的 大腦功能,隱性知識(shí)可以綜合并協(xié)調(diào)其他兩種知識(shí)。這類知識(shí)很難傳授,因?yàn)樗拇蟛糠侄即鎯?chǔ)在我們的潛意識(shí)中。在特定環(huán)境下,它和直覺(jué)一同發(fā)揮作用,能夠在 經(jīng)驗(yàn)、對(duì)概念性和實(shí)踐性知識(shí)的反饋和評(píng)估的基礎(chǔ)上,制定最佳決策。

用途:利用自己的專長(zhǎng)、經(jīng)驗(yàn)及直覺(jué)來(lái)實(shí)現(xiàn)最佳解決方案。

收獲:構(gòu)建軟件并從結(jié)果中學(xué)習(xí)知識(shí)。

設(shè)計(jì)模式(還有架構(gòu)、領(lǐng)域及其他)是不同類型知識(shí)相結(jié)合的有趣的例子:“如何做”的例子,這些例子中隱含的概念及實(shí)現(xiàn)過(guò)程中積累的經(jīng)驗(yàn)。這種知識(shí)的表現(xiàn)方式是模式成功及廣泛應(yīng)用的原因之一。

隨著越來(lái)越多的可供使用的實(shí)踐性解決方案和示例出現(xiàn)在網(wǎng)絡(luò)上,人們大腦中的實(shí)踐性知識(shí)的價(jià)值越來(lái)越小。我們不需要記住實(shí)踐性知識(shí)?,F(xiàn)在我們能夠處理軟 件構(gòu)建過(guò)程中幾乎所有可能遇到的常見(jiàn)編程問(wèn)題。然而,除能夠解決問(wèn)題的示例或從哪搜索這些示例以外,一名大師級(jí)的程序員還知道更多的知識(shí)。他能夠提出自己 的解決方案,制定大部分最佳決策,并采用最好的方式應(yīng)用它們。此外,很難在網(wǎng)上找到新的、復(fù)雜的、領(lǐng)域性的及特定環(huán)境下的問(wèn)題的解決方案。而且,對(duì)所有重 要的軟件工程,在制定優(yōu)秀解決方案的過(guò)程中,都需要高水平的軟件開(kāi)發(fā)理論、這些理論的應(yīng)用經(jīng)驗(yàn)、對(duì)系統(tǒng)的深入了解、問(wèn)題空間及環(huán)境等相關(guān)知識(shí)。

因此,在軟件開(kāi)發(fā)過(guò)程中,概念知識(shí)和隱性知識(shí)仍然是非常重要的。在使用搜索技術(shù)時(shí),我們應(yīng)當(dāng)努力擴(kuò)充各種知識(shí),而不是僅僅解決特定問(wèn)題。隨著解決更高級(jí)問(wèn)題的能力的提高,你會(huì)取得成功,成為更高效的程序員。

可解決實(shí)際問(wèn)題的高效搜索

A. 查找

1. 定義——弄清楚要解決什么問(wèn)題,并以要查找的內(nèi)容為焦點(diǎn)。網(wǎng)絡(luò)上有如此多的有趣的材料,以至于搜索過(guò)程能輕易地占掉你全部的工作時(shí)間(和個(gè)人時(shí)間)。

2. 檢索(使用標(biāo)準(zhǔn)的Google、代碼搜索或其他的檢索引擎)—有很多關(guān)于如何高效的使用檢索引擎的建議。

3. 瀏覽結(jié)果(內(nèi)容的質(zhì)量、可信度及專業(yè)技術(shù)的水平;如果資料的可信度過(guò)低,無(wú)須再看)-> 閱讀 -> 評(píng)估(人力物力、所需工具及函數(shù)庫(kù))

B. 使用

1. 復(fù)制代碼 - 單獨(dú)復(fù)制(針對(duì)這一目的,帶有長(zhǎng)釘技術(shù)的顯式單元測(cè)試最適合)

2. 清除代碼 - 僅保留最小限度、相關(guān)性代碼,清除解決方案中的其它代碼。

3. 在系統(tǒng)中應(yīng)用代碼。

C. 學(xué)習(xí)

1. 理解——你做了什么及你為什么那樣做——從代碼和實(shí)現(xiàn)中學(xué)習(xí)。

2. 擴(kuò)充知識(shí)——

a. 實(shí)踐性知識(shí):解決問(wèn)題的特定方法、技巧及風(fēng)格;

b. 概念知識(shí):學(xué)習(xí)新概念、提煉現(xiàn)有的并構(gòu)建自己的概念;

c. 隱性知識(shí):明智地使用并學(xué)習(xí)搜索到的解決方案,經(jīng)驗(yàn)會(huì)自然而然地得到增長(zhǎng)。

3. 收集(鏈接、意見(jiàn)、參考文獻(xiàn)、閱讀清單)—任何對(duì)你今后搜索、發(fā)現(xiàn)及學(xué)習(xí)有用的有趣信息。為這些目標(biāo)積累知識(shí)。

你還有其他高效搜索代碼的訣竅嗎?歡迎在評(píng)論或微博中和大家分享。




發(fā)布:2007-04-16 17:22    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]

泛普入庫(kù)出庫(kù)管理軟件其他應(yīng)用

藥品進(jìn)銷存管理系統(tǒng) 醫(yī)藥進(jìn)銷存 超市進(jìn)銷存管理系統(tǒng) 服裝進(jìn)銷存軟件 倉(cāng)庫(kù)進(jìn)銷存管理軟件 進(jìn)銷存財(cái)務(wù)軟件 傻瓜進(jìn)銷存 萬(wàn)能進(jìn)銷存軟件 進(jìn)銷存網(wǎng)絡(luò)版 進(jìn)銷存管理系統(tǒng) 進(jìn)銷存系統(tǒng) 服裝庫(kù)存管理軟件 條碼倉(cāng)庫(kù)管理軟件 庫(kù)存管理軟件 倉(cāng)庫(kù)管理軟件 庫(kù)房管理軟件 出入庫(kù)管理軟件 倉(cāng)儲(chǔ)管理系統(tǒng) 倉(cāng)庫(kù)管理系統(tǒng) 庫(kù)存管理系統(tǒng) 入庫(kù)出庫(kù)管理軟件 進(jìn)銷存軟件排名 倉(cāng)庫(kù)管理軟件哪個(gè)好