之前分享過一篇文章,展示C語言的偉大一面,然后有人在下方評論了一個“垃圾”,
我個人認為,你不喜歡C語言,也不應當詆毀它,你有你喜歡的語言很好,但是你不能因此說其他的語言“垃圾”,這個道理也適應在很多方面,
所以今天就來為大家分享一下這一篇文章,作者學習編程已經超過十年,這個程序中,他學過很多種編程語言,下面就來聽聽他對C語言的看法!
以下文章來源于微信公眾號「TechFlow」,作者梁唐,
大家好,最近有小伙伴在后臺問我,大一新生學校在教C語言,是不是已經過時了?第一門語言應該學什么比較好?大學期間什么課程對于畢業之后的從業幫助比較大呢?
今天這篇文章就和大家簡單聊聊這個問題,
關于我
先給大家講講我自己的一些情況吧,掐指一算才發現,從我初學編程至今已經超過十年了,
我是高中的時候學習編程的,那時候我們學的是Pascal,大家沒聽說過是很正常的,這是一門非常古老的語言,這門語言古老到什么程度呢?古老到它的IDE都是藍屏的,看起來就像是死機了一樣,大概長這樣,當時我們在機房里寫代碼的時候,一片藍光,跟進了鬼片現場似的,
當時學Pascal也是淺嘗輒止,只是學了一些基礎的用法,連結構體我都不太會用,很多人都說Pascal是一門非常適合新手入門的語言,不知道是不是我太菜了,我至今也沒get到,從那之后我又陸續學過很多語言,比如C/C++,Java、Python、JS還有最近學的Go,十年前學的Pascal的語法早已忘得精光,當時的編程習慣也都很挫,基本上也改得差不多了,
如果非要說學了Pascal對我現在有什么幫助的話,唯一的幫助應該是它讓我學C語言的程序變得非常簡單,基本上只是簡單看了一下C的語法,做了一些練習就掌握了,其實這也是大多數人學習的第一門語言的意義,不是為了學到了就能上手做事情,更多的是為以后學習其他的內容打基礎,
所以嚴格說起來C語言是我第二門學習的語言,但是我第一門掌握得比較完善的語言,
C語言適合入門嗎
關于這個問題我是有過反轉的,我曾經有一段時間覺得是不合適的,因為學習C語言的程序就是面對一個黑框框寫各種數學題的程序,挺枯燥和無聊的,很多人都是這樣被勸退的,
如果是Python、JS等語言的話,則可以做的事情就很多,學習者會有極大的熱情繼續學習下去,這樣入門的門檻可能會低一些,
我想很多人也是這么覺得的,因為學習了C語言會有一種無處施展的感覺,我們花了很大精力學了編程這么黑科技的東西,搞半天居然除了對著黑框框做題什么也做不了,這太不炫酷了,
你看看Python,學會了之后又可以爬圖片又可以處理檔案,難道不香嗎?還有些人可能也不太懂,就覺得Python、Java這些新興語言要比老舊的C語言厲害一點,
最近幾年我的看法又再次翻轉了回來,我現在覺得C語言其實挺適合初學者入門的,它也是有很多其他語言沒有的好處的,同樣Python、Java這些看起來濃眉大眼魅力十足的語言,其實也是有很多缺陷的,
C/C++的學習裙【七一二 二八四 七零五 】,無論你是小白還是進階者,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多干貨和技術資料分享!
C語言最大的好處是什么?我個人覺得有兩點:
第一點是它的語法很干凈,C語言當中基本的語法幾乎都能在其他所有語言當中找到,這一點在Go語言上同樣有所體現,精簡到極致,多余的一點也沒有,也就是說你在C語言上積累的編程功底換了其他的語言基本上都能用上,但像是Python這樣的語言可能就不是如此,Python當中的新特性非常多,換一門語言可能就玩不轉了,
第二點是C語言區分了參考和指標,了解這點對于初學者而言非常重要,參考和指標直接關系到傳參以及函式內的變數處理邏輯,但很多語言這兩者只涉及一個,比如Java當中就只有參考,Go語言當中就只有指標,如果搞不清楚參考和指標的區別會埋下很多隱患,比如引數傳遞的時候寫錯了邏輯,再比如完全沒有記憶體使用的概念,寫出來的代碼記憶體泄漏嚴重,
當然C語言存在的問題也不少,比如應用場景太少,庫函式也不多,寫起代碼來非常費勁,但這不妨礙它非常適合培養編程思想以及良好的編程習慣,對于初學者而言,擁有一個好的習慣和意識,其實要比具體學到的內容更加重要,從這點上來說,大一新生的第一門語言課上C語言其實是沒有問題的,
語言的選擇
當然,也有一些學校給大一新生開設Python或者是Java的(比如MIT和斯坦福),難道這些學校就錯了嗎?
其實也沒有,這是一個取舍問題,比如Python學起來可能比較有趣,對于有些學院而言可能更加看重學生的興趣,再比如Java一切面向物件,從Java開始可能更加有利于之后面向物件的學習,還有些大牛是從JS入門的,因為會比較方便之后從事前端,
這些其實都沒有問題,并沒有一條規定的所謂正確路線,語言本身并沒有高下之分,有的只有適用的范圍不同,
所以說,其實我們選的不是語言,而是方向,比如你想要以后從事演算法,那么Python顯然是必學的,不僅需要學還需要比較深入,比如你想要做開發,那么就比較推薦Java,入門的門檻相對較低,并且崗位缺口很大,學得好不愁找不到作業,比如想要做前端,那么顯然Python、Java這些都用不上,HTML+CSS+JS三件套才是王道,
也就是說語言是和我們方向掛鉤的,我們想要成為什么領域的工程師,就需要相應地進行該領域內的學習和鉆研,嚴格來說并沒有一門語言是普適的,是不管什么方向的工程師都需要掌握的,
另外一點是到了后期學習一門語言遠遠不像大家想的那么費勁,其實熟悉了編程的核心邏輯之后,語言之間基本上只有語法的差異,打個比方來說好了,我在剛入職的時候為了完成入職測驗,在3天內學習了go語言,并且從無到有用go語言寫了一個簡單的后臺程式,說起來好像3天學完一門語言很夸張,其實不然,我只是看了基礎的語法就開始上手了,邊看邊查而已,這并不是我的特殊能力,實際上大部分入職的新人都做到了這一點,
第一門的語言選擇重要,但也沒那么關鍵,關鍵還是以后能不能找準方向,
成長路線
說到方向估計很多人一聽到就頭疼,尤其是學生黨,很多人可能完全不知道之后要做什么,也不知道這些崗位有哪些能力要求,這其實也很正常,因為學校的教育少了工程師培養的部分,它只負責授課,并不負責工程師的培養,這是這個問題的核心原因,
那我們怎么辦呢?
我想你們一定很想知道答案,但很遺憾的是,每個人的成長路線需要自己找,誰也不知道你究竟適合做什么,
以上就是作者一些中肯的看法,
小編認為,不管你想要學習什么語言,學習C/C++是不會錯的,C/C++應用于Windows作業系統,驅動、補丁,影像處理、音視頻處理,工業控制軟體、嵌入式(手機、智能機)等領域,C++ 已經成為了最受開發人員歡迎的語言之一,鞏固了全球的系統和服務,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/237404.html
標籤:C++
