欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
編程是什么?我要學(xué)嗎?
     
  閱讀時(shí)間
  5 分鐘

    ▲


很多人覺(jué)得編程是很高端神秘的事情,覺(jué)得自己可能學(xué)不來(lái)。但是了解到程序員的工資比較高,所以又蠢蠢欲動(dòng),想進(jìn)入這個(gè)領(lǐng)域。那么,在回答這個(gè)問(wèn)題前,我們先了解一下什么是編程吧。

什么是編程

編程,也叫程序設計,其實(shí)就是用編程語(yǔ)言處理數據,以達到你想要的效果。有一本書(shū)的名字很清楚地表達了這個(gè)觀(guān)點(diǎn)。

Algorithms + Data Structures = Programs

算法 + 數據結構 = 程序

什么是數據結構

數據結構其實(shí)就是數據存儲的方式。我們不妨用下面幾個(gè)生活中的例子來(lái)理解。

  • 地鐵站X光機上的一件件行李

行李是排成一排,按順序進(jìn)入 X 光機處理的。排最前面的,先處理。最后進(jìn)的,最后處理。如果把行李看作是數據,這種數據結構其實(shí)是隊列。隊列的特點(diǎn)是先進(jìn)先出。

  • 超市里疊在一起的一箱箱牛奶

疊在一起的箱子,最開(kāi)始放置的肯定是最下面的那個(gè),然后一箱一箱往上壘。要拿出來(lái)的時(shí)候,當然是先拿最上面的,最下面的最后才拿。這種結構就是棧。棧的特點(diǎn)是先進(jìn)后出。

  • 電腦的文件夾

文件夾可以包含有子文件夾和文件,子文件夾又可以再包含下一層的文件夾和文件。這個(gè)結構可以理解為樹(shù)型結構。文件是樹(shù)的葉子節點(diǎn),子文件夾可以是樹(shù)的分支,也可以是葉子。樹(shù)的特點(diǎn)是分支和層級關(guān)系。

什么是算法

算法就是對數據進(jìn)行處理的方法。

從數據層面看,結構不同一般需要不同的處理方式。從處理效率看,對同一種數據結構,也可以有多種不同的處理方式。有些算法,可能要處理的數據量越大,時(shí)間就會(huì )成倍增加。有些卻無(wú)論數據多大,時(shí)間都基本恒定。舉一個(gè)例子:

假設你買(mǎi)了一個(gè)圓柱型的水果軟糖,里面有 9 粒糖果。如果它的包裝開(kāi)口是在某一邊,你需要拿第 5 粒,那么你就必須先把前面 4 粒拿出來(lái),才能拿到第 5 粒。而且你想拿的糖果越在后面,花費時(shí)間就越多。但是,假設有一種包裝是橫著(zhù)把圓柱形打開(kāi)(結構不同了),你一次可以看到和拿到 9 粒糖果。那么無(wú)論你拿哪一粒,花費的時(shí)間都是一樣的。

在電腦里是怎樣的?

假設我把上面的糖果問(wèn)題抽象到計算機里面,是什么樣子的呢?下面用一段 JavaScript 代碼來(lái)模擬吧。(懂編程的朋友,別吐槽順序取的代碼,我知道可以按位置,這里只是說(shuō)明一下。)

 function showMeTheCandy(candy) {    console.log(candy)  }  // 排成列,順序取  var candy = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'] // 我有9粒字母糖果  var toPickCandyLocation = 5 // 我要取的糖果是第5粒  var currentCandyLocation = 1 // 現在我要開(kāi)始取的是第1粒  var candyPicked = null // 我取的糖果要放這,但現在還不存在  while (currentCandyLocation <= 5)="" {="" 當我要取的糖果還不是第5粒的話(huà),重復下面的事情=""  =""  candypicked="candy.shift()" 從最前面取1粒=""  =""  currentcandylocation="currentCandyLocation" +="" 1="" 挪到下一個(gè)位置=""  }=""  showmethecandy(candypicked)="" 看看拿到的糖果是什么字母=""  //="" -=""> 'E'  // 做成特定的,可按位置/編號取的結構  var candy = {    '1': 'A',    '2': 'B',    '3': 'C',    '4': 'D',    '5': 'E',    '6': 'F',    '7': 'G',    '8': 'H',    '9': 'I',  }  showMeTheCandy(candy['9'])  // -> 'E'

從上面可以看到,同樣的數據,可以按照不同的結構來(lái)存放。不同的處理邏輯/算法,效率不同。所以,從這種角度來(lái)看,學(xué)習編程和程序設計,是學(xué)會(huì )抽象,學(xué)會(huì )如何把現實(shí)問(wèn)題,在計算機里面表現出來(lái)。還有數據處理。

從另一種角度來(lái)看,編程和程序設計,就像寫(xiě)作。從上面第一段順序取數據的代碼看,我就像寫(xiě)作一樣。我在用計算機能理解的語(yǔ)言,寫(xiě)操作指引出來(lái)。一個(gè)好的程序員,寫(xiě)的代碼,一定像好文章那樣容易理解。不同的語(yǔ)言,指令有點(diǎn)不同,但差不太遠。所以學(xué)會(huì )一種語(yǔ)言,再學(xué)一種難度就沒(méi)那么大。

應該不應該學(xué)習編程

其實(shí)編程和程序設計并不難,尤其是當你能把它和實(shí)際問(wèn)題結合,理解?;氐阶铋_(kāi)始的問(wèn)題,我應該學(xué)編程嗎?首先,問(wèn)問(wèn)你自己,你學(xué)編程的目的是什么?

  1. 你覺(jué)得通過(guò)指尖敲擊的指令,就能創(chuàng )造無(wú)限可能,這實(shí)在是太酷了。  —  你絕對應該學(xué)習。

  2. 你目前遇到些繁瑣而重復的事情,想看一下計算機能否代勞。  —  你應該嘗試。

  3. 你想找一份工資相對高的工作,不用搬搬抬抬,還能在辦公室吹空調。  —  這也是不錯的選擇。

  4. 你想學(xué)到一種編程語(yǔ)言讓你當金飯碗用,拿高工資。  —  早早死了心算了。

計算機應該是變化越來(lái)越快的領(lǐng)域,雖說(shuō)有不少語(yǔ)言誕生的時(shí)間已經(jīng)幾十年,但是它們也是持續演化的。說(shuō)不準你剛學(xué)會(huì )沒(méi)多久的東西,兩三年后就沒(méi)什么人用了,就像現在的前端框架。所以,如果你想把程序設計作為你的職業(yè),請做好長(cháng)期持續學(xué)習的準備。

但是,即便你不需要把它當作職業(yè),我認為,多少具備一些編程的能力,讓計算機輔助你解決問(wèn)題,提升思考方式和效率,真的非常有好處。送上 Linus 大神的話(huà):

Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

怎么開(kāi)始?

如果你已經(jīng)下定決心要學(xué)習程序開(kāi)發(fā)。那怎么開(kāi)始?

從問(wèn)題出發(fā)

你想解決什么問(wèn)題?處理什么數據?最后達到什么效果?從事哪個(gè)領(lǐng)域?

比如說(shuō),如果你要處理 Excel,做各式各樣的報表?;蛘咭獜墓潭ǜ袷降?Excel 里面抽取數據。那你可能只要學(xué)習 VBA 就可以了,或者用 JAVA。因為 Excel 這種企業(yè)級的東西,你用回微軟自家的語(yǔ)言會(huì )方便些。企業(yè)級的 JAVA 語(yǔ)言也是不錯的選擇,因為已經(jīng)有很多寫(xiě)好的工具,你學(xué)會(huì )拿來(lái)用就可以了。但是如果你非要選 Node.js 和 JavaScript 來(lái)處理,就真有點(diǎn)作死。

還有,很多人想學(xué)數據分析,一上來(lái)就學(xué)什么 Spark, Hadoop,搞大數據,但我覺(jué)得那是不對的。只學(xué)會(huì )搭建工具環(huán)境,卻不會(huì )數據分析的基礎,難道不是本末倒置嗎?況且,工具和框架更新?lián)Q代比語(yǔ)言變化得還快,一年后說(shuō)不定又換新了。

數據分析最主要的是有數據思維,基本的統計學(xué)知識和數據分析的能力。如果你用 Excel, SQL 就能挖掘出數據里面的商業(yè)價(jià)值,看到別人看不到的規律,那就牛了。當然你還可以學(xué)習 Python 或者 R 這種最基礎的數據分析領(lǐng)域的語(yǔ)言,因為它們提供豐富的數據分析算法和展示工具,讓數據分析工作更簡(jiǎn)單。所以,我覺(jué)得只有真的具備一定的基礎,而且數據真的大到一定程度,你才需要去用那些大數據的處理工具。

Web Application 開(kāi)發(fā)領(lǐng)域,無(wú)論前端后端,我覺(jué)得肯定要學(xué)的是 JavaScript, HTML, CSS。如果你打算在前端發(fā)展,不管你是打算用 jQuery, AngularJS,React 或者 VueJS 也好,原生 JavaScript 都是基礎。即便你想從事后端,擁有基本的前端知識,可以讓你方便和前端溝通合作。后端的語(yǔ)言選擇相對較多,一般是 Ruby, Node.js, Python,PHP, Java。Java 在傳統企業(yè)領(lǐng)域用的比較多,初創(chuàng )公司一般選其它的來(lái)起步。Go, Rust, Clojure 比較新,用的人相對少一些。

如何起步

現在互聯(lián)網(wǎng)如此發(fā)達,書(shū),視頻,在線(xiàn)教育和練習編程開(kāi)發(fā)的資源都相當得多,對于一個(gè)稍微有點(diǎn)編程經(jīng)驗的人來(lái)說(shuō)。自學(xué)應該完全不是問(wèn)題,不愁沒(méi)有資源。但是,對于一個(gè)完全是自學(xué)起步,沒(méi)有任何編程背景的人來(lái)說(shuō),最好找一個(gè)靠譜的師傅來(lái)指引起步。

首先,從上面說(shuō)的問(wèn)題出發(fā),新手是不可能有答案的。即便在論壇上提問(wèn),用什么語(yǔ)言,什么建議都會(huì )有。你可要知道程序員最喜歡討論什么語(yǔ)言,什么框架好。所以有個(gè)笑話(huà)說(shuō),你想讓程序員們吵起來(lái),只要在里面喊一句,XXX 語(yǔ)言是最好的語(yǔ)言就可以了。

其次,開(kāi)始學(xué)習編程開(kāi)發(fā)遇到的最大的障礙是搭建環(huán)境。很多新手都是在最開(kāi)始的時(shí)候就遇到各種環(huán)境問(wèn)題,導致完全無(wú)法跟教程練手,挫敗感太強而放棄。所以,如果有人在身邊指導,至少先把搭建環(huán)境這關(guān)過(guò)了,后面會(huì )順暢很多。

再說(shuō),一個(gè)有經(jīng)驗的靠譜的老師,還可以告訴你學(xué)習使用某一種語(yǔ)言的最少必要知識,不至于讓你迷失在太多技術(shù)細節中,真的可以事半功倍。

如果確實(shí)身邊和網(wǎng)絡(luò )上找不到這樣的朋友,老師,又不舍得花錢(qián)去培訓班,要如何降低遇到障礙的可能性和提高問(wèn)題解決效率呢?最好選擇 Mac 來(lái)開(kāi)發(fā),學(xué)會(huì )如何使用 Google和正確提問(wèn)。

最后,無(wú)論有沒(méi)有老師,學(xué)編程最重要就是:模仿,模仿,模仿;練習,練習,練習。


    ▲


作者簡(jiǎn)介:

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
單片機C語(yǔ)言編程應注意的若干問(wèn)題
小學(xué)生開(kāi)始學(xué)Python,最接近AI的編程語(yǔ)言:安利一波Python書(shū)單
【免費贈書(shū)】2018年最新Python書(shū)單
抽獎 | 精選好書(shū)15本,愛(ài)學(xué)習的人都有好運
自學(xué)的c語(yǔ)言有完整版的嗎?
C語(yǔ)言篇····怎么學(xué)習C程序設計
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久