自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

學(xué)會(huì)這11個(gè)主要元知識(shí)概念,媽媽再也不用擔(dān)心我的代碼編寫啦!

開發(fā) 開發(fā)工具
編程元知識(shí)是計(jì)算機(jī)科學(xué)專業(yè)畢業(yè)生必學(xué)的東西,而自學(xué)者經(jīng)常會(huì)漏掉這些知識(shí)點(diǎn)。本文提供一份清單式的指南,好讓讀者在這些新鮮好奇的知識(shí)行囊里進(jìn)行瀏覽和挑選。

在小芯認(rèn)識(shí)的程序員之中,大部分人都更注重實(shí)操實(shí)踐,對(duì)于知識(shí)點(diǎn)的學(xué)習(xí)沒有那么在意,雖然那些基礎(chǔ)知識(shí)常常在編碼中發(fā)揮不可取代的作用,但還是難以逃脫被人們看輕或忽視的命運(yùn)。

當(dāng)然現(xiàn)在也出了很多知識(shí)學(xué)習(xí),指南指導(dǎo)類的文章或者課程,成為大家“投機(jī)取巧”、短時(shí)間掌握大量核心知識(shí)的“捷徑”。

并不是說這種“捷徑”不好。

[[285561]]

在大多數(shù)情況下,有很多指南都是可以參考的,它們能夠指導(dǎo)讀者學(xué)習(xí)那些最熱門的語言以及最熱門的知識(shí),從而使讀者成為行業(yè)的佼佼者。

盡管這些指南可能有用,但它們僅引導(dǎo)讀者獲得表面價(jià)值。這些指南提供了淺層次的學(xué)習(xí)路線,如果想要往更深層次發(fā)展,還是需要自己去慢慢實(shí)踐和探索。

因此,小芯今天幫大家整理了能“獲得成為一個(gè)真正有效的開發(fā)人員所需的深度知識(shí)“。

但是這些生僻的編程“元”知識(shí),仍需要讀者自己去主動(dòng)潛心鉆研。

編程元知識(shí)是計(jì)算機(jī)科學(xué)專業(yè)畢業(yè)生必學(xué)的東西,而自學(xué)者經(jīng)常會(huì)漏掉這些知識(shí)點(diǎn)。編程元知識(shí)是查看和編寫代碼的基礎(chǔ)。

[[285562]]

圖片由Aphinya Dechalert拍攝-這些都是“元”

本文提供一份清單式的指南,好讓讀者在這些新鮮好奇的知識(shí)行囊里進(jìn)行瀏覽和挑選。

綜合指南(絕大部分與語言無關(guān))

全局圖—:Aphinya Dechalert撰寫

1. 數(shù)組!因?yàn)橐磺卸际菙?shù)據(jù)

幾乎在每個(gè)教程中,都會(huì)遇到一個(gè)非常簡(jiǎn)單的數(shù)組版本。比如熟知的扁平的一維數(shù)組,包含少許元素。但是在現(xiàn)實(shí)生活中,還有更多的種類,形狀和具有奇異性的數(shù)據(jù)可以以數(shù)組形式呈現(xiàn)。

當(dāng)涉及到生產(chǎn)級(jí)數(shù)據(jù)集時(shí),多維數(shù)組和交錯(cuò)數(shù)組是經(jīng)常使用的類型。如何優(yōu)化這些數(shù)組的結(jié)構(gòu)以供創(chuàng)建和使用,決定著開發(fā)人員是否能高效地執(zhí)行任務(wù)。

2. 談?wù)勊惴?/strong>

每個(gè)人都在談?wù)?ldquo;算法”,仿佛它是一個(gè)被AI喚醒的神秘物體,會(huì)給所有人帶來厄運(yùn)。 或許這只是廣大民眾的一種看法。

在開發(fā)人員踏入編程的潮流前,算法只是編程中一系列實(shí)現(xiàn)特定結(jié)果的可重復(fù)規(guī)則。

當(dāng)涉及到算法時(shí),了解排序算法的機(jī)制可以幫助開發(fā)人員在處理大量數(shù)據(jù)時(shí)保持清醒。

有些時(shí)候,面臨的是數(shù)據(jù)和數(shù)據(jù)處理問題。如果熟悉為特定類型的數(shù)據(jù)進(jìn)行設(shè)計(jì)和測(cè)試的方法,那么就能減少對(duì)列表的sort()等方法的依賴。

這是因?yàn)閟ort()傾向于運(yùn)行自己的算法,而該算法可能因繪制引擎而異。當(dāng)編寫自己的算法時(shí),就可以更好地控制通過代碼處理的數(shù)據(jù)的質(zhì)量和速度。

3. SOLID設(shè)計(jì)原則

SOLID是編程中五項(xiàng)設(shè)計(jì)原則的集合。這五項(xiàng)原則是可以實(shí)現(xiàn)面向?qū)ο缶幊痰哪J健?/p>

SOLID原則的有用之處在于提升代碼靈活性、長期可維護(hù)性,以及加強(qiáng)對(duì)開發(fā)人員間工作完成方式的全面理解。

除了創(chuàng)立健壯的代碼之外,SOLID還形成了敏捷軟件開發(fā)的核心理念。

4. 測(cè)試

不要僅僅學(xué)習(xí)如何測(cè)試,更要學(xué)會(huì)研究測(cè)試背后的理論。當(dāng)進(jìn)行測(cè)試時(shí),開發(fā)人員傾向于僅僅關(guān)注單元測(cè)試,而不去弄清楚整體意識(shí)形態(tài)的機(jī)制,以及它們?yōu)槭裁词谴a穩(wěn)健的基礎(chǔ)。

測(cè)試分為基于功能的測(cè)試和非功能性測(cè)試,如性能、安全性、可用性和兼容性測(cè)試。這些測(cè)試通常具有較低優(yōu)先級(jí),或者根本未被考慮。

重要的是,測(cè)試還能讓開發(fā)人員運(yùn)行假設(shè)的場(chǎng)景并預(yù)先確定數(shù)據(jù)的形態(tài),以及在開始編碼之前預(yù)測(cè)潛在的問題。

5. 樹

有些時(shí)候會(huì)聽到關(guān)于“樹”的內(nèi)容。這里的“樹”不是指通常生長在泥土中并提供氧氣的植物,而是基于關(guān)系基礎(chǔ)結(jié)構(gòu)——通過節(jié)點(diǎn)、葉節(jié)點(diǎn)、子節(jié)點(diǎn)、父節(jié)點(diǎn)和兄弟節(jié)點(diǎn)訪問,從而構(gòu)建數(shù)據(jù)。

如果使用過HTML,就會(huì)聽說過DOM樹。那是一種樹的類型。二叉樹是每個(gè)節(jié)點(diǎn)都有兩個(gè)子節(jié)點(diǎn)連接的樹,它創(chuàng)建了一個(gè)可以追溯到最頂端的金字塔樣式圖。

但是,樹的意義遠(yuǎn)不止這些,它還與性能、處理數(shù)據(jù)以及如何快速檢索數(shù)據(jù)有關(guān)。

6. 動(dòng)態(tài)編程

動(dòng)態(tài)編程是一種通過遞歸方式,將復(fù)雜問題分解為可能的最小子問題,來解決復(fù)雜問題的方法。這是一種編程技術(shù),可用于多個(gè)學(xué)科,而不僅限于代碼。

動(dòng)態(tài)編程的關(guān)鍵點(diǎn)在于,它對(duì)遞歸的使用意味著一個(gè)問題只會(huì)被解決一次,并且可以優(yōu)化工作負(fù)載,而不是根據(jù)特定的重復(fù)算法來組合事物。

最初,因?yàn)楹芟袼惴ǎ瑒?dòng)態(tài)編程的概念可能會(huì)讓人困惑。但是動(dòng)態(tài)編程和算法有著顯著的不同,有著不同的機(jī)制原理,從長遠(yuǎn)來看,學(xué)習(xí)動(dòng)態(tài)編程可以幫助開發(fā)人員成為一個(gè)更好的程序員。

7. 散列表 (Hash Table)?(與土豆煎餅 (Hashbrowns) 無關(guān))

程序以一種易于訪問和理解的方式組織大量數(shù)據(jù)。散列表是存儲(chǔ)和檢索數(shù)據(jù)的另一種方法。

當(dāng)涉及大型數(shù)據(jù)集(有數(shù)百萬個(gè)的數(shù)據(jù)點(diǎn))并且需要快速檢索數(shù)據(jù)時(shí),散列表是常見的選擇。但同時(shí)散列表也能對(duì)本地應(yīng)用程序存儲(chǔ)中較小的數(shù)據(jù)集進(jìn)行設(shè)計(jì),以提高效率并對(duì)特定集進(jìn)行分類。

8. 二分搜索法

又回到了另一個(gè)與數(shù)據(jù)相關(guān)的話題。二分搜索是一個(gè)值得探索的重要話題,因?yàn)樗c性能有關(guān)。

為了使二分搜索工作正常進(jìn)行,必須要對(duì)需搜索的數(shù)據(jù)集進(jìn)行預(yù)排序,以使算法能夠快速遍歷每個(gè)數(shù)據(jù)點(diǎn)并確定是否匹配。

關(guān)于二分搜索,有多種方法能夠?qū)崿F(xiàn)它,通常是算法和遞歸的混合。二分搜索的思想可以應(yīng)用于不同的語言,它更多的是一種基于數(shù)學(xué)推理的技巧,而不是實(shí)際的代碼。

9. 認(rèn)真對(duì)待進(jìn)程、線程和并發(fā)

當(dāng)開始關(guān)注進(jìn)程、線程和并發(fā)時(shí),這意味著已經(jīng)開始深入編程了。

然而,因?yàn)檫M(jìn)程、線程和并發(fā)主要面向后端開發(fā)人員,但作為一個(gè)前端開發(fā)人員,可能從未遇到過這些問題,但對(duì)它們的工作原理有所了解仍然是一件好事。因?yàn)檫@有助于全面了解計(jì)算機(jī)的工作原理,以及代碼是如何作為人類、繪制引擎/解釋引擎和機(jī)器之間的通信橋梁進(jìn)行工作的。

了解這些概念還能幫助你了解儲(chǔ)存系統(tǒng)的工作方式以及編寫的代碼對(duì)性能的影響。

10. 鏈表

除非使用C ++或Python,否則不太可能會(huì)運(yùn)用到鏈表。雖然鏈表看起來與數(shù)組十分相似,但是鏈表有著不同于數(shù)組的特定優(yōu)點(diǎn)和缺點(diǎn)。

如果開始深入研究數(shù)據(jù)是如何以鏈表的形式顯示的,就會(huì)發(fā)現(xiàn)它非常適用于大型數(shù)據(jù)集工作,因?yàn)樗娜萘渴菬o限的。

如果數(shù)據(jù)過于龐大,最終需要調(diào)整數(shù)組的大小。而鏈表可以保持?jǐn)?shù)據(jù)之間的“鏈接”。

11. 設(shè)計(jì)模式的藝術(shù)

一切都可以歸結(jié)為一個(gè)模式。后退一步,著眼全局,并確定以前是否遇到相同問題,然后設(shè)計(jì)模式就得以實(shí)現(xiàn)了。

如果可能的話,則推薦使用設(shè)計(jì)模式來節(jié)省時(shí)間,防止?jié)撛诘膯栴}進(jìn)一步發(fā)展,并為代碼編寫過程創(chuàng)建標(biāo)準(zhǔn)。

雖然設(shè)計(jì)模式看起來是一個(gè)需要學(xué)習(xí)的大領(lǐng)域,但它也會(huì)帶來良好的投資回報(bào),因?yàn)閷?shí)際上減少了將來由于結(jié)構(gòu)缺乏或結(jié)構(gòu)較弱而可能從代碼中出現(xiàn)的百搭碼文的數(shù)量。

在某種意義上,設(shè)計(jì)模式就好比一個(gè)預(yù)先設(shè)計(jì)的藍(lán)圖,有助于在不斷的實(shí)踐應(yīng)用中保持代碼的可讀性和可理解性。

結(jié)語

編程不僅僅是學(xué)習(xí)一門語言的工作原理。語言、框架、庫背后還隱藏著機(jī)制和技巧。

希望這份元知識(shí)指南能讓大家對(duì)編碼有更為全面的了解,并且不局限于……嗯,代碼本身。

If else 語句會(huì)使很多剛?cè)腴T的程序員感到困惑,但掌握if else 語句也是證明知識(shí)積累與應(yīng)用達(dá)到新高度的標(biāo)志。

不必完全理解所有的內(nèi)容,但這些知識(shí)點(diǎn)可以有助于未來的程序編寫。

知道或至少了解上述主題如何發(fā)揮作用并融入全局,將有助于加快編碼過程,并提高所創(chuàng)建代碼的潛在健壯性,以防出現(xiàn)殘缺和衰退。

加油,各位機(jī)智的天才程序員們!

責(zé)任編輯:趙寧寧 來源: 讀芯術(shù)
相關(guān)推薦

2021-06-08 07:48:26

數(shù)據(jù) Python開發(fā)

2019-09-04 10:00:07

手機(jī)人臉識(shí)別

2015-10-22 10:38:43

Wi-Fi燃?xì)鈭?bào)警器

2016-08-09 16:17:37

高德地圖TFBOYS大數(shù)據(jù)

2021-12-21 09:05:46

命令Linux敲錯(cuò)

2020-03-02 00:01:25

Linux字符目錄

2020-06-15 08:03:17

大文件OOM內(nèi)存

2015-05-29 09:01:48

2020-04-10 09:55:28

Git 工具黑魔法

2021-08-13 22:38:36

大數(shù)據(jù)互聯(lián)網(wǎng)技術(shù)

2019-01-14 00:43:08

可視化圖表數(shù)據(jù)分析數(shù)據(jù)可視化

2022-09-14 08:02:25

加密算法Bcryp

2019-07-23 09:08:43

Python操作系統(tǒng)高考

2023-12-21 09:00:00

開發(fā)并發(fā)編程

2024-04-29 12:13:43

2021-06-11 07:14:04

QQ音樂微信翻譯

2018-10-11 15:51:32

ChromeGoogle瀏覽器

2020-04-30 09:19:56

Docker容器虛擬機(jī)

2018-10-30 16:10:41

Linux救援模式命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)