国产99福利精品视频|杨幂精品国产福利在线|国精品午夜福利视频不卡|欧美精品黄网站在线播放|精品国产乱码久久久久久久|国产大片中文字幕在线观看|国产肥熟女视频一区二区三区|国产乱码无码视频一区二区三区

編程是什么?我要學嗎?

來源:長沙北大青鳥大計校區(qū)|發(fā)布時間:2016-11-03 11:35:52

 很多人覺得編程是很高端神秘的事情,覺得自己可能學不來。但是了解到程序員的工資比較高,所以又蠢蠢欲動,想進入這個領域。那么,在回答這個問題前,我們先了解一下什么是編程吧。

什么是編程

編程,也叫程序設計,其實就是用編程語言處理數(shù)據(jù),以達到你想要的效果。有一本書的名字很清楚地表達了這個觀點。

Algorithms + Data Structures = Programs

算法 + 數(shù)據(jù)結(jié)構(gòu) = 程序

什么是數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)其實就是數(shù)據(jù)存儲的方式。我們不妨用下面幾個生活中的例子來理解。

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

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

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

疊在一起的箱子,最開始放置的肯定是最下面的那個,然后一箱一箱往上壘。要拿出來的時候,當然是先拿最上面的,最下面的最后才拿。這種結(jié)構(gòu)就是棧。棧的特點是先進后出。

· 電腦的文件夾

文件夾可以包含有子文件夾和文件,子文件夾又可以再包含下一層的文件夾和文件。這個結(jié)構(gòu)可以理解為樹型結(jié)構(gòu)。文件是樹的葉子節(jié)點,子文件夾可以是樹的分支,也可以是葉子。樹的特點是分支和層級關系。

什么是算法

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

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

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

在電腦里是怎樣的?

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

從上面可以看到,同樣的數(shù)據(jù),可以按照不同的結(jié)構(gòu)來存放。不同的處理邏輯/算法,效率不同。所以,從這種角度來看,學習編程和程序設計,是學會抽象,學會如何把現(xiàn)實問題,在計算機里面表現(xiàn)出來。還有數(shù)據(jù)處理。

從另一種角度來看,編程和程序設計,就像寫作。從上面第一段順序取數(shù)據(jù)的代碼看,我就像寫作一樣。我在用計算機能理解的語言,寫操作指引出來。一個好的程序員,寫的代碼,一定像好文章那樣容易理解。不同的語言,指令有點不同,但差不太遠。所以學會一種語言,再學一種難度就沒那么大。

應該不應該學習編程

其實編程和程序設計并不難,尤其是當你能把它和實際問題結(jié)合,理解。回到最開始的問題,我應該學編程嗎?首先,問問你自己,你學編程的目的是什么?

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

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

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

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

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

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

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.

怎么開始?

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

從問題出發(fā)

你想解決什么問題?處理什么數(shù)據(jù)?最后達到什么效果?從事哪個領域?

比如說,如果你要處理 Excel,做各式各樣的報表。或者要從固定格式的 Excel 里面抽取數(shù)據(jù)。那你可能只要學習 VBA 就可以了,或者用 JAVA。因為 Excel 這種企業(yè)級的東西,你用回微軟自家的語言會方便些。企業(yè)級的 JAVA 語言也是不錯的選擇,因為已經(jīng)有很多寫好的工具,你學會拿來用就可以了。但是如果你非要選 Node.js 和 JavaScript 來處理,就真有點作死。

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

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

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

如何起步

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

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

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

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

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

最后,無論有沒有老師,學編程最重要就是:模仿,模仿,模仿;練習,練習,練習

 

上一篇:IT行業(yè)的未來,或者說,IT能走多遠?
下一篇:自學編程成功率有多大?

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學校地址: 長沙市天心區(qū)團結(jié)路6號

Copyright © 2006 | 湖南大計信息科技有限公司 版權(quán)所有

湘ICP備14017520號-3

關注我們
在線咨詢
嘿,我來幫您!