C#程式設計初探(1)學前準備

從今天開始進行C#教學專欄的創作,計劃用是2年的時間寫50~100個專欄。目標是

讓每一個想學C#程式設計的零基礎小白都能入門

專欄內容各有側重點,大家可以根據自己的情況有選擇的進行學習。

第一個專欄(本專欄)的名叫《C#程式設計初探》,目標是讓一個零基礎的小白瞭解到學習C#是什麼,能用它來做什麼,以及如何開始C#程式設計、到實現第一個可以執行的程式。

C#的來歷

C#是C Sharp的簡寫,讀做“C煞普”,也有人摻雜了方言讀成“西井”,我第一次聽到都憋不住樂。C#是一位名叫

安德斯·海爾斯伯格(Anders Hejlsberg)的丹麥小夥在微軟公司時主持開發的,大名鼎鼎的Delphi也是這個偉大的傢伙主持開發的,他被同時譽為Delphi和C#之父。有關於C#的歷史和恩怨情仇,這就說來話長了,有興趣的讀者可以參考下我曾經寫過的一篇文章:給大家說說C#的來歷。

C#程式設計初探(1)學前準備

安德斯·海爾斯伯格(Anders Hejlsberg)

至於C#這個名稱的來歷,網上有幾個版本。我比較傾向的是這個邏輯:一般認為C++比C要高階,然後比C++更高階的就是C++++,但是這樣寫太長了,所以摞起來就是C#。

C#程式設計初探(1)學前準備

C#能做什麼

C#能做的事情可太多了

基於Windows系統下的工具軟體

包含但不限於管理資訊系統、維護工具、除錯工具、工控軟體、windows服務、資料採集、批次處理、圖形影象、網路工具等等一切windows系統下的軟體。

B/S架構的網頁應用及後臺

大中小型的各類企業網站,後臺應用、微服務等等還有些新的技術框架我都叫不上來名。

蘋果、安卓下的APP

蘋果和安卓系統下執行的各種原生應用。

遊戲

主要是基於Unity做跨平臺的遊戲,遊戲界的頂流王者榮耀就是用它搞的。

可以說,基本上市面上能見到的軟體產品,用C#都可以實現,可以說是無所不能。我本人也是自2006年之後從VC轉成C#後,就很少再用其他語言做開發了。我的6-7款軟體產品和官網都是用C#來開發的。

與其他語言相比的優劣

在2022年12月份的統計中,C#在所有程式語言中佔比為第5位。

C#程式設計初探(1)學前準備

2022年12月 程式語言排行前10

Python是指令碼語言,屬於膠水語言,跟誰都能搭上,缺點是執行效率差很多,不適合做軟體產品;主要應用場景是用於科學計算、人工智慧、個人小工具等;

C和C++屬於王者,環境依賴最小,執行效率第一,缺點是學習難度較大,開發成本較高,開發效率相對低些。主要應用場景是硬體、驅動、高併發伺服器等;

Java適用面很廣,啥都能幹,框架多,上手快,入門難度相對較低,是培訓學校和打工者的首選語言,找工作相對容易;缺點是Windows系統下的軟體產品佔用記憶體較高,執行效率較差。由於歷史原因,國內許多大廠都是以Java為主,切換到其他語言一需要試錯,二是人才數量不夠;

C#介於C/C++與Java之間,國內用的人明顯沒有Java多。也是基本啥都能幹,執行效率不比C/C++慢,與Java相比Windows系統下表現優越。之所以普及度不夠,是因為微軟的戰略失誤,跨平臺開展的太晚了,現在。net core雖然可以跨平臺了,但是市場大部分也都讓Java佔據了,不過這些年隨著。net core的發展,在跨平臺開發上也陸續有了一定的市場份額。我個人認為它是個人軟體開發者的最佳選擇。

要想學會有哪些條件

英文要懂一點

主要是開發過程中需要使用大量的類庫,這些類庫絕大部分都是用英文來命名的,英文熟練的話就很容易理解含義,快速定位。

要有興趣

程式設計需要極強的專注力,有時候為了解決某個問題甚至需要進入“入定”的狀態。如果沒有興趣,長時間的坐在電腦前可能就會覺得如坐針氈,效率低是一方面,很有可能就一直卡在那裡無法突破。

邏輯思維要稍強些

程式設計是講因果的。之所以看到這樣的結果,必然是因為你的程式碼寫成了那個樣子。所以,在編寫的過程中,你要預判你的程式碼會怎樣執行;反過來,看到問題,你要去追溯,找到是哪些程式碼引起的問題。

數學要稍微懂點

在做某些程式設計時,需要用到一些數學知識。最基本的比如加減乘除、取餘取整、進位制轉換、位運算等等這些小學初中都學過,圖形影象方面可能需要平面座標系、座標轉換、各種比例換算、各種三角函式等等這些高中的知識,3D遊戲就涉及到三維座標系、矩陣、向量等大學的知識,人工智慧就涉及到微積分、機率、最優解等等,再往上就超出我認知了。應該說數學知識可以決定你涉及領域的上限,我是大專,高數學的也不好,所以3D遊戲就已經是我無法觸及的了。

當然,任何限制在興趣面前都可以突破,只要你想學,就沒什麼學不會的。至於學歷,我個人認為沒啥關係。大部分應用級的程式設計,只要高中畢業都可以完全學會,有興趣的中小學生也未嘗不可。

小白能學得會嗎

我寫這些專欄的定位就是面向什麼都不會的小白。

我會結合每個專欄的目標,從最基礎的講起。可能每個專欄講的內容不多,但會講得很細。細到為什麼要這樣,它的原理是什麼,目的就是讓小白能夠充分理解,只有真正的理解才能靈活運用。

當然每個人的情況都不同,我也不可能保證每個看了我專欄的人都能100%理解並掌握,我能做的就是儘可能認真的寫好每一篇專欄。至於自己適不適合這種學習方式,能否接受我這種寫作風格,需要你們自己來考量。

教程的形式

之前在寫教程的時候,有網友建議我採用影片的方式。

確實很多教學都採用了影片的方式,不過我並不認為影片的方式更好。

圖文你哪裡沒看懂,就停在哪裡,聯絡上下文可以反覆再看,更有利於思考和理解,效率更高;

影片你就一直聽我講,根本都沒有思考的時間,等聽完了,回過頭來啥也想不起來了,至少我看影片是這種感覺;

還有一個重要的原因,我做什麼都比較慢,做圖文慢,做影片更慢:(

大家有什麼想要學習的方向,也可以發上來,我集中參考下,慢慢的排入計劃:)