怎么學習編程(如何學習編程電腦)
編程的范圍實在很大,學什么就是小白的首要問題。如果是學編程希望能夠將重復工作自動化這類朋友,直接學Python即可。下文會說怎么學習,本文主要針對的是想要通過編程高薪轉行的這類人。
一、編程方向
編程可就業的技術崗位非常多,我們看下前端、后端、移動端以及人工智能:
另外還有測試、運維、數據相關等:
按照上圖的大分類介紹一下各個方向重點掌握技能。
后端開發:建議選擇Java語言或者是C++語言,服務端的代碼主要是接受瀏覽器請求,實現業務邏輯,訪問數據庫等;
前端開發:必學內容為HTML/CSS/JavaScript,基礎學完之后就是前端相關的框架的掌握;另外如果有時間小程序相關開發的學習也是必備技能。
數據相關:分成業務型也就是數據分析類崗位,技術型是數據開發相關崗位。數據相關的工作建議選擇學習Python。
另外Python語言在自動化測試和運維方面,都有自己的一席之地。
嵌入式和硬件相關的開發需要學習C/C++,比如自動化駕駛或者是無人機這類的開發。
至于人工智能我們暫時就不說了,人工智能門檻較高,無論是對學歷還是對技術掌握的要求都很高。不建議沒有編程基礎的人轉行這個崗位。
每種編程語言都是來干什么的:
C/C++:理論上是只要硬件驅動和API合適,C/C++就可以開發任何東西,效率也高。C的應用在服務應用,開發底層模塊和嵌入式。C++適合復雜但是又要求高效率的內容,比如大型游戲等等;
Java:有關于Java的特性在這里就不分享了,Java被應用于企業,安卓應用等;
JavaScript:與Java毫無關系,應用在web前端,另外與Vue和Node結合還用于開發服務器端;
PHP:開源腳本語言,語法吸收了C語言,還有Java和Perl的特點,適用于web開發領域。
C#:是微軟對這一問題的解決方案,應用領域為web應用、客戶端應用、分布式計算,人工智能和各類游戲。
Python:自動化測試/運維,信息安全,物聯網,大數據,桌面應用都可以用Python;
二、難易程度
很多小白對方向可能還是比較迷茫,介于迷茫的同學可以到一些資訊類網站看看各方向的前景以及就業薪資。我們從編程語言的難易度再來做一個講解。
從底層到腳本語言,就是從難到簡單的順序。
目前人工智能的交界面是C語言和C++,雖然兩者結構相似,但是C++面向對象的特性,而且自身強定義性,成為了算法構造的基本語言。C語言更下沉到硬件領域,比如機器人開發。C++是根據C語言,優化而來,Java是通過C++優化而來。
腳本語言擁有很強大的可重復行,有了腳本就可以把一個規程不斷地重復,這也就是大家總說提升工作效率的話一定要學Python。如果日常工作經常需要重復某一個動作,大家可以選擇Python語言。
每種編程語言都是來干什么的:
C/C++:理論上是只要硬件驅動和API合適,C/C++就可以開發任何東西,效率也高。C的應用在服務應用,開發底層模塊和嵌入式。C++適合復雜但是又要求高效率的內容,比如大型游戲等等;
Java:有關于Java的特性在這里就不分享了,Java被應用于企業,安卓應用等;
JavaScript:與Java毫無關系,應用在web前端,另外與Vue和Node結合還用于開發服務器端;
PHP:開源腳本語言,語法吸收了C語言,還有Java和Perl的特點,適用于web開發領域。
C#:是微軟對這一問題的解決方案,應用領域為web應用、客戶端應用、分布式計算,人工智能和各類游戲。
Python:自動化測試/運維,信息安全,物聯網,大數據,桌面應用都可以用Python;
三、如何學習編程
要知道自己自學的目的是為了盡快學習完找到相關的工作進入該行業。所以快速掌握基礎語法是必要的。我們下文當中以Java語言舉例應該怎么學習,光說學習方法的話會比較空洞。
現在網上課程資源非常多,不贅述,只要搜索就可以找到相關課程。書籍方面的話,建議看一些經典的書籍,不要看什么速成書籍,或者是21天帶你學會什么這樣的書籍。
初學者建議合理安排好時間,盡可能有非碎片的時間學習。一天建議安排學習時間4到6個小時。以Java來說需要學習內容安排如下:
入門:Java SE基礎-->Java Web(含數據庫+H5+js+vue)
中級:Maven-->Git-->SSM框架 -->MybatisPlus-->Spring Boot-->傳智健康【項目實戰】
進階:Spring Cloud(微服務開發,學這一套就夠了) 也可分技術點學: (Dubbo-->Zookeeper-->RabbitMQ-->RocketMQ-->Docker-->Redis -->MongoDB-->搜索技術Elasticsearch)
項目:SaaSiHRM【企業服務】-->好客租房【生活服務】-->萬信金融【金融行業】-->閃聚支付【聚合支付】-->權限管理一體化解決方案-->短信網關平臺
面試:Java大廠面試專題課
以上技術,足以支撐找一份好的java開發工作。
如想工作后再提升,頁面底部還有30+套,工作后再學習提升的技術:
【JDK8-15新特性】【編程強化】【數據庫強化】【安全框架SpringSecurity】【報表技術】【模板引擎VelocityTools】【工作流Activiti7】…完整線路圖看這里
如果想要學習其他編程方向的可以找我要到這樣的學習路線圖,首先我們按照圖中內容,清楚地知道學習安排。其次是可以規劃自己的學習時間。
無論是基礎到項目,動手是最重要的,動手過程中就包括了對代碼的思考。
四、其他
公司招聘我們,絕對不是因為我們會什么語言,而是我們可以通過計算機來設計軟件。如果想要長期立足在開發崗位,伴隨著職業生涯的的發展,我們就不應該被一門語言限制。
程序是什么?— 計算機組成原理。
程序怎么被翻譯?— 編譯原理。
程序怎么執行?— 操作系統的范疇
怎么利用別人的成果來實現更好的數據組織?— 數據庫相關
怎么保證程序更容易維護和可讀?— 這是設計模式和代碼規范
以實際工作經驗告訴大家,我們每一個新項目的時候,大部分參與者都會需要學習新語法。或者是行業的改變,比如蘋果應用之前由Objective-C主導的OS中添加了Swift的支持,谷歌在Andriod中添加了Kotlin的原生支持。
再比如,很多互聯網公司將Java后臺遷移成Go語言。
所以要把編程語言視為一個工具,IT技術發展飛快,比起選擇語言更重要的是快速學習的能力。
五、學習能力
以上是長時間高效學習的方法,適合所有人通用。學習過程中不用怕語言語法,或者是特性記不住。學習編程好像學數學一樣,公式記不住也不會做題,慢慢理解公式后會做題了,但是公式還是背不下來,但是總做一類題公式就成了下意識的記憶完全可以記下來。