不要忽視C語言,它不只是“入門”語言

看到過很多人發表過對C語言的抨擊,稱其看起來很難看,面向過程是一種舊時代的產物。

我想說的是,請不要忽視C語言。

不要忽視C語言,它不只是“入門”語言

幾乎所有的學校都會以C語言作為一個入門的語言。我覺得有幾點需要思考:

1. C的確是很“入門”的語言,因為他的學習曲線較為輕鬆,初學的時候既沒有大量的庫和框架,也沒有複雜的語法概念(指針稍微麻煩一些),還沒有很複雜的開發環境。面向過程的程序是最直觀和易瞭解的。

2. C語言很利於鍛鍊一個人的開發思想,實際解決問題的能力,C語言的考核應該是純粹的能力考核,而不是對各種庫和框架的熟悉程度。

3. C語言是實現操作系統和數據結構的最佳語言,首先它沒有太多的庫的包袱,其次它可以方便的訪問硬件。它不會讓你覺得實現動態數組是很無聊的事(Ruby、Python黨絕對不會想自己實現可變數組)。

4. C語言被老師給認為太簡單了,很多的教師和教學機構只讓最菜的老師來教C語言,這直接導致大家沒有學好C語言。

5. C語言最精髓的部分被砍掉了,很多的學校C語言的學時通常不夠,所以結構體、位段、高級指針、預編譯等通常都被閹割了。第4條所說的老師們,又礙於面子,對學生提出的”指針的指針應該怎麼用?”“為什麼int a[3][5]和int **b不能互相轉化?”的問題回答通常是“這個用不到。”。這就導致大家對C的普遍認知存在問題。

6. C語言的教學目的是讓入門者可以更快的掌握計算機開發的一些原理,並快速實踐。但C語言絕不是隻能面向過程設計的,幾乎所有的C核心代碼都是面向對象設計的,例如Linux、Win32內核、大家在iOS中的各種核心庫如CoreGraphics、CoreText等。對於iOS開發者來說,如果你稍多瞭解就可以知道你是可以用C來生成ObjC的類和方法的,而這些幾乎沒有老師交代過。

不要忽視C語言,它不只是“入門”語言

首先揹負著沉重的教育背景,C已經讓絕大部分人忽視了,接下來的就業環節又讓C被更加的忽視:

1. 沒有多少公司用C

2. 很多的公司和老闆覺得C沒啥用,又幹不了什麼

3. 搞Java、Ruby、Objective-C的同學都看起來不錯,搞C的同學都在嵌入式公司賺少量的錢(呵呵,我當年就是)

不要忽視C語言,它不只是“入門”語言

最後我來說一說了解C的必要性:

1. 對內存和硬件的操作,是目前絕大部分高級語言所隱藏的,只有堅實C背景的同學,才可以考慮的更多,如果你想對原理有更多的瞭解,那麼C其實是不可繞過的一個環節。

2. 想要締造一個新的系統和語言,沒有C是不行滴(或許C++勉強)。

3. 不管是OC的消息系統,Java的自動回收,Ruby的動態類擴充,這些花哨且時髦的東西,其實都可以用C來實現,而且很多都是用C來實現的,如果你想自己實施,看C吧。

4. 破解和分析程序,C可以起到很大的作用。C是可以人為創建Bug來破壞一個系統滴。

寫在最後:

每天晚上20:00我都會開直播給大家分享C/C++遊戲編程學習知識和路線方法,群裡會不定期更新最新的教程和學習方法,大家都是學習C/C++的,或是轉行,或是大學生,還有工作中想提升自己能力的前端黨,如果你是正在學習C/C++的小夥伴可以加入學習。最後祝所有程序員都能夠走上人生巔峰,讓代碼將夢想照進現實,非常適合新手學習,有不懂的問題可以隨時問我,工作不忙的時候希望可以給大家解惑。

我要告訴同學們,每個人都有自己獨特的經歷,無所謂好壞,但要在過程中認真學習。為了興趣也好,為了工作也罷。我的經歷告訴我,專注比廣博更有利。

最後我引用我的一個大牛朋友的話:“請不要忽視C語言,它上可九天摘月,下可五洋捉鱉”。


分享到:


相關文章: