03.02 只精通一門C語言的人,算不算程序員?

用戶75321928304


先說一個行業內一個非常有趣的事情,剛入行沒多久在簡歷上基本上都會寫上精通某種編程語言,在這個行業混的日子久了,再次投簡歷的時候關鍵字已經從精通變成了熟練或者熟練,這是逐漸對編程一個認知的過程,開始覺得能寫代碼或者做項目都覺得是精通了,發現隨著做項目的深入,想要精通一種編程幾乎是不可能完成的事情,編程基本上越做越覺得自己知識的淺薄,需要學習的東西實在太多。

如果一個精通C語言的人都不能被稱之為程序員,那麼稱職的程序員真就不多了,不是所有的程序員都是對某種編程語言都是精通的,能精通編程語言的人在編碼界也是稀有動物般的存在。要精通一種編程語言,除了非常雄厚的編程基礎之外,還需要現場實際解決問題的能力,一個問題普通的程序員也能解決,高手一樣能夠解決,但實際產生的效果是不一樣的,高手解決問題想到的是框架方面東西,一旦解決可能類似的一個體系的問題都會得到解決。

既然說到C語言的話題,一個程序員如何做到精通C語言?

1.編程基礎,基礎是一切的根底,沒有基礎想要有更大的發展幾乎是不可能的事情,所以C語言常見的語法以及比較深層次的語法都要了然於胸,基礎的學習是不間斷性的,有些人教材上翻越上百遍,而且每次看都有不同的感覺,每次都有不同的感受和領域,所有創造性的源泉都來源於基礎,C語言常見比較難的知識點有指針以及多級指針的組合使用,遞歸,回調,結構體操作,函數等等,當然還有一個宏操作,很多框架為了效率考慮把基本的函數操作設置成宏的方式,但代碼讀起來可能就比較繁瑣。

2.經歷多次大的項目洗禮,想要精通一種編程語言一定是要有這種編程語言經歷過大的項目,只是語法上的熟悉不算精通,需要實戰驗證,實戰就是解決問題的能力,框架思想也是在實戰中磨練出來的,實踐多了吃的虧多了自然就會想解決問題的方法和策略,遇到的問題積累起來,然後加上理論依託,設計出來的東西一定穩定高效。

3.海納百川,吸收眾家之長,平時多讀取相關的文檔資料,只是靠自己去學,肯定不能做到知識廣度,需要多交流,最好的方式就是加入開源社區,在裡面吸取眾人的精華,提煉成自己的。而且還要具備分享精神,在網絡上總結一些經驗之道,供大家分享並且從中吸取教訓。

坦白而言能精通一種編程語言是一件可遇不可求的事情,比修煉自己成為一個架構師還要難,也不是每個人都能達到這種高度,如同有些技術人員一輩子可能就適合做點單元模塊,整個體系就是無法駕馭。

學習C語言切入別的編程語言都會方便許多,畢竟在研究框架的時候,有了C語言的基礎就能瞭解的更加透徹,而且在掌握了一種編程語言之後,還能有觸類旁通的效果,用同樣的方式複製新的編程語言速度會快很多,而且在學好一門編程語言之後再去學習別的開始時候的感覺特別清爽。

希望能幫到你。


大學生編程指南


還是現身說法吧。


我本人就是一位只精通C語言的程序員,大概從21歲上研究生開始接觸編程語言,到現在一位36歲的老碼農,中間學過C++,C和Java。唯一可以稱得上精通的就是C語言了。


之所以如此,當然也是有著鮮明的現實背景的。最主要的原因就在於我是一枚嵌入式軟件工程師,是在MCU上寫代碼的,而C語言基本上就是嵌入式軟件開發領域的王者,在MCU上很難看到其它編程語言的用武之地。


多年下來,在下編程無數,也做成了幾款電子產品,在公司裡,給的職位和薪水也是按照“程序員”的崗位來的。所以,“只精通一門C語言的人,算不算程序員?”,你說我算不算?


文藝佛系程序猿


精通~~~這兩字何其大也。是可以直接寫操作系統的人。是掌握了計算機軟件方面的一切~~我認識一個老專家,原來中科院研究國產cpu的,c那是無話說,78年的清華。後來被企業挖來當架構總工(企業我就不說了)。我們很羨慕老頭子的資歷。說到精通,老頭子都不敢說精通,直說略懂。當時他們八幾年一夥小年輕在國內研究cpu製造和自研系統~~八幾年,一百多塊錢的工資和普通工人沒區別。幹了十幾年。我們很是膜拜~~~老頭子8051系列玩的很溜~用c。現在老頭80多了,也不知道活沒活著~~~他都不敢說精通~


alasunny


我語文成績很好,當年高考142分,作文扣了6分還是超常發揮,那你說我是一個好的作家嗎?我連想都不敢想。計算機語言遠沒有自然語言那麼複雜,好的資深的程序員應該是能夠根據項目選擇來選擇自己的開發工具,重要的不是用那種編程語言,而是程序本身。


土肥圓二坑


只精通一門C語言的人遠遠算不上程序員,別說一個C語言了,就算你只精通Java,精通C++,都算不上程序員,為啥?請繼續往下看:

一、程序員要懂業務

會一門C語言意味著你可以按照C語言的語法寫出一段代碼來,但也僅僅是一段簡單的代碼。想讓代碼有靈魂,也就是能夠解決實際中的一個問題或者滿足客戶實際的一個需求。試想,客戶要求你做一個網絡視頻傳輸的模塊,需要你理解視頻從客戶服務器到終端整個的交互流程才能寫出這個系統,而你只會用scanf函數從鍵盤讀取一個數據,再用printf函數把數據輸出,這隻能說明你C語言語法學的好,但是有什麼用?幫助客戶解決了什麼問題?

二、程序員要懂算法

算法是程序的靈魂,程序員在寫每一個C語言代碼時都不知不覺用到了某種算法。最常見的一個就是人間識別算法。

也許你用C語言指針很溜,用C語言鏈表很順手,用C語言二維數組更是不在話下,但是光會寫這些就能識別出一張人臉嗎?顯然不可能。

算法就像一個印有規則的一張紙,你看著這張紙上的規則,利用你學到的C語言語法按照規則寫代碼,算法的靈魂就在代碼中。

三、程序員要懂多個編程語言

給客戶做業務,光懂一門編程語言遠遠不夠。比如你懂Java,安卓開發很溜。但是你要在安卓手機上實現對視頻截圖,此時僅懂Java是不夠的,這種涉及到視頻處理的底層功能得藉助於native方法,而native方法往往是通過C語言實現的。

很多時候做項目都是多個編程語言相輔相成,共同完成一個目標的。


上面所說的還僅僅是程序員要學的很小的一部分,程序員要學的實在是太多,而且技術更新日新月異,要時刻保持一顆學習的心!


數字視聽科普


看到這個問題,想到一個笑話。

剛畢業時,小夥兒在簡歷上學了精通c語言,第一次跳槽後,簡歷上寫熟練掌握c語言,第二次跳槽時,簡歷上寫對c語言比較瞭解。

看到這個問題,我冒昧猜測一下,題主應該入行還不深,或者說剛剛入行。(猜的不對,還望多多包含)

其他語言不說,就c語言來看,做的時間越久,越不敢說精通。

對 於Java來說的話,其實是一套固定的東西,分佈式,高併發,微服務,框架,性能優化等等,一套學完,等待新技術就可以了。

而c不同,技術更新沒有Java那麼快,穩定的東西很懂,但是方向也多,你也好這個,但並不適合另外一個方向,所以你說精通c語言,誇張點說,有些人學一輩子估計也學不到精通。

這樣的c語言有好也有壞。

就是坑位比較少,但是穩定。在程序員35這個坎上更加平穩。

而從薪資上來看,也不比Java,python的工資低。

最後說一句,只精通一門c語言的人,絕對是程序員。


lee哥說架構


答案是"肯定的"。在行業的崗位職能上,一般程序員或者是高級程序員,只要你精通一門語言也就是進入了一個行業。

C語言比起java、PHP等更加底層,目前從事C語言的程序員,薪資普遍都偏高,而且各種算法複雜,C語言是一個面向過程的編程,而流行已久的java語言則是面向對象的編程。如果從事遊戲開發以及設計更多底層安全的業務,更多的做法的以C為底層語言,結合java作為業務開發層語言。

給大家也帶出另外一個技術崗位的名詞“全棧開發者”。顧名思義,就是全能的開發者,但是這個全能,並不代表掌握了所有的開發語言。以系統類型分類,C/S,B/S,App等,通常指的是Web開發中的前後端都會的開發者,能編寫前端的JavaScript、HTML等,也能編寫後臺的java、C以及數據庫mysql。其實早期的程序都基本具備這樣的能力,我就說其中一個。

C語言編譯器產生的機器代碼非常快相比其他語言的編譯器。 C編譯器可以在兩秒編譯約1000行代碼。 C編譯器的另一個好處是,它還優化了代碼更快的執行速度。

C語言是高度可移植的語言。這意味著,對於一臺計算機編寫的C程序可以在另一臺計算機上輕鬆地運行而沒有任何變化或做一個小的變化。

所以,如果你是從事C語言的開發者,無論從接觸的算法以及編寫的難度來看,絕對不遜色於其它任何一門語言。


蘋果科技


在微軟流傳一個段子,如果某個程序員遇到解決不了的代碼問題,他可以去找比爾蓋茨,比爾蓋茨會用BASIC幫你解決問題。所以別說你只精通C語言可以成為一名程序員,就算你精通BASIC,把BASIC用到化境了,也可以是一名優秀的程序員。記住,重要的是你能解決問題,而不是強調你會用什麼工具。


情繫家國2008


不算。一個只會用C解決問題的人,他也不會是精通C的那一個人。

事實上不存在這樣的偽高手。高手必定熟練掌握腳本語言,瑣碎工作可不只是C能解決的。

問題問的不好。

現在大多數專業技術人員都需要結合專業領域的工具熟練掌握一門編程語言,這些語言就是腳本語言。windows文職工作人員熟練掌握vbs操控系統及word、Excel之類軟件,cad製圖軟件掌握lisp,Matlab工具亦是,隨處可見。這些腳本簡單易用,能使你的系統和工具運行的飛起,但是即便精通一門這樣的語言,也還不算程序員。

程序員的專業性不是通過某種語言來界定的,背後一堆東西,相比之下,多掌握些語言就太簡單了。在成為程序員的路上,這個問題就已經不存在了,會幾種語言是很自然的事情。


保溫杯裡泡枸杞好嗎


那是當然,畢竟C語言真正能配得上精通兩字的,全世界屈指可數。C語言易學難精,只有具備出眾的相像力才能用好他。C就像獨孤九劍,劍招不多,但要打敗對手就必須要了解對手的破綻,內存 IO 中斷 進程 線程 鎖 信號量 哈希 列表 以及各種算法等等等等,如果不理解這些東西,那就只會Hello world。自認為精通C的不妨去閱讀Linux內核源碼,就會發覺自己對C的理解只不過是滄海一粟而已。


分享到:


相關文章: