我現在是高一數學成績很一般?
年輕人不要想多了,美國的奧巴馬在擔任總統時專門給美國的小學生上編程課了,你是高中生現在開始還不晚。不要把編程想得有多難,重點是要多動手敲代碼,運行起來,幫你的生活和學習提高效率,這樣你就會慢慢愛上做任何有重復動作的事情之前考慮一下是否能寫個小程序來解決。舉個例子,迅雷下載的美劇的文件名很多都含有英文看起來不爽,你想批量重命名一下,這時只需寫個簡單的shell腳本或者python腳本,首先遍歷目錄,將每個視頻名字中的英文字母換成對應的漢字,然后調用一個函數重新命名即可。只需一個目錄遍歷,一個字符串替換,一個文件重命名,十幾行代碼就搞定了。
再來說說如何學習編程,不需要去看譚浩強的C語言程序設計,看書總是感覺有點厚,簡單的語法沒必要搞這么復雜,簡單點,直接去菜鳥教程上學習你想學的語言,對于小白,我建議學python,因為python環境安裝簡單,python語法也簡單,而且python既支持面向過程的編程也支持面向對象的編程,最重要的是python的庫非常豐富,很多復雜的事情都可以通過簡短的代碼搞定,其次python的os, sys模塊函數都是跟Linux C名字和用法一樣,python腳本寫的多了,就可以開始學學C/C++/Java/NodeJs了,學習的套路都一樣。然后就可以考慮開發一些GUI程序了,就是有界面的應用程序。我推薦一個桌面程序開發框架Electron,通過html+css+js就可以開發桌面應用程序了,效率還不錯,常用的Visual Studio Code代碼編輯器就是用的這個框架。
當你完成一個應用程序后,相信你對計算機系統有了更深入的一些認識。接下來就是更深入一下了,可以花二三十塊錢在某寶上買個Ardunio開發板,可以進行單片機的開發了,通過Ardunio做個跑馬燈,跳舞機器人,室內溫度計,電子時鐘等,擴張性非常強,甚至你有什么小創意,原型機也可以基于它來實現。像現在比較火的少兒編程很多都是基于這個開發板做的。
最后,說一下國內軟件開發的現狀,國內起步比國外晚了大概三四十年,計算機領域(語言,編譯器,處理器架構,計算機圖形學)的泰斗絕大多數是西方,少數在俄羅斯,這些都是所謂的基礎設施。然而在應用上,國內程序員的普遍能力也不如西方,從AOSP/FFMPEG/OpenCV這些大型的開源項目就可以看出國外程序員寫的代碼優化程度高,單元測試代碼覆蓋率都很高,縱觀國內,少有公司能做到這種水準,然而這并不是我們這代人不努力不上進,而是別人起點高,很多國外程序員在初中或高中就開始編程了,在我們開始摸代碼的時候別人已經寫了很多年代碼了,代碼寫的多了就熟悉了各種奇淫巧技,知道如何優化代碼,見識的庫多了能干的事就更大了。現在隨著國家物質基礎的提升,電子產品的降價,幾乎人人能接觸到電腦手機,在我們那個年代這些東西幾乎都是國外品牌,價高質差,無形中阻礙了計算機行業的發展。現在能看到我國在人工智能新興行業技術全球領先,數據庫也突破國外壟斷,這些都是這幾輩人的共同努力才達到的成就,雖然重要芯片技術還沒有突破,但是相信指日可待,這些靠的正是你們這些國家未來的中流砥柱,少年強則國強,少年們加油!