編程本來并不難,但是你沒有基礎,缺乏計算機基礎知識,那就非常困難,難于上青天。作為自學黨,不知道一開始要學些什么,學到什么程序,學到后能找到工作嗎,工作后用到的跟學的一樣嗎?而其中只要有一個問題困擾了你,那你就很容易半途而廢。
1.自學編程選擇語言
編程行業(yè)是有分工的:有做前端網(wǎng)頁的,有做移動端ios的、安卓的,有做后臺的。做網(wǎng)頁的,有用jq+原生js的,有用vue.js,有用react的;做安卓的,又可以分做底層嵌入式驅(qū)動的,做系統(tǒng)框架的,做應用的。做后臺的,又分為很多框架,技術棧和語言不同,java ,.net,python等等各領風騷。選擇一個好的方向,難!因為每個分工沒有優(yōu)劣之分。也許你只是想混口飯吃,不在乎做哪方面。我的想法是,興趣是比較好的老師,用它來告訴你。
2.打好基礎難
在學習上面知識之前,你還得先打下基礎,畢竟沒有不會走路的嬰兒能夠跑步的。要學的基礎很多,包含計算機的組成,網(wǎng)絡通信協(xié)議,數(shù)據(jù)結(jié)構(gòu)等等?;A就像地基,不穩(wěn)固的話,你的代碼就會搖擺不穩(wěn),隨時有崩塌的危險?;A的學習,涉及到的概念會比較多。就如一開始的二進制知識源碼,補碼,反碼,就常常令人發(fā)瘋?;A的學習,可能就得花去你兩三個月的時間,還是在你有毅力堅持的情況下。
3.難找到編程實戰(zhàn)項目
你按照教程的步驟一步步操作,發(fā)現(xiàn)怎么一開始搭個環(huán)境都不行,這個版本怎么跟我的不一樣這么舊。好不容易環(huán)境沒問題了,怎么我的代碼就是運行不起來,明明看起來跟書本是一樣的。錯誤千萬條,條條通向bug。自學的人往往身邊沒人合適的可以請教的人,教程一般來說都會相應落后,實踐的例子大多是demo樣例級別,跟工作中用的東西差別很大。這三個搞在一起,想死的心都有了。你會發(fā)現(xiàn)學習了大半年,項目經(jīng)驗卻基本為零。
自學編程,遇到的問題基本上都是自己摸索解決的,有些東西可能也暫時無法解決。由于沒有實際的工作經(jīng)驗,沒有處理和積累過工作中會遇到的各種突發(fā)問題,沒有參與大型的高復雜度的軟件設計,缺乏跟同事們的技術交流,技術會達到瓶頸,也很難養(yǎng)成良好的編程規(guī)范。