主頁 > 後端開發 > 新手如何自學一個領域?這里有一份全指南

新手如何自學一個領域?這里有一份全指南

2020-12-30 06:16:12 後端開發

原創 Lachel

L先生說

 

以前寫過不少跟學習相關的文章,但大都是集中于某個點,欠缺系統性,

 

今天,我想通過這篇詳細的文章,把「學習」這個問題,簡單梳理一下,

 

當然,這是一個巨大的話題,難免掛一漏萬,以后有機會,再慢慢補充,形成一整個關于學習的系列,

 

希望能夠幫到你,

 

 

 

1. 框架

 

不少讀者朋友問過我「剛剛入門一個領域,什么都不懂,怎么學?」我的回答永遠都是一樣的:

一定要先從搭框架開始,

什么叫搭框架呢?簡而言之,就是給你的大腦一個鋪墊,讓它準備好,告訴它:在未來的日子里,我們將會大量吸收這個領域的知識,請做好理解和儲存它們的準備,

 

舉個例子:當你撰寫一份策劃方案、報告時,你第一步是不是先有一個整體構思,列一個大綱:我先寫什么,然后寫什么,最后寫什么 —— 接下去才開始動手?

 

學習也是一樣的,如果缺少了框架,你所有獲取的知識,就只是碎片資訊而已,它們會孤零零地漂浮在記憶里,難以穩固存在,也難以被你所呼叫、組織、整合,

 

那么,如何搭建框架,令我們的學習更加體系化呢?

 

我建議的方法,是去搜尋這個領域相關的經典教材,大約3-5本,然后讀一遍 —— 無需一字不漏地精讀,這太花時間了,大致翻一遍、通讀一遍,就可以,

 

在這個程序中,你需要思考和回答這三個問題:

  • What:這個領域研究的物件是什么?有哪些主要流派和分支?有哪些常用的術語?
  • Why:這個領域存在的意義是什么?為了解決什么問題?現在進展到哪里?
  • How:這個領域的主要方法是什么?有哪些被廣泛承認和應用的基本成果?

 

舉個例子,很多讀者問「如何入門心理學」,我總會推薦幾本大部頭,像《心理學與生活》《社會心理學》《認知心理學》,很多人看到就會開始打退堂鼓:

「好幾百頁,什么時候才能看完,至少得看一年吧……」

 

其實你需要一頁頁把它們讀完嗎?當然不需要,也沒有必要,你先讀一下前兩章,對它們的起源有一個初步了解,再大致翻一下其他章節,了解心理學有哪些分支、分別研究什么、目前有了哪些主要成果;再著重看里面加粗的、或是章末拎出來的術語,大致理解它們的意思,就可以了,

 

再比如,學習哲學,你沒有必要一頁頁去翻完《大問題》《西方哲學導論》,你要做的是:整體通讀一遍,了解哲學的起源是人對自然的懷疑,主要關注的問題是本體論、認識論和倫理學,大體上可以劃分為古希臘哲學、經院哲學、近代哲學、現代哲學,每個階段都有什么特點 —— 比如近代哲學受文藝復興和啟蒙運動影響,思辨的核心從宗教轉變為人文,開始引入成熟的邏輯學、科學,開始變得多元化,等等 —— 就可以了,

 

這個階段,你要做的是什么呢?是博觀約取,在心里建立起一幅圖景,不要把自己局限在「作者的脈絡」里面,而是要以你心里的圖景為主,缺什么就補什么,

 

這在心理學上面,就叫做「圖式」(Schema),它是我們認知和理解事物的基礎,

 

比如:你翻完了一本書,知道哲學研究的一個問題是認識論,但你不清楚什么叫認識論,那就再翻到相關的部分多看幾遍,或是把書里所有提到認識論的內容整合起來,不必細究每個概念是什么意思、每個結論是怎么推出來的,知道它大概指什么即可,

 

這階段的首要任務,是把這幅圖景補全,一旦成功建立圖景,它在你未來的學習里,會起到舉足輕重的作用,

 

 

2. 概念

 

搭建完框架之后,你要做的,就是去把它精細化、補充完善,

 

在搭框架的程序里,你一定會碰到許多術語和概念,停留在「似懂非懂」的程度,很有可能存在偏差,那么,是時候把它們攻克掉了,

 

這個階段,你要采取的方法,就不僅僅局限在經典教材里面了,而是廣泛地搜索,

 

比如,學習哲學,你看到一個術語,叫「質料」,翻了一下,發現來自亞里士多德,但書里因為篇幅原因沒有詳述,那么,你就要自己去搜索這個術語,想辦法把它弄通、弄透,

 

比如,你可以去找亞里士多德的哲學導論、解讀,翻到相關的部分,去嘗試著理解它準確的內涵,可以找書,可以在網上搜索,可以看公開課……不拘泥于一切形式,

 

你要做的是:快速定位到你存在疑惑的概念,用盡可能多的資訊去攻克它,

 

在這個程序中,你多半又會碰到新的概念,那么,不妨繼續順藤摸瓜,循著「質料」出發,把相關的概念都納入進來,一起理解清楚,

 

很多朋友常見的困惑是:我怎么控制這個「度」呢?怎么避免自己不斷延伸、跳轉,陷入新的「概念海洋」里面?

 

我的建議就是:時時刻刻在心里自問一遍:「我是否能夠用自己的話把這個概念解釋清楚?」如果可以,并且不涉及新的概念,那就說明是時候停下來了,

 

比如:循著「質料」,你可能會看到「質料-形式」,跳到「四因說」……到這里就可以了,再繼續深入,就已經跟「質料」沒有太大關系了,

 

要時刻記住,自己出發的目的是什么,以目的為導向,給自己劃定「邊界」,

 

一旦你認為自己足夠理解了一個概念,就將它放回到框架里,試著用自己的話去解釋它,看是否通順、合理,如果是,那很好,繼續尋找下一個概念,以此類推,

 

慢慢的,當這些概念都弄通透了,你的整個框架,也就更加準確了,

 

 

3. 網路

到了這一步,你就算是正式開始入門了,

經過框架搭建和概念澄清,你會發現,之前看不懂的東西,似乎能夠大致理解了;之前想當然的地方,原來是自己的理解不夠準確;之前覺得模糊的問題,也似乎有了一些思路了,

 

那么,這個階段,就可以帶著下面這個問題,去閱讀、聽課、學習了,

 

什么問題呢?始終帶著「聯系」的思想,時時刻刻思考:我學到了一個什么知識點?它可以跟別的什么知識點聯系起來?如何構建這種聯系?

 

這才是學習的核心:知識的本質永遠不是資訊本身,而是資訊之間的聯系,

 

正是這種聯系,涌現出了超越單個資訊點總和的「系統性」,

 

如何思考「聯系」呢?我自己常用的方式,是把每個知識點看作一個「知識元」,它有三個突觸,分別是 what、why 和 how,

  • What:話題,結構,類別
  • Why:原理,原因,起源
  • How:應用,解釋,結果

 

舉個例子,你讀到笛卡爾的「我思故我在」,你發現,他是在解釋「自我」—— 那么,就可以把它跟「自我」聯系起來,

 

過了一段時間,你也許會讀到丹尼爾·丹內特的「多重草稿模型」,你會發現,他從腦科學的角度,提出了一種全新的「自我」觀念,那么,同樣把它跟「自我」聯系起來,

 

這時,你會發現,圍繞著「自我」,「我思故我在」和「多重草稿模型」產生了某種聯系,什么聯系呢?顯然,后者是在反駁前者,提出了一種非物體的、分布式的「自我」,那么,你就可以把這兩者,建立起一種新的聯系,

 

進一步,你還可以去思考:為什么他們的觀點會有這樣的差異呢?如果你把笛卡爾放回之前建立的「框架」里,不難從宗教和本體論去找到他思想的根基:他的身心二元論,本質上是一種對宗教和科學的調和 —— 那么,你又可以從 why 出發,去延伸下去,

 

同樣,關于丹尼爾·丹內特的理論,從 why 出發,又可以延伸到腦科學、認知科學……

 

像這樣,把浩瀚、繁多的概念節點組合起來,就能夠組成一張網路,一張覆寫了種種學科、領域,從底層和表層,巨細靡遺的龐大網路,

 

這就是你的知識體系,

 

 

4. 主題

 

在上面的例子中,如果我們把目光,聚焦到「自我」這個概念上,會怎么樣呢?

 

你也許會想到「我思故我在」,想到「多重草稿」,想到休謨的「自我不過是一連串印象的集合」……這些被你嵌入知識網路中的節點,會全部顯現出來,映入你的視野,

 

那么,你不妨去思考一下:圍繞著這個主題,這些不同的人、不同的觀點,能夠如何整合起來?

 

他們的發展脈絡是什么樣的?彼此之間是什么樣的關系?為何會產生這些差異點和共同點?

 

這就是「主題」—— 聚焦到我們龐大知識網路中的某個細節,去拎出一個「區域網路」,

 

像我在 大腦的漏洞:你是如何走向狹隘和頑固的? 中所寫的內容,「事實 → 結論 → 觀念 → 信念」這么一個程序,就是我知識網路中,圍繞著「偏見」這個主題,所構成的區域網路,

 

有哪本書直接提到這個程序嗎?有哪本書提出過「過度簡化」「孤立記憶」這兩個詞匯嗎?其實沒有,

 

它們并不是心理學中的固有知識,而是我圍繞著「偏見」這個核心,把所有會導致偏見的程序,進行提煉、總結、歸納,再賦予它一個名字,所得出的成果,

 

同樣,「證實偏差」和「資訊繭房」,是同一個領域的知識嗎?其實不是,前者屬于心理學,后者屬于傳播學,但沒有關系,在「偏見」這個主題下面,它們就是互相補充的,

 

這就是「主題」的力量,圍繞一個主題,你可以把一個復雜的、抽象的程序提煉出來,變成一個新的節點;你同樣可以把不同領域的知識點放到一起,按照它們內在的相似點和共性,去總結出一個新的、更高層次的結論,

 

打一個比方,如果說知識網路就像一棟房子,那么「主題」,就是你在這棟房子里面,可以進行的種種活動:聚會,作業,吃飯,看電影,等等,

 

這些種種主題,就構成了我們對世界的認知,

 

 

5. 遷移

 

終于說到了遷移,

 

如果說前四點,都屬于「知識的積累」;那么到這里,就正式進入了「知識的應用」,

 

什么叫遷移?它的意思其實就是:把舊的、已知的規律、模式,遷移到新的問題、情境上面,

 

這個階段,最重要的是什么呢?是理解和拆解外部情境的能力,

 

比如這個問題:博物館著火了,你應該救一幅名畫還是救一只貓?—— 當你看到這個問題時,就應該透過表象去思考它的實質:

 

這個問題的實質是什么呢?是一個兩難選擇,

兩難之處在哪里?一端是價值(名畫),一端是道德(生命),

 

那么,你或許就會發現:它的本質是什么呢?其實就是被說濫的「電車難題」的變體而已,

 

再進一步,當我們面臨道德和價值的兩難抉擇時,應該如何思考呢?我們不妨求助于倫理學,

 

倫理學有兩個觀點,分別是目的論和義務論,前者著眼于事物的「效用」和「價值」,后者著眼于行為的動機和行為本身,只要出發點是善的,行為就是善的,

 

那么很顯然,把倫理學的知識遷移過來,我們就會知道:這類兩難問題并不存在答案,但透過這類問題,我們可以做的是,反思自己的立場和觀念,

 

比如,你是一位功利主義者,那么不妨想一想:你真的能接受一條生命在你面前消失嗎?你是一位義務論者,那么不妨想一想,你的行為真的是發自內心的嗎?是否會受到外界的影響和干預?

 

當然,如果你用別的知識去遷移,那得出的可能又會是別的結論,

 

這就是一種遷移,具體來說,就是三步:

1)在前四步積累知識時,為知識預留出「介面」(參考第四點的 how 突觸)

2)遇到新情境、新問題時,通過對問題進行拆解,找出它背后的核心,

3)把問題核心跟「介面」做對比,利用已有的知識,去應用到新問題上面,

 

同樣,假如你在學習編程,那么,最重要的一步是什么?就是對你想實作的效果去「拆解」,把它們用計算機能夠理解的流程、模式,描述出來,再對應到自己積累的編程知識,去「呼叫」已有的知識來解決問題,

 

舉個例子,假如我想在一群人里做一個「一對一匹配」的小活動,可以如何來拆解這個問題呢?

 

不妨思考,它最終的目的是什么?是使到相似的人盡可能地匹配上,那如何讓電腦理解「相似」呢?我們知道,計算機是不理解語言的,它只能理解數字,所以,我們只能通過數字,來實作「相似」,

 

那么, 一個簡單的思路就是:我們事先定義出若干個分類,再讓參與活動的人做一個問卷,依據問卷結果,把他們分配到不同的分類里面(給每個人貼上一個1、2、3……的標簽),再在同一個分類里隨機選取,

 

進一步,你會發現,這其實跟推薦系統的演算法也是相似的,只不過推薦演算法的輸入,換成了各種各樣的用戶行為資料,以及演算法復雜了很多,

 

簡而言之,結合這幾個例子,我們有哪些進行「遷移」的方法呢?

 

1)類比,可以去思考,這個問題跟哪些舊的問題、我們已知的問題相似,可以進行模仿和類推,

2)黑箱,不妨把這個問題視為一個黑箱,去思考:它的輸入是什么,輸出是什么,

3)抽象,不妨去掉具體情境,試著把它泛化、抽象化,提煉出它的結構和骨架,思考,它本質上是一個什么樣的問題?

 

 

6. 模型

 

當你進入「遷移」的階段之后,下一步,就是不斷去練習,不斷去尋找和發現新的情境,練習拆解和遷移,

 

在這個程序中,你也許會慢慢發現:

許多新問題之間,其實是存在一些共性的,它們雖然不同,但都可以用同一套知識模式去遷移解決,

 

這時,你就創造出了一個「模型」,

 

這也是很多人缺乏的能力,他們或許知道怎么遷移,也不缺乏練習量,但缺的是,從解決問題的經驗中,進行高層次的總結歸納、抽象出「模型」的能力,

 

許多我們所說的「專家」和「聰明的人」,其實比我們厲害的,也正是這一點:他們的優勢并不在于知識量的儲備 —— 那些都是靜態的,他們的長處,是擁有大量的「模型」積累,

 

你會發現,面對一個新問題,他們總是能夠很快把它進行拆解,并呼叫相關的知識來解決 —— 這就是模型起到的作用,

 

比如,我在第5點舉的例子「救畫還是救貓」中,用到的措辭是「這類問題」 —— 這其實就是一種「模型」,

 

再比如,我在以前的文章里,提到過很多次「動力-阻力」模型,這個模型有哪一本書提到過嗎?其實沒有,它完全是我原創的,

 

但是,通過這個模型,我就可以把許多相關的知識濃縮起來,去處理一系列跟決策、行為、習慣、政策……等等相關的問題,更好地思考它們和解決它們,

 

我常常說,要努力去創造自己的方法論,模型就是自己的方法論,你所有的知識,都是這個世界上已有的、已知的,唯有這些通過你的經驗和實踐,所得來的濃縮的「模型」,才是真正專屬于你自己的財富,

 

你會發現,模型跟主題非常像,它們的區別是什么呢?主題是對內的,是你圍繞知識網路中某個節點所展開的一系列「解釋」;而模型是對外的,它是將主題遷移到一系列情境上面的結果,

 

簡而言之,模型的本質,就是主題+情境;主題聚焦于「為什么」,而模型聚焦于「怎么做」,

 

當你能夠打通前五層,并且從模型的角度看待新問題、解決新問題的時候,你就已經進入「專業」的領域了,

 

 

7. 更新

 

最后一層,是更新,

 

學無止境,一個框架搭建起來,一個知識網路構建起來,它始終是「過去」,但人類的知識是在不斷發展的,你必須時刻去更新它,去更新舊的節點,更新節點間的聯系,才能讓你的知識網路保持生命力,

 

如何更新呢?這里,就是碎片資訊的作用了,我會在生活中,去看各種各樣的網站、博客、雜志,看一些不長的、專注于某個點的文章,并用最新的結論和觀點,去覆寫和修正我的舊觀點,

 

同樣,在生活中,如果我的舊觀點受到挑戰和質疑,我也會去想辦法「尋找共識」,找到自己觀點的不足和殘缺點(正),把對方的觀點整合起來(反),以達到一個更高層次的「合」,

 

這就是一個不斷更新知識庫、不斷升級大腦作業系統的程序,

 

但很多人在這一層,也特別容易產生一個問題:封閉心態,

 

許多人會把不同的觀點,當成是對自己的攻擊,從而下意識地啟動防衛機制,來維護自己的正確、穩定,

 

(具體的機制,我在 大腦的漏洞:你是如何走向狹隘和頑固的? 寫得很清楚了)

 

記住:只有開放的心態,能夠讓我們保持生命力,

 

當你的內心變得封閉,當你關上了接納和共識的大門時,你才是真正地變「老」了,

 

 

最后,簡單提幾個大家常見的問題,

 

1)有些人可能會覺得「我好像沒有框架」,實際上,框架是一定存在的,你之所以覺得「沒有框架」,只不過是因為它沒有被你意識到而已,

 

但這樣一來,就很容易造成什么結果呢?框架不完整,不準確,支離破碎,從而導致,你對新知識的接收和儲存,也是破碎的,

 

所以,把自己的框架「顯式化」,也是一種非常重要的能力,

 

2)這套理論適用于絕大多數的學習,只不過對不同領域的學習而言,每一層次的比重會有所不同,

 

比如,偏理論型的知識領域(比如哲學、歷史、藝術),框架-概念-網路-主題的占比可能會重一些;而偏實踐、技能型的知識領域(比如編程),框架-概念、遷移-模型的比重就會大一些,

 

3)大多數人的問題是什么呢?被動學習,

 

什么意思呢?打開一本書,從頭看到尾,忙著去思考「作者講了什么」「書的結構是什么」,全盤照收;聽一門課,忙著把課程結構、脈絡梳理出來,然后去記憶和背誦……

 

這樣有用嗎?也許有,但不大,你只是在復制別人的思想而已,學再多,你也只是在復述,很難真正能夠「運用」,

 

不要覺得跟著別人走就是捷徑,學習沒有捷徑,

 

4)很多人在前幾層的時候會有困惑:可是,我怎么知道我搭的框架、理解的概念是否正確?萬一錯了呢?

 

其實不必過分擔心,一方面,框架的搭建、概念的理解并非源于臆測 —— 你是要查閱資料來攻克它們的,這一點可以保證不會出現方向性的偏差,

 

另一方面,這是一個穩健的系統,框架和概念共同組合,彼此作用,如果偏差過大,那么這個框架一定是有內在矛盾的,也很容易被我們所發現,

 

最后,無需追求100%的正確,這既不必要也不可能,關鍵是,要保持開放的心態,在后面的學習中,時刻去檢查和更新自己的知識,這就可以了,

 

我們要追求的,永遠不是「絕對正確」,而是「比過去的自己更好」,

 

 

最后,再回顧一下這張圖,

 

 

 

 

馬上就 2021年了,希望能為你新的一年,注入一些動力,

 

新的一年,一起加油,: )

如作者所說,學習編程需要先建立自己的知識體系,在學習的程序中也要結合書籍、課程來學習,而編程尤為注重實戰,但學校的教育少了工程師培養的部分,它只負責授課,并不負責工程師的培養,

那么,新手如何在學習編程語言的同時,也擁有一些實戰經驗,或是看到專案開發實踐題時有底氣呢?

 

如果你C/C++感興趣,想學編程,小編推薦一個C/C++技術交流群【點擊進入】!

涉及到了:編程入門、游戲編程、網路編程、Windows編程、Linux編程、Qt界面開發、黑客等等......

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242185.html

標籤:C

上一篇:C/C++編程日記:C語言遞回

下一篇:《明解C語言》PDF電子書籍

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more