程序是對現實世界的模仿,它可以完成生活中有固定邏輯的重復性動作,程序員的作用就是把現實轉換為代碼,讓代碼借助計算機強大的計算能力去代替人類完成某些事情,所有說程序員需要具備較強的邏輯分析能力和計算機軟硬件知識。下面就個人學習歷程總結下成為程序員入門需要學習什么和怎么學?
1.基礎能力。基礎能力指思維邏輯能力,包括對現實世界一件事情的理解能力,對事情發展的推理能力。比如,以前去銀行面對面辦銀行卡和現在在手機app上辦卡,作為程序員,你要寫這段辦卡的程序,首先你要知道現實中辦卡的步驟和遇到各種問題的處理,然后你才能轉換為程序代碼,你要具備推理能力,想到各種異常情況得處理,申請人提交的信息不一致程序要怎么處理,程序出錯要怎么展示給申請人等。這種能力需要自己去鍛煉和有意識的培養,多觀察、思考生活,無法通過具體某門課程短期去提高。
2.專業能力。程序員需要掌握專業的編程知識才能寫出被計算機識別的可運行的程序。可以學習計算機相關課程:計算機系統結構、編譯原理、計算方法、面向對象方法、計算機英語、算法與數據結構、計算機網絡基礎、計算機編譯原理、計算機數據庫原理等,這些是基礎并通用的編程知識。這些的學習可以通過學校課程,自己網上購買教學視頻和書籍資料學習。
3.具體的一門編程語言。編程語言是讓計算機可識別的代碼。目前主流的,工作需求量大的編程語言有java 、C/C++、Python、JavaScript等。不同的語言就像不同的工具,有它擅長的領域,可以根據自己的興趣和想從事的領域來選擇。比如,Java 可以用于網站后臺開發、Android 開發,完成邏輯處理;Python在數據分析、人工智能、云計算等領域更常用;JavaScript 多用于網站前端開發,制作酷炫的頁面等。編程語言的學習需要系統化學習和大量的實機練習學習,就是要動手去編程,寫代碼。我建議可以報一個學習班學習,或者網上一些編程網站學習。
4.具體的一個行業或者領域的業務知識。程序是為了解決生活中的問題的,所以學會編程語言本身只是一半,當你真正要編程時一定是有具體現實背景的,要結合現實場景,比如開頭提到的銀行辦卡,那么你就需要銀行業務知識;再比如開發醫院管理系統,你起碼得對就診流程,醫院常見科室有了解吧。這部分可以在你具體的工作中邊工作邊學習。
總之,程序員入門,學習的東西挺多,作為初學者當務之急是了解并進入編程的世界,轉換自己思維,學會用程序的角度去抽象現實生活,通過學習具體的計算機編程課程加速這種轉換,同時掌握一門編程語言。你可以先什么都不考慮,就選擇一門當前招聘熱門的編程語言開始學習它的語法,等你掌握了一條主線,在運用這門語言時遇到的問題就會倒逼著你去學習它周邊的知識,使你的知識面越來越大、越清晰,就不會有一開始迷茫,面對五花八門編程課程不知如何選擇的困惑。
本人從事IT行業,對于編程也有較深的了解!有一些建議僅供參考!
首先自學編程是可行的,但是有一定的難度。
現在編程語言非常多,你需要先選擇一個方向。就目前市場的占有量來說JAVA,Python,JavaScript是份額很大的,就業范圍也很廣,當然了還有其他的如C++,C,PHP等也有很大的份額!主要是介紹一下JAVA,JavaScript,Python。以及他們難易程度和就業方向!
JAVA是目前運用最廣泛的語言,現在很多東西都是用它寫的,好的JAVA開發工程師待遇也是非常高的,是一個很不錯的方向。不過這幾年開始逐漸淡出。但是在未來十幾年的時間里它的地位還是不可撼動的!不過學起來是比較難的!不太容易上手,對零基礎的是一個不小的挑戰!
JavaScript是前端的核心語言,如果說HTML是前端的骨架,CSS是前端的肌肉和衣服,那么JavaScript則是前端的靈魂,有這個靈魂整個網頁才能動力起來,炫酷起來,并和用戶進行交互!這幾年JavaScript的江湖地位一直在上升,很多時候都排在了第一位!不僅如此,現在數據可視化也是離不開js的!甚至很多BI工具,自動化測試都會用到js。學習難度也沒有JAVA大,待遇有時候會比JAVA低一些。
最后就是Python,目前最火的語言。火的主要原因是它能夠運用于大數據和人工智能這兩個領域!由于它有很多強大的包,所以非常適合做大數據分析,數據科學,和人工智能的機器學習,深度學習等領域!Python被稱為膠水語言,語法簡單,功能強大,非常容易學。很適合初學者!由于大數據和人工智能的在未來的運用,Python將會越來越收歡迎,前景也會越來越好!
最后就是對于初學者來說,一定要多敲代碼。不要看著會就行了。不然你關上電腦就什么都不會了!打擊學習的積極性。可能會半途而廢!所以每一步都要跟著寫出來!這個很重要!
C語言+數據結構
C語言幾乎所有理工類專業最初接觸到的程序設計語言都是C語言,這是因為C語言本身所具有的以下一些特點決定的:
第一,C語言誕生于1972年,相對來說是一門比較“古老”的語言了,所以它不存在許多新生代高級語言的復雜語法,非常適合新手入門。
第二,雖然C語言年齡很大,但它仍很熱門,長期以來它都穩固占據著世界編程語言排行榜的前三位置。這意味著通過C語言入門,絕不會出現學而無用的情況。
第三,C語言功能強大,幾乎沒有它做不到的事情。即使它不一定在所有的開發場景里都是最合適的那一個,但是它永遠是可靠的備選方案。
第四,C語言編譯的程序運行效率優秀,所以在許多科學計算領域,C語言幾乎是不二之選,即使是非計算機行業人群,學習C語言也絕對是明智的決定。
第五,由于以上幾點以及其他歷史原因,許多計算機理論知識都是通過C語言(或者類C語言的偽代碼)進行教學的,如果不會C語言,那么在學習其他內容時候會非常艱難。
數據結構如果說算法是程序的靈魂,那么數據結構就是程序的肉體。
計算機處理器不像人的大腦,可以對具象的事物進行分析和處理。所有交給計算機處理的任務,都必須抽象化為合適的數據結構,并以此作為信息載體,這樣計算機才能夠理解。
數據結構不僅是計算機專業的核心課程之一,它也是其他理工類專業的主要選修科目。數據結構是一門綜合性的專業基礎課,關于它的研究涉及到計算機硬件、軟件和數學等三個方面。
【需要有一定的數學基礎】
編程語言首先就是各個算法的羅列。代碼中最重要的往往是對各種數據的處理、存儲和應用。這里面普遍都會用到數學思維,如果是從小數學就很難學的懂的同學,建議就不要走編程這條路了。
【選擇自己的方向】
編程方向有很多種,比如當前流行的移動客戶端編程(包括安卓編程和ios編程)、JAVA編程、vs.net編程、和硬件打交道的C語言編程、游戲開發等等。因為小編經常用的是vs.net,這里主要以該編程工具為例。
【入門書很重要】
入門往往是從一本由淺入深的教材開始的,現在有很多從入門到精通的教科書,你可以選擇其中一本,認真研讀。一般初學者會感覺很難理解,頭一遍二遍看不明白,這也是很正常的,多看幾遍后,就會覺得越來越簡單的。
【基本變量的使用】
代碼中的基礎是各種各樣的變量,比如數字類變量就包括int16、int32、float等,字符包括string,string【】,數組包括數字型、字符型等等,這些變量是每一句代碼都會用到的,所以一定要牢記變量的定義和用法,至少要了解最常用的一些變量。
【掌握基本語法】
除了變量外,代碼還是由一些語法組成,除了平鋪直敘的敘述性語句,還有判斷語句、循環語句等,這些語法和變量才構成的整體的代碼。
【窗口式編程】
早期的DOS時代的程序幾乎都是沒有界面的,現在界面式編程則是主流,很難想象該如何使用沒有界面的程序,所以在了解前面的基礎知識以后,就要嘗試建立自己的窗口程序,在窗口中添加各種常用控件,比如按鈕、文本框、下拉框、列表等等。
【熟練基礎功能范例】
在工作中的實際程序中,很多代碼是需要反復使用的,比如如何連接串口進行收發數據、如何與網口進行通信,這些幾乎在每個程序中都會用到,所以一定要掌握這些基礎代碼的用法,能在任何一個程序中快速加入這些代碼。
【多窗口的應用】
現在的程序都不止一個窗口,一般都是包括很多功能頁面、設置頁面、顯示頁面等等,這時就需要能熟練的掌握多窗口編程的方法,能夠快速調用所需要的界面窗口。