計(jì)算機(jī)編程入門 為什么說(shuō)不要學(xué)底層技術(shù)?底層技術(shù)是因?yàn)樘y還是太簡(jiǎn)單?
為什么說(shuō)不要學(xué)底層技術(shù)?底層技術(shù)是因?yàn)樘y還是太簡(jiǎn)單?最主要的是錢太慢了,你知道嗎?為什么計(jì)算機(jī)能夠識(shí)別計(jì)算編程語(yǔ)言,底層物理原理及邏輯是什么?他們的答案太復(fù)雜了。我將用一個(gè)簡(jiǎn)單的例子來(lái)解釋為什么計(jì)算
為什么說(shuō)不要學(xué)底層技術(shù)?底層技術(shù)是因?yàn)樘y還是太簡(jiǎn)單?
最主要的是錢太慢了,你知道嗎?
為什么計(jì)算機(jī)能夠識(shí)別計(jì)算編程語(yǔ)言,底層物理原理及邏輯是什么?
他們的答案太復(fù)雜了。我將用一個(gè)簡(jiǎn)單的例子來(lái)解釋為什么計(jì)算機(jī)可以識(shí)別用現(xiàn)代編程語(yǔ)言編寫的程序
!例如:小明講當(dāng)?shù)胤窖裕娔X本身),他不會(huì)也不懂普通話。如果你直接用自己的方言或普通話跟他說(shuō)話,他可能聽不懂!現(xiàn)在該怎么辦?你只能找懂他們方言的人把你的話翻譯給他。此時(shí),為您翻譯的人相當(dāng)于一個(gè)中級(jí)翻譯(計(jì)算機(jī)編程語(yǔ)言的編譯器級(jí)別)。你所說(shuō)的相當(dāng)于現(xiàn)代編程語(yǔ)言。只有經(jīng)過(guò)一個(gè)或多個(gè)人的翻譯,小明才能理解你的意思。在此期間,找到的轉(zhuǎn)換器越多,效率就越差(程序執(zhí)行效率就越差),找到的轉(zhuǎn)換器越少,效率就越高(程序執(zhí)行效率就越高)。
計(jì)算機(jī)底部只能識(shí)別0和1二進(jìn)制,現(xiàn)在編程語(yǔ)言最終將被翻譯成0和1,以便計(jì)算機(jī)執(zhí)行。
計(jì)算機(jī)軟件底層是什么?
這是操作系統(tǒng)。管理硬件,支持軟件運(yùn)行環(huán)境,提供人機(jī)交互界面。至于如何管理,則取決于操作系統(tǒng)的原理。操作系統(tǒng)(OS)是一種管理和控制計(jì)算機(jī)硬件和軟件資源的計(jì)算機(jī)程序。它是直接在“裸機(jī)”上運(yùn)行的最基本的系統(tǒng)軟件。操作系統(tǒng)必須支持任何其他軟件。操作系統(tǒng)不僅是用戶與計(jì)算機(jī)之間的接口,也是計(jì)算機(jī)硬件與其它軟件之間的接口。操作系統(tǒng)的功能包括管理計(jì)算機(jī)系統(tǒng)的硬件、軟件和數(shù)據(jù)資源,控制程序的運(yùn)行,改進(jìn)人機(jī)界面,為其他應(yīng)用軟件提供支持,充分發(fā)揮計(jì)算機(jī)系統(tǒng)的所有資源,提供多種形式的用戶界面,為用戶提供良好的工作環(huán)境,并為其他軟件的開發(fā)提供必要的服務(wù)和相關(guān)的服務(wù),系統(tǒng)的界面設(shè)計(jì)應(yīng)做到。實(shí)際上,用戶不需要聯(lián)系操作系統(tǒng),操作系統(tǒng)管理計(jì)算機(jī)硬件資源,并根據(jù)應(yīng)用程序的資源請(qǐng)求分配資源,如劃分CPU時(shí)間、打開內(nèi)存空間、調(diào)用打印機(jī)等。
計(jì)算機(jī)編程算法和數(shù)學(xué)有什么關(guān)系?
數(shù)學(xué)對(duì)于計(jì)算機(jī)算法編程非常重要。我將主要從以下兩個(gè)方面來(lái)解釋為什么它如此重要
數(shù)學(xué)和算法編程需要很強(qiáng)的邏輯思維能力。程序代碼的邏輯結(jié)構(gòu)、連接方式和處理方式需要較強(qiáng)的邏輯思維能力。如果你學(xué)好數(shù)學(xué),有很強(qiáng)的邏輯思維能力,你通常會(huì)對(duì)算法編程有更深的理解。
這應(yīng)該是為什么數(shù)學(xué)和算法編程更相關(guān)的一個(gè)重要原因。無(wú)論是計(jì)算機(jī)的底層還是底層,數(shù)學(xué)知識(shí)都處處體現(xiàn)。例如,計(jì)算機(jī)底層的二進(jìn)制、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的梯度求導(dǎo)、SVD分解、張量分解、PCA特征值、優(yōu)化問(wèn)題、密碼學(xué)的大數(shù)分解、概率圖模型等都與數(shù)學(xué)有著密切的關(guān)系。我舉兩個(gè)例子來(lái)實(shí)現(xiàn)
代碼實(shí)現(xiàn)如下
代碼比(float)(1.0/sqrt(x))快4倍,計(jì)算性能有了質(zhì)的飛躍。為此,專門有一篇論文《快速平方根逆》來(lái)解釋這段代碼的數(shù)學(xué)原理。感興趣的同學(xué)可以找這篇文章學(xué)習(xí)。
如果不直接使用數(shù)學(xué)知識(shí)和搜索,時(shí)間復(fù)雜度為O(n),效率較低,很難按照目前的計(jì)算機(jī)水平進(jìn)行計(jì)算。如果我們知道Brahmagupta–Fibonacci恒等式、Pollard-Rho分解法、二次同余方程的解、歐氏除法等數(shù)學(xué)知識(shí),那么求解這個(gè)問(wèn)題的時(shí)間復(fù)雜度就大大降低,結(jié)果保證在0.2秒之內(nèi)。
如果工作是算法崗位,數(shù)學(xué)更重要,因?yàn)闄C(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、NLP等方向的基本原理基本上都離不開數(shù)學(xué)。
計(jì)算機(jī)怎么入門?
如果初學(xué)者學(xué)習(xí)計(jì)算機(jī),他們應(yīng)該從計(jì)算機(jī)的基本知識(shí)開始。例如:[R
了解并熟悉計(jì)算機(jī)操作系統(tǒng)、計(jì)算機(jī)硬件基礎(chǔ)知識(shí)、辦公軟件(word、Excel、PPT)、鍵盤打字等,這些都比較簡(jiǎn)單易用。當(dāng)然,更深層次的是編程知識(shí),需要花時(shí)間和精力系統(tǒng)地學(xué)習(xí)
] [1]在學(xué)習(xí)電腦之前,你可以列一個(gè)清單,看看你想學(xué)什么,然后先把它錄下來(lái)。 ] ]鼠標(biāo)練習(xí)是第一步。拖動(dòng)、復(fù)制、粘貼、移動(dòng)等主要訓(xùn)練對(duì)鼠標(biāo)功能的理解,以及熟練程度。 ] [2]開始學(xué)習(xí)如何在鍵盤上輸入字母、拼音和漢字。下載并安裝“打字機(jī)”。練習(xí)鍵盤熟練程度等。你也可以通過(guò)玩某些鍵盤游戲來(lái)學(xué)習(xí)鍵盤。 ] ]第3條。在正式的學(xué)習(xí)文檔中,打字、畫表、畫圖、制作幻燈片都相對(duì)簡(jiǎn)單易學(xué),這是新手在學(xué)習(xí)計(jì)算機(jī)時(shí)必須學(xué)會(huì)的。學(xué)習(xí)這個(gè),你就可以處理文檔了。同時(shí)學(xué)習(xí)了解文件的屬性,如:大小、分辨率、大小等。 ] ]4、開始了解格式,并知道如何使用“格式工廠”等軟件重印格式。對(duì)格式的理解是非常重要的,這對(duì)以后的下載有很大的促進(jìn)作用。 ] [5]開始學(xué)習(xí)聊天、看電影、下載東西和瀏覽網(wǎng)頁(yè)。 ] ]6、學(xué)會(huì)通過(guò)百度搜索內(nèi)容、購(gòu)物、信息等。 ] [7]了解網(wǎng)站安全,知道如何殺毒。同時(shí),對(duì)于網(wǎng)絡(luò)知識(shí)做了一定的提高,讓自己知道如何上網(wǎng)最安全,如何上網(wǎng)最快等等。
8. 更先進(jìn)的計(jì)算機(jī)知識(shí)是lt編程。學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言,必須系統(tǒng)地學(xué)習(xí)。參加培訓(xùn)或找一個(gè)老手開始
!純手機(jī)打字,希望推薦高質(zhì)量的答案
程序員常說(shuō)的底層是指什么?
當(dāng)我們現(xiàn)在開發(fā)軟件時(shí),有許多種類的庫(kù)或組件可以被引用。這將提高軟件開發(fā)的效率,當(dāng)然也降低了開發(fā)的難度。
它通常指“本機(jī)開發(fā)”,即不使用或使用其他人封裝的較少代碼庫(kù)的軟件開發(fā)
!例如,對(duì)于Windows應(yīng)用程序的開發(fā),使用Visual C或C#,它們對(duì)系統(tǒng)的具體實(shí)現(xiàn)有很多封裝。對(duì)于開發(fā)人員來(lái)說(shuō),它是透明的,他們不知道它的具體實(shí)現(xiàn)過(guò)程是怎樣的。
但是如果使用Windows系統(tǒng)提供的原始API進(jìn)行開發(fā),則需要掌握系統(tǒng)的具體實(shí)現(xiàn)過(guò)程,了解其原理,才能進(jìn)行軟件開發(fā)。而這是提高一個(gè)人系統(tǒng)開發(fā)能力的最佳途徑
!因此,作為一名專業(yè)軟件開發(fā)人員,我們應(yīng)該從所謂的“底層”了解系統(tǒng)的工作原理。這樣,我們?cè)陂_發(fā)軟件時(shí),就可以利用它對(duì)代碼進(jìn)行改進(jìn)和優(yōu)化,提高軟件的效率和健壯性。而不是僅僅能夠?qū)崿F(xiàn)特定的功能,而不關(guān)心軟件的實(shí)現(xiàn)效率等問(wèn)題。
當(dāng)我們熟練地掌握這些“底層”原則時(shí),我們將在軟件開發(fā)過(guò)程中更加得心應(yīng)手。只有這樣,所開發(fā)的軟件才能更加健壯和可維護(hù)
!如果你認(rèn)為我的回答對(duì)你有幫助,請(qǐng)喜歡。謝謝您!