色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

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

沒有人是完全獨(dú)立的孤島,每個(gè)人都是整體的一部分。——約翰·多恩

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

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

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

  知識(shí)的類型及它在程序員大腦中如何成長。

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

  • 用途:對復(fù)雜的開放式問題尋找新的解決方案,并創(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ān)于如何解決特定編程問題的知識(shí)。這類知識(shí)不需要深入理解實(shí)現(xiàn)方法選擇過程中隱含的概念及基本原理。搜索技術(shù)在這里最重要,因?yàn)閷τ邢薜木幊陶Z言問題所采取的特定解決方案,搜索能相對容易的加以共享并說明。

  • 用途:用已證實(shí)的和已知的解決方案快速解決問題,而不是每次都重新發(fā)明一種新的方法。
  • 收獲:搜索現(xiàn)有的解決方案,通過例子學(xué)習(xí)或提出自己的解決方案并以后對其重利用。

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

  • 用途:利用自己的專長、經(jīng)驗(yàn)及直覺來實(shí)現(xiàn)最佳解決方案。
  • 收獲:構(gòu)建軟件并從結(jié)果中學(xué)習(xí)知識(shí)。

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

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

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

  可解決實(shí)際問題的高效搜索
  A. 查找

  • 1. 定義——弄清楚要解決什么問題,并以要查找的內(nèi)容為焦點(diǎn)。網(wǎng)絡(luò)上有如此多的有趣的材料,以至于搜索過程能輕易地占掉你全部的工作時(shí)間(和個(gè)人時(shí)間)。
  • 2. 檢索(使用標(biāo)準(zhǔn)的Google、代碼搜索或其他的檢索引擎)—有很多關(guān)于如何高效的使用檢索引擎的建議。
  • 3. 瀏覽結(jié)果(內(nèi)容的質(zhì)量、可信度及專業(yè)技術(shù)的水平;如果資料的可信度過低,無須再看)-> 閱讀-> 評估(人力物力、所需工具及函數(shù)庫)

  B. 使用

  • 1. 復(fù)制代碼-單獨(dú)復(fù)制(針對這一目的,帶有長釘技術(shù)的顯式單元測試最適合)
  • 2. 清除代碼-僅保留最小限度、相關(guān)性代碼,清除解決方案中的其它代碼。
  • 3. 在系統(tǒng)中應(yīng)用代碼。

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

  • 1. 理解——你做了什么及你為什么那樣做——從代碼和實(shí)現(xiàn)中學(xué)習(xí)。
  • 2. 擴(kuò)充知識(shí)——
    • a. 實(shí)踐性知識(shí):解決問題的特定方法、技巧及風(fēng)格;
    • b. 概念知識(shí):學(xué)習(xí)新概念、提煉現(xiàn)有的并構(gòu)建自己的概念;
    • c. 隱性知識(shí):明智地使用并學(xué)習(xí)搜索到的解決方案,經(jīng)驗(yàn)會(huì)自然而然地得到增長。
  • 3. 收集(鏈接、意見、參考文獻(xiàn)、閱讀清單)—任何對你今后搜索、發(fā)現(xiàn)及學(xué)習(xí)有用的有趣信息。為這些目標(biāo)積累知識(shí)。

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


  本文出處:伯樂在線- 職場博客
  本文鏈接:http://www.jobbole.com/entry.php/371
  Via:softwarecreation 文章推薦:關(guān)關(guān)  編譯:伯樂在線 敏捷翻譯組- 牛冬梅
  如需轉(zhuǎn)載,但請注明文章來源和超鏈接等版權(quán)信息,否則視為侵權(quán),謝謝合作!

it知識(shí)庫如何使用搜索技巧來成為一名高效的程序員,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 莱州市| 东港市| 体育| 正阳县| 亚东县| 万安县| 永川市| 泽州县| 福鼎市| 姜堰市| 涡阳县| 双辽市| 德清县| 舟山市| 焦作市| 资源县| 揭东县| 漯河市| 和平区| 新兴县| 晋江市| 定远县| 绩溪县| 天镇县| 阳西县| 禹州市| 雅安市| 东乌珠穆沁旗| 凌海市| 惠东县| 高淳县| 凤山县| 龙陵县| 新余市| 龙口市| 苍山县| 阳春市| 广安市| 融水| 黑山县| 三江|