當前位置:首頁 » 自動清洗 » 0基礎怎樣快速學習編程
擴展閱讀
怎樣調整蘋果手機的截屏 2024-10-04 01:22:48
怎樣的魚比較好吃視頻 2024-10-04 01:14:58
怎樣拉頭發好看 2024-10-04 01:14:26

0基礎怎樣快速學習編程

發布時間: 2023-05-17 10:14:37

『壹』 計算機零基礎要怎麼學編程

首先你要先學會一種計算機桐汪語言,目前編程語言有很多,鉛坦但是有最基礎的三種C語言很C++和java,這三種是一個做軟體的必備基礎。其次也要根據你做哪方面的軟體槐輪桐,與網路有關的用到java比較多,與底層有關的用到C++比較多,java優點可以誇平台,c++的優點是速度塊,

『貳』 新手如何入門編程

首先,入門編程需要一個循序漸進的過程,需要先了解基本的編程語法,從解決基本的數學問題開始,進而展開編程語言的學習。

其次,入門編程要構建一個初步的編程思維。所謂的編程思維就是通過編程語言來解決問題的思路和方式,簡單的說就是一個抽象的過程。鍛煉編程思罩滾胡維一個最為有效的辦法就是完成大量的實驗,通過對於實驗的不斷總結從而形成自己的編程思路。所以,學習編程如果有捷徑的話,那麼就是不停地做實驗。

最後,入門編程需要有一個完整的知識結構,這個知識結構涉及到操作系統、計算機網路、資料庫、演算法設計和數據結構,在當前的大數據、雲計算時代背景下,還需要掌握大數據和雲計算的相關知識,尤其是IaaS和PaaS。這些知識完全可以在學習編程語言的過程中同時學習,這些內容的掌握程度對於編程能力會有較大的影響。

最後,目前編程語言比較多,對於基礎比較薄弱的初學者來說,可以從Python語言開始學起。

推薦教程:北京尚學堂Python400集,內容多並且系統。從入門開始,適合小白上手,有項目,不枯燥。老牌機構講師,專業並且干貨多。在他們的官網上或者B站上都有,可以去看看,評價不錯,是我目前看到的最值得推薦的教程。


跟對人,選對書!我是碼農阿勇,一個致力於分享編程知識的平台!


編程的話,是一種技能,理論上,和其它技能學習的方式都差不多,以練習為主,但注意的是,編程有個編程思維的東西,你得用這個思維去理解,否則,是入不了門的。

練習編程思維

這種感覺,就像是武俠小說裡面的任督二脈,編程思維會了之後,你就開始真正入門了,它就像你的地基,至於其它語言,都是在上面建房子而以。我記得大一剛入門編程時,全班半期考就一個人及格,就是因為編程思維,大家大腦轉不過彎。對了,如果你數學基礎好,這里是有加分的,如果基礎不好也沒關系,慢慢的,一邊編程,一邊也會提高你的數學能力。

現在網路比較發達,資料很多,你可以找幾篇編程思維的文章看下,語言不限。

選擇一門語言

我是二十年前上的大學,所以當初的入門語言物攔是C語言,如果你不是科班出身,我覺得就不要選C了,科班會教很多語言,我數了下,當年學了有不下七、八種語言,其實用的不多,有些也淘汰了。你可以選擇當下最熱的語言進行,個人建議Python,學習Python的話,即使你不是做編程工作,它也可以成為你的助手。

當然,如果你對Web開發比較感興趣,你也可以學習JavaScript。

學習的話,可以看書和上網查資料,但對於新手來說,直接看視頻是比較好的,基礎視頻基本是不用錢的,可以上慕課網,搜索些基礎視頻,一邊看視頻一邊寫代碼,記住,編程是個工程活,一定要寫代碼,不寫的話,看完就忘。

開始一個項目

語言學會後,不代表你會編程,你可能會寫幾行代碼,或者一些小工具,但要做項目,是需要掌握一個語言生態體系的,而生態體系,又需要找一個方向。

我這邊舉個Web方向的例子,你想做Web前端開發,你得知道

什麼是HTML、CSS、JavaScript

什麼是ES6、7等

什麼是NPM、Node.js

什麼是模塊化、什麼是組件化、什麼是函數式編程

什麼是React、什麼是Vue等等

當然,這些可以是你做完項目後知道的,也可以是你買本成體系的專業書籍知道的,是的,開始項目後,才開始你的成長之路,這時候,你得開始讀書了。如果你不喜歡讀書,那真的不適合編程了,編程真正上體現了什麼叫做終身學習。

如果你沒有比較好的項目,我建議,你如果學習JavsScript的Web方向編程,建議你做個Web版本的ToDO試下,一個比較簡單,但是可以涉及很多方面的項目,網上也有很多例子,你可以一邊做一邊學習。

如果是Python,我建議你先做爬蟲類的項目,自己做個電影站之類的工具,爬取一些數據,試驗下。

不斷的堅持

最後就是不斷的堅持了,你會碰到很多問題,這些問題,你一定得去Google和StackOverflow,然後經常翻一翻備襲Github上別人的一些代碼,基本上就開始成長之路。


先要了解編程是要干什麼。編程,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。

為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。

對於計算機來說,一切不過都是數字。那我們編寫代碼的目的其實就是告訴計算機兩件事,一是有哪些數,二是該怎麼算!因此程序的組成也就是兩個部分:數和數的組織方式,即數據結構,和運算的邏輯,即演算法。而所有的編程語言就是要把這兩個部分的內容表達好。

一個完整的編程語言,一般會包含如下內容:數據的聲明與類型、運算符與關鍵詞、3大語句(賦值、選擇、循環)、數據結構、方法、類等。其中數據的聲明與類型、數據結構是用於表達數和數的組織方式;剩餘的除了類以外則是表達運算的邏輯;而類是最特殊的,它既包含數據結構又包含運算邏輯。


有了以上對編程語言的整體了解了以後,就是逐個理解掌握相關的知識點。而這些知識點往往是一個拉一個,理解了一個後面那個也就好理解:

一切根源是數。數要分類型->類型,數要存儲->變數、常量,數之間有關系->數據結構,數要計算->運算符,數要按照規則計算->3大語句,計算規則要整理出來重復使用->方法,數與方法關系緊密要在一起->類、封裝,類與類之間有相似性->繼承,繼承的各子類有差異->多態,封裝、繼承、多態搞到一起->面向對象編程

我們要把握這些語言知識點之間的這種脈絡,知道他們因何而來,又會往哪裡去發展,最重要的是知道它們的出現是為了解決什麼問題。


在掌握語言的基礎上,還要學習如何運用計算機的資源。計算機資源是由各種平台進行封裝,以SDK的形式提供的。編程語言是一種表達的能力,而JDK、AndroidSDK等SDK則是資源的使用,也就是表達的內容。我們要分清語言與資源的區別,才能最終運用自如。學習其實就是一個學會分類的過程,知道哪是哪,知道分門別類,找起來才不會找錯。


在學習編程時往往會遇到一個難題:計算機專業相關的知識點非常多,看起來又高深莫測的樣子。要能夠掌握而且快速掌握大量的編程知識,我們要有一個干凈利落的切入角度。

我們首先要弄清楚一個問題:什麼是知識?知識就是解決問題辦法的總結。我們接觸到的所有知識都是為了解決某個問題才出現的,你知道了那個問題,明白了別人解決問題的思路,這個解決辦法也就掌握了。很多同學陷入知識的海洋弄得雲里霧里辨不清方向,就是因為不知道這些個知識是幹嘛用的,不知道它們是為解決什麼問題而出現的。而計算機技術里的很多知識更是這樣,為了解決問題而出現,出現就是一大串。你不知道它要解決什麼問題,就等著被繞暈吧。所以我們先要把編程中遇到的問題找出來,再理解這個問題是怎麼解決的,而這個解決的辦法就是所謂的「知識點」。因此要經常發出「靈魂三問」

這種學習的方法叫做「面向問題的學習方法」。用這種學習方法,在學習中接觸到新知識的時候,馬上意識到這是某種問題的解決辦法,並且從問題切入,相信很快就能把新知識理解並加以運用。


最後,也最根本的一條,編程的學習是拿來用的,也只有會用才能真正掌握語言,理解編程相關知識。想學編程的話,可以來看看我發布的零基礎學編程課程,學起來既簡單又很好玩喔。


傳統的教室培訓有許多好處,但它不適合持續學習的模式或當今IT人員繁忙的日程安排教室學習有時需要提前幾個月安排,具體取決於課程可用性和員工的工作重點而且,固定時間的小組培訓課程也不太可能是最適合你學習速度的理想之選課程的許多部分甚至可能與你在企業中的特定職業角色無關隨著業務和IT需求的快速變化,你是否能夠確保在教室培訓結束後馬上就能用到課堂上學到的知識?你是否需要在不久的將來刷新一些知識,例如在實施和升級之前或是在解決新出現的業務問題時?一次性教室學習的局限性使其非常不適合今天的許多IT專業人士數字化培訓正在迅速普及,因為它非常適合時間緊迫的IT人員,能夠滿足其持續學習的需求它可以讓您只在您需要的時候學習您需要的東西,無需參加整個課程或花時間前往異地按照您自己的節奏,根據需要隨時暫停和重復分段按照您自己的時間表,根據您的工作日歷將培訓分成幾天或幾周數字化學習的越來越顯著的優勢在於其地點上的靈活性你可以在自己的書桌前、員工培訓室或家庭辦公室中舒適地學習也許你經常外出,往返於業務地點或客戶項目現場?或者在日常通勤中學習?無論在哪裡學習,自考總是不建議的,誰試誰哭


我建議你可以選擇一門簡單的容易入門的語言python。頭條上一搜一大把入門視頻。可以幫你快速找到編程的樂趣和感覺。最重要的是建立你的自信心。

有了興趣和自信以後,如果還想深入和提高。就可以嘗試學習數據結構和演算法。頭條里也有很多視頻教程。這樣可以幫你步入專業。

之後你可以嘗試學習Java或者go。多學一門語言可以讓你有不同的體驗和認識。

之後你可以嘗試學習架構知識,閱讀DDIA。我正在分享閱讀這本書,挑戰的是英文版。你可以到我的主頁里看看。


想學編程,首先得選一門編程語言,常見的編程語言有:

c/c++,擅長性能,但是開發效率低

java,性能略差,但是開發效率較高,基礎庫非常完善,可用框架非常多。

python,性能差,但是開發效率高。常言道,人生苦短,我用Python就是因為這個。

js,主要用在前段,後端可以用但是很少。

php,主要用在後端。

go,主要用在後端,兼顧性能和開發效率。

dart,非常有競爭力的編程語言,flutter框架使用的語言,未來跨平台領域大有可為

Kotlin,goole力挺的替代java開發androidapp的編程語言。

還有很多。

根據自己的需求,選擇一門,然後學習基礎語法,基本用熟練,然後就可以嘗試一些簡單的項目了,這個時候一定要多閱讀別人的代碼,學習別人的數據結構的設計,語法的運用之類的,同時也要自己多動手練習。做出來幾個簡單項目後,你的自信心會大增,興趣也會更加盎然。接著就可以嘗試稍微復雜點的項目,實現自己設想的一些idea了。

如果你選擇在工作中提升,切記:工作可能會讓你失去編程的樂趣。但是,記住,這不是編程發生了變化,而是壓力、質疑、辛苦等讓它失去了樂趣。希望你能堅持下去,終能撥開雲霧,進入新的更高的境界。


PS、AI是UI設計師必不可少的兩項技能,對於想要學習UI設計的人來說,首先就是要學會使用PS和AI。如何才能快速學會這兩樣呢?下面,千鋒UI設計培訓就給大家分享20天學會UI設計(PS+AI)入門教程。

課程介紹

本套課程主要講解了PS的工具使用,介紹了蒙版,通道,濾鏡,圖層樣式和圖層混合模式等的基礎和應用案例。重點講解了AI的基礎使用方法,並結合AI軟體講解了如何進行品牌形象設計。

學完課程可以讓你熟練使用PS,掌握人像修圖,高級摳圖,圖像合成,海報製作,輕質感圖標製作等。熟練使用AI軟體,並能掌握logo設計、名片設計、單頁、折頁、易拉寶等設計,掌握VIS手冊的組成及設計製作。

課程目錄

第1章PS

1.初識Adobe

2.PS的版本迭代

3.PS入門介紹和用途

04PS界面及工作區介紹

05PS首選項設置

06文件的新建與打開

07文件的存儲和格式

08圖層的認識

09圖層的分類及功能

10PS軟體的基本操作

11移動工具的基本使用

12圖層的對齊

13圖層的分布對齊

14選框工具及選區的加減運算

15選框與填色的綜合使用

16選區的羽化

17套索和多邊形套索工具

18磁性套索工具

19魔棒工具的使用

20快速選擇工具

21選擇並遮住-細化毛發

22摳頭發

23PS的色彩范圍

24裁剪工具

25透視裁剪工具

26切片及切片選擇工具

27圖框工具

28畫筆工具

29畫筆面板

30定義畫筆預設和載入畫筆

31顏色替換工具

32橡皮擦工具

33背景橡皮擦

34魔術橡皮擦工具

35污點修復畫筆工具

36修復畫筆工具

37修補工具

38內容感知移動工具

39紅眼工具

40仿製圖章工具

41圖案圖章工具

42歷史記錄畫筆工具

43漸變工具

44油漆桶工具

45鋼筆工具的基礎使用

46形狀工具的基礎使用

47形狀工具的應用

48布爾運算應用

49布爾運算應用2

50文字工具

51字元和段落面板

52路徑文字

53模糊與銳化工具

54塗抹工具

55加深減淡工具

56海綿工具

57圖層蒙版

58剪貼蒙版的應用

59蒙版的應用

60圖層蒙版的應用-加倒影

61色相飽和度

62色彩平衡

63可選顏色

64色階

65曲線

66通道

67通道應用-摳頭發

68表面模糊濾鏡

69高斯模糊濾鏡

70動感模糊濾鏡

71徑向模糊濾鏡

72扭曲-波紋

73扭曲-極坐標

74扭曲-球面化

75風格化-風

76風格化-凸出

77液化

78液化-瘦臉

79高反差保留磨皮

80圖層樣式(一)

81圖層樣式(二)

82圖層樣式(三)

83圖層樣式(四)

84圖層樣式(五)

85溶解模式

86去亮、去暗型原理解析

87去亮型應用案例

88去暗型應用

89疊加和柔光模式

90圖層混合模式應用(一)

91圖層混合模式應用(二)

92什麼是AI

93界面分布和功能介紹

94新建文檔

95打開文件

96存儲文件

97AI的基礎操作

98填色與描邊

99矩形工具組

100選擇工具與直接選擇工具

101卡通形象繪制

102魔棒與套索工具

103鋼筆工具組

104剪刀與刻刀工具

105文字工具

106直線工具組

107畫筆工具組

108旋轉與鏡像工具

109摩天輪插畫製作

110形狀生成器

111形狀生成器的應用

112形狀生成器應用(二)

113實時上色工具

114實時上色工具的應用

115漸變工具

116混合工具

117混合工具的應用

118漸變與混合工具的應用

119路徑查找器(一)

120路徑查找器(二)

121路徑查找器的應用

122AI綜合應用-MBE風格圖標

123綜合應用-logo圖標的製作

124綜合應用-炫彩字製作

125綜合應用-2.5D字體

126綜合應用-偏移路徑

127綜合應用-圓形切圖形

128綜合應用-剪切蒙版製作紋理背景

129綜合應用-網格工具製作漸變背景

130綜合應用-符號

131綜合應用-飛出的粒子

132綜合應用-流光星球

133綜合應用-炫彩漸變線條

134AI夜景插畫-背景打造

135AI夜景插畫-樹木製作

136AI夜景插畫-樹木製作(二)

137AI夜景插畫-月亮和螢火蟲製作

138AI夜景插畫-麋鹿製作

139AI夜景插畫-葉子製作

140什麼是字體

141字體設計的重要性與方法

142字體的性格

143基礎造字法

144矩形造字法

145鋼筆造字法

146幾何元素法

147筆畫減細法

148形象替代法

149筆畫的簡化

150了解LOGO設計

151LOGO設計創意手法

152首字母創意手法

153首字母創意手法(二)

154具象手法

155徽章設計手法

156徽章設計手法(二)

157名片設計規范

158名片設計排版設計

159名片設計(一)

160名片設計(二)

161名片設計(三)

162名片設計(四)

163什麼是DM單頁

164DM單頁製作規范

165DM單頁頁頭設計

166DM單頁排版設計

167DM單頁頁頭設計

168宣傳單頁設計(二)

169三折頁設計規范

170三折頁設計(一)

171折頁設計(二)

172折頁設計(三)

173折頁設計(四)

174易拉寶設計規范

175易拉寶設計(一)

176易拉寶設計(二)

177企業VIS

178基礎識別系統

179應用設計系統


編程是個很廣泛的詞吧,編程其實是有很多語言的,如果不看語言的話,大致也可以分為前端與後端(註:其實編程不只是前端和後端,但是新手入門的話,建議還是從前後端會比較容易點,之後就會牽扯到框架等復雜的技術)。前端是指Web頁面(網站頁面)或app等前端界面,後端就是負責實現前端的功能業務,將前端需要的數據返回給前端顯示或做出反應。

新手編程入門可以從這幾點出發:

1.知道自己想要做什麼編程(前端或後端);

2.知道是前端還是後端之後,還要知道想要先從什麼語言入手。前端的話,建議可以先從HTML+CSS入手,後端的話,建議可以從C#入手,這只是本人的建議,並不是絕對的;

3.知道了自己想從哪個語言入手的話,就可以上官網查看文檔,看demo,如果還是不明白的話,就可以上網去搜索該語言的入門視頻,現在網路教程都是很詳細的;

4.編程入門之後就可以嘗試去實現下自己想的頁面或功能,這會增強自己的信心。

編程語言其實是有共通性的,如果你做到後面的話,就會發現學習其它語言就會快很多了,新手入門,不要急,慢慢來,堅持就會有收獲的。


剛開始學習編程語言,要怎麼去做,動手編寫一個編譯器,學習一下較為底層的編程方式,是一種學習計算機到底是如何工作的非常有效方法。編譯器通常被看作是十分復雜的工程。事實上,編寫一個產品級的編譯器也確實是一個龐大的任務。但是寫一個小巧可用的編譯器卻不是這么困難。踏出了編程入門教程第一步,接下去怎麼做就全看自己了。可以按照文章所指導的全部做一遍,然後製作一個更加復雜的編譯器。需要去寫一個更加精巧的語法樹來生成匯編代碼。接下去的幾步分別是:(1)允許返回任意的值(比如,return3;一些可執行代碼);(2)添加對「非」的支持(比如,return~1;一些可執行代碼)。每一個額外的特性都可以教你關於C語言的更多知識,編譯器到底是怎麼執行的,以及世界上其他編寫編譯器的人是如何想的。這是構建babyc的方法。Babyc現在已經擁有了if語句,循環,變數以及最基礎的數據結構。下面給大家展示一下國內最權威的.net訓練營學習路線圖:


『叄』 如何零基礎自學編程

零基礎小白學編程的方法如下:

1、對於初學者來說,可以採用視頻+書籍的方式進行學習。這兩種方式形成互補關系。編程教學視頻可以讓你迅速掌握編程,但通常比較生動、淺顯,不成系統。而書本是比較系統,深入,但是枯燥,所以最好的方法是書和視頻結合。

2、入門期遇到難題,耗了半天時間還是沒弄懂,可以暫時跳過,知識積累到一定程度,回頭再進行解決你會發現簡單多了。

3、反復練習,編程是一門手藝,需要反復練習,脫離書局派慶本和視頻看是否能獨立實桐握現?學到最後的境界無非就是:我亦無他,惟手熟爾。

『肆』 如何從零開始學編程


在你學習編程之前思考一下你的目標,當你有最終目標時道路會更加的清晰。那麼,你想要寫什麼?網站?游戲?iOS或者Android應用?或是你是想自動化完成一些乏味的任務讓你有更多的時間看窗外的風景?也許你只是想更具有就業競爭力找個好工作。所有的這些都是有價值的目標,這些目標都是你編程學習推動力的一部分,沒有推動力的人,是無法在略顯枯燥的漫長學習之旅中走遠的。


不要浮躁

Badprogrammingiseasy.EvenDummiescanlearnitin21days.,meswithit.

不管是在線下還是線上的書店,滿目都是《21天學通Java》這種速成書目,它們都承諾在很短一段時間內就讓你能夠學會相關技術。MatthiasFelleisen在他的著作HowtoDesignPrograms,SecondEdition一書中明確指出了這種「速成」的趨勢並予以了以上的諷刺。

所謂的「捷徑」或者說「銀彈」是不存在的,智者說過,精通某個東西需要10年或10000個小時,也就是漢語中的「十年磨一劍」,所以不用著急,功不唐捐。

培養興趣

ionbythepublic,butbecauseitisfuntoprogram.

_LinusTorvalds

沉醉於編程,編程更是為了興趣。興趣是推動力的不竭源泉,保持這種充滿興趣的感覺,以便於你能將其投入到你的10年/10000小時的編程時間中。編程很有趣,那是探索的喜悅。那是創造的喜悅。看到自己親手完成的作品顯示在屏幕上很有趣。有人為你的代碼而驚嘆很有趣。有人在公共場合稱贊你的產品、鄰居使用你的產品、以及在媒體上討論你的產品很有趣。編程應該十分有趣,若並非如此,就找出導致編程無趣的問題,然後解決之。

在這里對於初學者有兩個大坑:

如果初學者們只與預先構建好的「發動機和組件」接觸(沒有理解和思考它們構造的原理),這會嚴重限制他們在將來構建這些東西的能力,並且在診斷解決問題時無從下手。

第二個坑沒有第一個那麼明顯:幼稚的「整體論」方法有些時候會顯得很有效,這有一定的隱蔽性與誤導性,但是一兩年過後(也許沒那麼長),當你在學習路上走遠時,再想回過頭來「補足基礎」會有巨大的心理障礙,你得拋棄之前自己狹隘的觀念,耐心地緩步前進,這比你初學時學習基礎知識困難得多。

但臘敏茄也不能矯枉過正,陷入還原論的大坑,初學時便一心試圖做宏大的理論,這樣不僅有一切流於理論的危險,枯燥和乏味還會讓你失去推動力。這種情況經常發生在計算機科班生身上。

為了更好理解,可以將學習編程類比為學習廚藝:你為了燒得一手好菜買了一些關於菜譜的書,如果你只是想為家人做菜,這會是一個不錯的主意,你重復菜譜上的步驟也能做出不賴的菜餚,但是如果你有更大的野心,真的想在朋友面前露一手,做一些獨一無二的美味佳餚,甚至成為「大廚」,你必須理解這些菜譜背後大師的想法,理解其中的理論,而不僅僅是一味地實踐。但拿猛是如果你每天唯一的工作就是閱讀那些厚重的理論書籍,因為缺乏實踐,你只會成為一個糟糕的廚子,甚至永遠成為不了廚子,因為看了幾天書後你就因為枯燥放棄了廚藝的學習。

總之,編程是連接理論與實踐的紐帶,是計算機科學與計算機應用技術相交融的領域。正確的編程學習方法應該是:通過自頂而下的探索與項目實踐,獲得編程直覺與推動力;從自底向上的打基礎過程中,獲得最重要的通用方法並鞏固編程思想的理解。

作為初學者,應以後者為主,前者為輪察輔。

啟蒙

「學編程應該學哪門語言?」這經常是初學者問的第一個問題,但這是一個錯誤的問題,你最先考慮的問題應該是「哪些東西構成了編程學習的基礎」?

編程知識的金字塔底部有三個關鍵的部分:

演算法思想:例如怎樣找出一組數中最大的那個數?首先你得有一個maxSoFar變數,之後對於每個數

語法:我怎樣用某種編程語言表達這些演算法,讓計算機能夠理解。

系統基礎:為什麼while(1)時線程永遠無法結束?為什麼int*foo(){intx=0;return&x;}是不可行的?

啟蒙階段的初學者若選擇C語言作為第一門語言會很困難並且枯燥,這是因為他們被迫要同時學習這三個部分,在能做出東西前要花費很多時間。

因此,為了盡量最小化「語法」與「系統基礎」這兩部分,建議使用Python作為學習的第一門語言,雖然Python對初學者很友好,但這並不意味著它只是一個「玩具」,在大型項目中你也能見到它強大而靈活的身影。熟悉Python後,學習C語言是便是一個不錯的選擇了:學習C語言會幫助你以靠近底層的視角思考問題,並且在後期幫助你理解操作系統層級的一些原理,如果你只想成為一個普通(平庸)的開發者你可以不學習它。

下面給出了一個可供參考的啟蒙階段導引,完成後你會在頭腦中構建起一個整體框架,幫助你進行自頂向下的探索。

完成Codecademy的Python部分。這只是熱身部分,盡快完成它,因為你永遠只是在瀏覽器里,你不會學到如何搭建開發環境。在Codecademy這類的編程學習網站學到的那點兒東西,哪怕你只想做一個小的不能再小的項目,你都不知道該從哪兒開始。

完成MIT6.00.1x(中文化)(如果你英語不過關,完成麻省理工學院公開課:計算機科學及編程導論。MOOC是學習編程的一個有效途徑。雖然該課程的教學語言為Python,但作為一門優秀的導論課,它強調學習計算機科學領域里的重要概念和範式,而不僅僅是教你特定的語言。如果你不是科班生,這能讓你在自學時開闊眼界;課程內容:計算概念,python編程語言,一些簡單的數據結構與演算法,測試與調試。支線任務:

完成Python核心編程

完成HarvardCS50(如果你英語不過關:完成哈佛大學公開課:計算機科學cs50。同樣是導論課,但這門課與MIT的導論課互補。教學語言涉及C,PHP,JavaScript+SQL,HTML+CSS,內容的廣度與深度十分合理,還能夠了解到最新的一些科技成果,可以很好激發學習計算機的興趣。支線任務:

閱讀《編碼的奧秘》

完成《C語言編程》

[可選]如果你的目標是成為一名Hacker:閱讀Hacker'sDelight

PS:如果教育對象還是一個孩子,以下的資源會很有幫助:

5-8歲:TurtleAcademy

8-12歲:PythonforKids

12歲以上:MITScratch或KhanAcademy

入門

結束啟蒙階段後,初學者積累了一定的代碼量,對編程也有了一定的了解。這時你可能想去學一門具體的技術,諸如Web開發,Android開發,iOS開發什麼的,你可以去嘗試做一些盡可能簡單的東西,給自己一些正反饋,補充自己的推動力。但記住別深入,這些技術有無數的細節,將來會有時間去學習;同樣的,這時候也別過於深入特定的框架和語言,現在是學習計算機科學通用基礎知識的時候,不要試圖去抄近路直接學你現在想學的東西,這是註定會失敗的。

那麼入門階段具體該做些什麼呢?這時候你需要做的是反思自己曾經寫過的程序,去思考程序為什麼(Why)要這樣設計?,思考怎樣(How)寫出更好的程序?試圖去探尋理解編程的本質:利用計算機解決問題。

設想:

X=用於思考解決方案的時間,即「解決問題」部分

Y=用於實現代碼的時間,即「利用計算機」部分」

編程能力=F(X,Y)(X>Y)

要想提高編程能力,就得優化X,Y與函數F(X,Y),很少有書的內容能同時著重集中在這三點上,但有一本書做到了——(SICP)《計算機程序的構造和解釋》,它為你指明了這三個變數的方向。在閱讀SICP之前,你也許能通過調用幾個函數解決一個簡單問題。但閱讀完SICP之後,你會學會如何將問題抽象並且分解,從而處理更復雜更龐大的問題,這是編程能力巨大的飛躍,這會在本質上改變你思考問題以及用代碼解決問題的方式。此外,SICP的教學語言為Scheme,可以讓你初步了解函數式編程。更重要的是,他的語法十分簡單,你可以很快學會它,從而把更多的時間用於學習書中的編程思想以及復雜問題的解決之道上。

PeterNorvig曾經寫過一篇非常精彩的SICP書評,其中有這樣一段:

Touseananalogy,ifSICPwereaboutautomobiles,,howtheyarebuilt,andhowonemightdesignfuel-efficient,safe,.highway,justlikeeveryoneelse.

如果你是文中的前者,閱讀SICP將成為你銜接啟蒙與入門階段的關鍵點

雖然SICP是一本「入門書」,但對於初學者還是有一定的難度,以下是一些十分有用的輔助資源:

):由上文提到的Google研究主管PeterNorvig主講,教學語言為Python,內容有一定難度。

HowtoDesignPrograms,SecondEdition:HtDP的起點比SICP低,書中的內容循循善誘,對初學者很友好,如果覺得完成SICP過於困難,可以考慮先讀一讀HtDP。

UCBerkeleySICP授課視頻以及SICP的兩位作者給Hewlett-Packard公司員工培訓時的錄像(中文化項目)

ComposingPrograms:一個繼承了SICP思想但使用Python作為教學語言的編程導論(其中包含了一些小項目)

SICP解題集:對於書後的習題,作為初學者應盡力並量力完成。

完成了這部分學習後,你會逐步建立起一個自己的程序設計模型,你的腦子里不再是一團亂麻,你會意識到記住庫和語法並不會教你如何解決編程問題,接下來要學些什麼,在你心裡也會明朗了很多。這時候才是真正開始進行項目實踐,補充推動力的好時機。

關於項目實踐:對於入門階段的初學者,參與開源項目還為時過早,這時候應該開始一些簡單的項目,諸如搭建一個網站並維護它,或是編寫一個小游戲再不斷進行擴展,如果你自己的想法不明確,MegaProjectList中選取項目。總之,務必在這時拿下你項目實踐的第一滴血。

與此同時,別忘了繼續打好根基。為了將來的厚積薄發,在下面這幾個方面你還要繼續做足功課(注意:下面的內容沒有絕對意義上的先後順序):

計算機系統基礎

有了之前程序設計的基礎後,想更加深入地把握計算機科學的脈絡,不妨看看這本書:《深入理解計算機系統》ComputerSystemsAProgrammer'sPerspective。這里點名批評這本書的中譯名,其實根本談不上什麼深入啦,這本書只是CMU的「計算機系統導論」的教材而已。CMU的計算機科學專業相對較偏軟體,該書就是從一個程序員的視角觀察計算機系統,以「程序在計算機中如何執行」為主線,全面闡述計算機系統內部實現的諸多細節。

如果你看書覺得有些枯燥的話,可以跟一門Coursera上的MOOC:TheHardware/SoftwareInterface,這門課的內容是CSAPP的一個子集,但是最經典的實驗部分都移植過來了。同時,可以看看TheCProgrammingLanguage,回顧一下C語言的知識。

完成這本書後,你會具備堅實的系統基礎,也具有了學習操作系統,編譯器,計算機網路等內容的先決條件。當學習更高級的系統內容時,翻閱一下此書的相應章節,同時編程實現其中的例子,一定會對書本上的理論具有更加感性的認識,真正做到經手的代碼,從上層設計到底層實現都瞭然於胸,並能在腦中回放數據在網路->內存->緩存->CPU的流向。

此外,也是時候去接觸UNIX哲學了:KISS-KeepitSimple,Stupid.在實踐中,這意味著你要開始熟悉命令行界面,配置文件。並且在開發中逐漸脫離之前使用的IDE,學會使用Vim或Emacs(或者最好兩者都去嘗試)。

閱讀《UNIX編程環境》

閱讀《UNIX編程藝術》

折騰你的UN*X系統

數據結構與演算法基礎

如今,很多人認為編程(特別是做web開發)的主要部分就是使用別人的代碼,能夠用清晰簡明的方式表達自己的想法比掌握硬核的數學與演算法技巧重要的多,數據結構排序函數二分搜索這不都內置了嗎?工作中永遠用不到,學演算法有啥用啊?這種扛著實用主義大旗的「碼農」思想當然不可取。沒有扎實的理論背景,遭遇瓶頸是遲早的事。

數據結構和演算法是配套的,入門階段你應該掌握的主要內容應該是:這個問題用什麼演算法和數據結構能更快解決。這就要求你對常見的數據結構和演算法了熟於心,你不一定要敲代碼,用紙手寫流程是更快的方式。對你不懂的數據結構和演算法,你要去搜它主要拿來幹嘛的,使用場景是什麼。

供你參考的學習資源:

《演算法導論》:有人說別把這本書當入門書,這本書本來就不是入門書嘛,雖說書名是IntroctiontoAlgorithms,這只不過是因為作者不想把這本書與其他書搞重名罷了。當然,也不是沒辦法拿此書入門,讀第一遍的時候跳過習題和證明就行了嘛,如果還覺得心虛先看看這本《數據結構與演算法分析》

CourseraAlgorithms:DesignandAnalysis[Part1]&[Part2]:Stanford開的演算法課,不限定語言,兩個部分跟下來演算法基礎基本就有了;英語沒過關的:麻省理工學院公開課:演算法導論

入門階段還要注意培養使用常規演算法解決小規模問題的能力,結合前文的SICP部分可以讀讀這幾本書:《編程珠璣》,《程序設計實踐》

編程語言基礎

.,.Additionally,,

-ThePragmaticProgrammer

此外還要知道,學習第n門編程語言的難度是第(n-1)門的一半,所以盡量去嘗試不同的編程語言與編程範式,若你跟尋了前文的指引,你已經接觸了:「干凈」的腳本語言Python,傳統的命令式語言C,以及浪漫的函數式語言Scheme/Racket三個好朋友。但僅僅是接觸遠遠不夠,你還需要不斷繼續加深與他們的友誼,並嘗試結交新朋友,美而雅的Ruby小姑娘,Hindley-Milner語言家族的掌中寶Haskell都是不錯的選擇。但有這么一位你躲不開的,必須得認識的大夥伴—C++,你得做好與他深交的准備:

入門:C++Primer

[可選]進階:

高效使用:EffectiveC++

深入了解:《深度探索C++對象模型》;C++Templates

研究反思:TheDesignandEvolutionofC++;對於C++這個NecessaryEvil,看這本書可以讓你選擇是成為守夜人還是守日人。

現實是殘酷的,在軟體工程領域仍舊充斥著一些狂熱者,他們只掌握著一種編程語言,也只想掌握一種語言,他們認為自己掌握的這門語言是最好的,其他異端都是傻X。這種人也不是無葯可救,有一種很簡單的治療方法:讓他們寫一個編譯器。要想真正理解編程語言,你必須親自實現一個。現在是入門階段,不要求你去上一門編譯器課程,但要求你能至少實現一個簡單的解釋器。

供你參考的學習資源:

《程序設計語言-實踐之路》:CMU編程語言原理的教材,程序語言入門書,現在就可以看,會極大擴展你的眼界,拉開你與普通人的差距。

Coursera編程語言MOOC:課堂上你能接觸到極端FP(函數式)的SML,中性偏FP的Racket,以及極端OOP(面向對象)的Ruby,並學會問題的FP分解vsOOP分解、ML的模式匹配、Lisp宏、不變性與可變性、解釋器的實現原理等,讓你在將來學習新語言時更加輕松並寫出更好的程序。

:熱熱身,教你寫一個簡單的瀏覽器——其實就是一個javascript和html的解釋器,完成後的成品還是很有趣的;接下來,試著完成一個之前在SICP部分提到過的項目:用Python寫一個SchemeInterpreter

其他

編程入門階段比較容易忽視的幾點:

學好英語:英語是你獲取高質量學習資源的主要工具,但在入門階段,所看的那些翻譯書信息損耗也沒那麼嚴重,以你自己情況權衡吧。此外英語的重要性更體現在溝通交流上,LinusTorvalds一個芬蘭人,一口流利的英語一直是他招募開發者為Linux幹活的的法寶,這是你的榜樣。

學會提問:學習中肯定會遇到問題,首先應該學會搜索引擎的「高級搜索」,當單靠檢索無法解決問題時,去StackOverflow或知乎提問,提問前讀讀這篇文章:Whathaveyoutried?

不要做一匹獨狼:嘗試搭建一個像這樣簡單的個人網站,不要只是一個孤零零的About頁面,去學習Markdown與LaTeX,試著在Blog上記錄自己的想法,並訂閱自己喜歡的編程類博客。推薦幾個供你參考:JoelonSoftware,PeterNorvig,CodingHorror

小結

以上的內容你不應該感到懼怕,編程的入門不是幾個星期就能完成的小項目。期間你還會遇到無數的困難,當你碰壁時試著嘗試「費曼」技巧:將難點分而化之,切成小知識塊,再逐個對付,之後通過向別人清楚地解說來檢驗自己是否真的理解。當然,依舊會有你解決不了的問題,這時候不要強迫自己——很多時候當你之後回過頭來再看這個問題時,一切豁然開朗。

此外不要局限與上文提到的那些材料,還有一些值得在入門階段以及將來的提升階段反復閱讀的書籍。ThePragmaticProgrammer就是這樣一本程序員入門書,終極書。有人稱這本書為代碼小全:從DRY到KISS,從做人到做程序員,這本書教給了你一切,你所需的只是遵循書上的指導。

後記

如果你能設法完成以上的所有任務,恭喜你,你已經真正實現了編程入門。這意味著你在之後更深入的學習中,不會畏懼那些學習新語言的任務,不會畏懼那些「復雜」的API,更不會畏懼學習具體的技術,甚至感覺很容易。當然,為了掌握這些東西你依舊需要大量的練習,腰還是會疼,走路還是會費勁,一口氣也上不了5樓。但我能保證你會在思想上有巨大的轉變,獲得極大的自信,看老師同學和csdn的眼光會變得非常微妙,雖然只是完成了編程入門,但已經成為了程序員精神世界的高富帥。不,我說錯了,即使是高富帥也不會有強力精神力,他也會懷疑自己,覺得自己沒錢就什麼都不是了。但總之,你遵循指南好好看書,那就會體驗「會當凌絕頂」的感覺。


首先要想學編程,選一門合適的計算機語言就十分重要了,怎麼去選擇就顯得尤為重要了,這要根據自己的興趣愛好及每個語言的特性來選擇,比如說PHP適合做web開發,易學習,易上手,非常流行的一門計算機語言了,我個人比較推薦php語言。

java可以做web開發,做安卓app開發也用的是java,在學習程度上上可能比php稍微難上手一點,不過也是沒問題的,如果對java感興趣可以嘗試一下。

python是目前比較火的一門語言了,比較適合做人工智慧領域,另外寫網路爬蟲類的程序,用python也是非常合適的了,看個人興趣來選擇了。

c,c++,c#這些語言就不推薦給了,特別是c#,已經是比較過時的一門語言了,即使學習好了,也不太適合去找工作,c與c++並不是十分適合初學者來學習,因此也是沒必要進行考慮了,還有一些更小眾的語言,更是沒有必要去考慮,因此關於語言的學習就從上面3種語言去選擇一門自己所感興趣的吧!

研發搭建環境

如果選擇好計算機語言,那麼接下來就是研發環境的搭建了,因為只有研發環境搭建好了,才可以進行後續的編程工作,比如說PHP,那麼就從網路上搜一下如何安裝PHP環境,能搜出一些簡單的教程,初學者按照教程一步一步來,頂多半天時間就可以把研發環境裝好了,如果是java,就需要先安裝jdk,進行環境變數的配置等,網上也有相關的教程,也是十分容易的,相信大家只要按照教程來做,都可以很輕易的把研發環境搭建起來的

選好視頻和書籍,輔助學習。既然是零基礎學習,就需要進行系統的學習,而不是到處網路零基礎的知識點進行學習。

代碼練習

跟隨教程一個一個章節的進行學習,需要注意的一點就是不能只是去看,那樣不行,要對每一個章節的知識點要親自用代碼敲一遍,運行一下試試效果才行,這樣才能提高自己的動手能力,才開始會覺得有一點生疏,慢慢的就會熟練起來,逐漸會增加編程的興趣。這個過程就是需要反復的進行練習,大量的代碼練習才行。這個過程是5步中最關鍵的階段了,重在代碼親自練習,對編程中有的章節不明白的地方,千萬不要放過去,可以在網上找一些相關的編程交流群,參加進去,在線上咨詢一些過來人,也許就可以輕松幫你解決疑問了,對你的學習十分幫助,並且整個過程也都是免費的。

項目實戰

如果說基礎教程都按部就班的都實踐過一遍了,那麼你就有一定的編程的基本功了,那麼自己就可以嘗試著做一些小項目,把學到的知識給串起來,進入項目實戰階段,比如說自己設計一個學生管理系統,並把它完成,如果不了解怎麼設計,可以去網上搜索。慢慢就有思路了。

我也在學習這方面,視頻書籍看過不少,最推薦的還是北京尚學堂的學習資料,Java.300集,Python400集,都是很經典的入門基礎教程,而且是結合項目學習的,很有意思,干貨滿滿,還都是免費的,推薦你可以去看看,相信可以帶你走進變成的世界。


從零開始學編程,第一關就是要選擇你所要學習的編程語言。面對著琳琅滿目的編程語言,初學者常常一籌莫展,拿不定主意,不知該選哪

『伍』 完全零基礎者,如何正確學習編程

零基礎學習編程,如果是培訓是3到6個月,自學的話就是看書籍和視頻教程,自學的時間就難以衡量了。建議多看看編程唯吵技術方向,因為編程語言很多,崗位有Web前端、Java等,需要做一個詳細的了解,看自己適合學習哪個方向。

如果沒有專業基礎,屬於轉行建議學習前端,門檻低,而java的招聘要求可能更高一點,另外可以選擇跟自己專業結合的技術方向發展。

可以自學和參加培訓,看書籍和視有頻教程,會讓你有個基本的了解。WEB前端門檻低,適合大部分人學習,JAVA相對難度大些,但是也要看個人學習能力和理解能力以及努力的程度。

Java培訓首先要根據自己的專業基礎、編程思維等各方面去考慮。

自學

想自學的童鞋,可以先想下:「對於自學,你的控制力如何?你顫山悄的理解能力怎麼樣?是否能在遇到困難時還會堅持學習,不放棄?

自學優勢:不用繳上萬的學費,資金投入低,學習時間自由。

劣勢:1.難堅持,大多數童鞋自製力不強,學著學就放棄了。

2.一個人學習沒有學習氛圍,遇到難題沒有老師給你解決。

3.沒茄渣有實戰經驗,即使通過視頻或者書本學到了很多理論知識

但沒有實戰經驗,即使去面試面對面試官也只是紙上談兵。

4.自學很難有系統的知識體系,掌握不了企業的最新技術,辛苦

學出來後面試時很容易屢屢碰壁。

5.學習周期長,可能需要一年半載。

培訓

優勢:1.學習時間短,4-6個月就可以學成。

2.知識體系更系統全面,學的都是企業需要的最新技術。

3.擁有學習氛圍和專業技術老師,更容易堅持下來,學有所成。

4.擁有實戰項目,就業率高。

5.培訓機構提供大量合作企業,畢業後薪資待遇高。

『陸』 零基礎如何快速學習編程

對於很多人來說,零基礎學習是非常困難的,春毀橋並且沒有基礎容易出現走錯路,讓自己學習起來更加困難。零基礎學習編程,首先是要找到自己喜歡的領域。做好編程的理解的整體學習規劃,具有濃厚的興趣對學習編程有很大的幫助。下面天通苑電腦培訓為大家介紹快速學習編程的方法。


一、找到自己感興趣的領域

無論學習任何編程語言,你必須通過了解編程語言來清楚的認識到自己想要做什麼樣的工作。這將幫助您確定您未來追求的編程方向,並提供良好的發展。

二、選擇學習的編程語言

零基礎學習編程語言對語言的選擇是非常關鍵的,其中JSP、C語言和Java語言是使用最多的,應用廣泛,簡單易學好上手。如果覺得這幾種語言還是比較難,那麼天通苑IT培訓建議還可以選擇HTML語言,這種語言使用廣泛,對於初學者來說是非常簡單的一種語言。HTML語言能夠廣泛的使用到web開發中,所以在學扒猛習HTML語言的同時,還需要掌握更加的語言知識。

三、檢查語法

所謂語法,就是為了能夠理解編譯程序和解釋權而編寫語言的方法。各種語言雖然有獨自的句法,但是有幾個要素有可能在不同的語言中被共享。學習語法學習怎樣的檢查語法是很重要余仔的。天通苑IT培訓發現在現實中,它是基於更高級的概念構築的基礎。

四、每天敲代碼

學習一種語言最重要的是花費很多時間。即使是這種單純的語言,為了理解基本的語法,必須花費一兩天的時間,實際上精通起來可能會花費更多的時間。天通苑電腦培訓認為和其他技巧一樣,練習需要更精緻的鑰匙。工作後或晚飯前的一小時,盡量每天花時間進行代碼練習。