你給初學編程者的建議有哪些?

永恆的珍珠紅

學習編程基本上有兩種情況,一種情況是處於愛好,另一種情況是工作需要,簡單的說就是業餘組和專業組的區別。不同情況的學習路線是完全不同的,下面分別進行闡述。


專業從事軟件開發的學習路線


計劃從事專業軟件開發的準程序員需要有一個系統的學習過程,給出以下學習建議:

  1. 首先要選擇一門編程語言,建議從Java、C、Python、PHP這幾門語言中選擇一個,這幾門語言是目前程序員廣泛使用的語言,具有大量的用戶群和豐富的解決方案。制定一個系統的學習計劃,以Java為例需要按順序掌握如下內容:Java基本語法、面向對象編程過程、Java操作數據庫、Java網絡編程、Java分佈式編程、Web編程、SpringMVC(框架可能需要多學一些)。

  2. 選擇一個數據庫產品深入學習,建議從Oracle、MySql兩個數據庫產品中選擇一個,原因有兩個:一個是與Java的兼容性好,另外一個原因是這兩個數據庫產品有廣泛的用戶基礎。制定一個系統的學習計劃,以MySql為例需要掌握如下內容:MySql安裝、建庫、數據類型、建表、查詢、排序、數據過濾、通配符和正則表達式的使用、數據處理函數的使用、數據分組、關聯表創建、組合查詢、數據插入、數據更新、數據刪除、創建和使用視圖、創建和使用存儲過程、遊標的使用、觸發器的使用、事務管理、安全管理、國際化、數據維護和優化。數據庫內容較多,作為程序員來說數據庫是必須掌握的重要內容,需要深入系統的學習。

  3. 選擇一個Linux系列操作系統,建議從CentOS、Ubuntu、Redhat三個產品中選擇一個,這三個版本的Linux有廣泛的用戶基礎和較好的性能。作為程序員無論使用C、Java還是Python或PHP基本上都需要跟Linux系統打交道,因為大部分程序後臺的部署和運行環境都是基於Linux系列操作系統,學習Linux系統對專業程序員來說是必修課。

  4. 有良好的數學基礎,建議學好線性代數、概率論與數理統計、離散數學(組合數學)、高等數學、算法導論(很重要)這幾門課程。程序開發問題說到底就是數學問題,簡單的說程序就是算法和數據結構的結合,把程序分解開無非就是代碼、算法、數據三個部分。所以掌握算法是掌握程序開發的核心環節,無論是做大數據、機器學習、雲計算還是物聯網、工業控制這些都離不開算法,所以專業程序員要有一個良好的數學基礎。

  5. 最後一個建議就是做大量的實驗,學程序設計離不開實驗,尤其是專業程序員更離不開大量的實驗。早期可以做一些小實驗來驗證一些概念和想法,後期要參加到實際的項目組中進行實習,只有接觸到了真實的需求才能有質的提高。

對要從事軟件開發的準程序員來說,系統的學習和實驗是必不可少的環節,程序員需要有較強的分析能力和學習能力。在學習的初期如果有專業程序員進行指導,會節省大量的時間,當然程序設計本身也是完全可以自學的。我在頭條上寫了很多關於java和python的學習文章,剛興趣的朋友可以一些交流。

業餘愛好編程者


愛好編程的朋友可能並不需要從事專業的軟件開發工作,所以在學習編程的過程中可以按照自己的興趣愛好進行選擇。對於這部分初學者建議有以下幾點:

  1. 語言的選擇上可以很寬泛,可以從HTML、JavaScript、Python、PHP等語言中進行選擇,因為這幾門語言比較簡單,學習時間短、上手快、環境搭建簡單但是功能卻很強大,比如Python雖然是一門腳本式語言,但是在機器學習和大數據領域有廣泛的應用,對於初學者來說它還足夠簡單和明確,所以是一個好選擇。當然,如果選擇別的語言,比如Java或者C語言也可以,只是學習時間上比較長。

  2. 不需要按步驟系統學習,可以直接學習案例,比如直接學習編程200例這樣類似的書籍,裡面的小例子很豐富,做起來也十分有趣。

  3. 不需要學習Linux系列系統,也不需要系統學習網絡和數據庫知識,甚至不需要有數學基礎。很多編程愛好者做的程序大部分是處於興趣愛好,對數據結構沒有嚴苛的要求,程序大多也是基於管理方面的內容,所以對數學等專業內容並沒有多少涉及。

  4. 要重視實驗,初學者在學習過程中一定要一邊學習,一邊實驗,作為愛好並不需要去專業團隊進行實習,也沒有必要找專門的老師進行指導,完全可以通過網絡或書籍進行自學。如果條件允許,也可以找專業程序員進行指導,這樣學習起來會更容易一些。

以上就是我給學習編程的初學者一些學習建議,如果大家有問題可以私信我,我會盡量回答大家的問題。

IT人劉俊明

十多年的編程生涯,有一些自己的理解,和大家分享一下:

認清這個行業

如果你學習編程,是想以後從事編程工作的話,你要清楚的認識到:

編程只是一個很普通的職業,就跟建築行業蓋房子一樣,有房地產開發商,也有設計房子的建築工程師,而更多的是底層動手蓋房子的。

編程也一樣,如果只會別人讓你幹啥你就幹啥,那麼敲代碼和搬磚的性質差不多。

還有大家都認為程序員的工資很高,和其他的行業一樣,高薪只屬於部分人,而很多程序員的工資都是被平均的。

在這個金字塔形的行業等級分佈裡,只有不斷的往上爬,才能獲得更高的回報。


如果你下決心選擇這個行業,請繼續往下看,當然如果你只是把編程當成興趣愛好,當然也可以往後看看。


一些建議

  • 打好基礎,有很多課程,感覺學起來沒有什麼用,比如計算機原理、數據結構等,看起來很編程沒有什麼關係,但是計算機學習是分層的,這些都是最下面的基礎課程,也相當於修煉的“內功”。

  • 選擇一門編程語言之後,要不斷地寫,不斷地練。總看書,是寫不出代碼的;總看視頻,也是寫不出代碼的。

  • 筆記很重要,要不斷完善自己的代碼倉庫。

  • 英文你可以不會聽、不會說,但是你必須會看英文文檔,這個不要怕,有個高中英文基礎足矣,多看看就熟練了,每天堅持看半個小時,有一個月就差不多了。

  • 眼光不要只侷限於身邊的同事,技術不要只侷限於公司的項目。

  • 有些事情必須不斷的練習,比如盲打(這個不擔心你們,基本每個人都在網上聊天的時候學會了盲打)、熟悉IDE快捷鍵等等。

  • 業務能力很重要,業務能力很重要,業務能力很重要;我當時就吃了這個虧啊。

  • 當你技術能力達到一定程度的時候,可以多開開主流開源框架的源碼。

  • 不要一門心思只搞編程,該吃吃該睡睡,多鍛鍊身體,該談戀愛就談戀愛。


希望我的回答能夠幫助到你!


會點代碼的大叔

如果是出於愛好,那麼可以通過愛好驅動。由淺入深的一步一步腳踏實地的學習。首先可以培養邏輯思維能力,這個可以在平時生活中刻意的去鍛鍊。然後根據需求選擇一門適合入門的語言進行學習,比如說python,並配合入門書籍進行基礎語法的學習和練習。掌握了基礎語法和語言特性後,可以開始學習數據結構和算法,配合著leetcode進行會有比較好的效果。最後就是自己做一些項目來鞏固學習和學以致用了。

如果是想把編程作為謀生手段,又想要儘快上手的話,那麼就找個相對比較靠譜的培訓機構進行培訓吧。不過培訓只是勉強帶你入門,以後在工作中還是要不斷的充實和完善自己的知識體系,數據結構是必不可少的,還有操作系統相關的知識。

無論是那種情況,都需要持之以恆的學習和進步。祝你在編程學習上天天有進步,早日成為大神。


落北117

作為一個過來人,真心給你幾點建議吧

1、興趣很重要

興趣才是最好的老師,我當時大一學習語言的成績可以說是班裡名列前茅的,就是憑著自己的極大興趣,以及自己課外的很大一部分時間,跑實驗室(學校一般都有開放性的實驗室),不斷寫代碼

2、筆記

你不可能記下所有老師講的知識點,好記性不如爛筆頭,筆記記了也不是用來擺設的,自己平時上課、業餘時間去實驗室寫程序時,都帶著

3、課堂任務百分百完成

老師的講課,需要自己全部消化掉,課上消化不了,課外消化(當然了,還得自己有興趣和學習慾望,才能有自己對課外時間的安排)。老師們一般也會高一些難度高一點的題目,可以拿著慢慢研究

4、編碼

最後一點也是最重要的一點,理論學的再多,不實踐下,也沒懶用。實踐才是檢驗真理的唯一標準。

多練才是王道,實踐出真知


分享到:


相關文章: