編程之道 只精通一門C語言的人,算不算程序員?
只精通一門C語言的人,算不算程序員?只有精通C語言的程序員是遠(yuǎn)遠(yuǎn)不夠的,更不用說C語言了,即使你只精通Java,精通C,都不是程序員,為什么?請繼續(xù)閱讀:了解C語言意味著你可以根據(jù)C語言的語法編寫一段
只精通一門C語言的人,算不算程序員?
只有精通C語言的程序員是遠(yuǎn)遠(yuǎn)不夠的,更不用說C語言了,即使你只精通Java,精通C,都不是程序員,為什么?請繼續(xù)閱讀:
了解C語言意味著你可以根據(jù)C語言的語法編寫一段代碼,但它只是一段簡單的代碼。想讓代碼有靈魂,那就是能夠在實(shí)踐中解決問題或滿足客戶的實(shí)際需求。試想一下,客戶讓你做一個(gè)網(wǎng)絡(luò)視頻傳輸模塊,你需要了解視頻從客戶端服務(wù)器到終端的交互過程,才能編寫這個(gè)系統(tǒng),而你只能用scanf函數(shù)從鍵盤上讀取一個(gè)數(shù)據(jù),然后用printf函數(shù)輸出數(shù)據(jù),這只能說明你的C語言語法不錯(cuò),但有什么用呢?您幫助客戶解決了哪些問題?
算法是程序的靈魂,程序員在編寫每一個(gè)C語言代碼時(shí)都會不知不覺地使用一些算法。其中最常見的是人體識別算法。
也許你可以用C語言的指針很流暢,用C語言的鏈表很方便,用C語言的二維數(shù)組就不用說了,但只要寫這些就可以認(rèn)出一張臉了?顯然不是。
算法就像一張印有規(guī)則的紙。你看看紙上的規(guī)則,然后用你學(xué)過的C語言語法,按照規(guī)則寫代碼。算法的靈魂在于代碼。
要為客戶做生意,僅僅理解一種編程語言是不夠的。例如,如果你懂Java,Android的開發(fā)是非常順利的。但是如果你想在Android手機(jī)上實(shí)現(xiàn)視頻采集,目前只懂java是不夠的。這種與視頻處理相關(guān)的底層功能需要借助原生方法,而原生方法通常是用C語言實(shí)現(xiàn)的。
大多數(shù)情況下,許多編程語言相互補(bǔ)充以實(shí)現(xiàn)一個(gè)目標(biāo)。
以上只是程序員學(xué)習(xí)的一小部分,程序員要學(xué)的東西太多了,技術(shù)日新月異,要保持一顆學(xué)習(xí)的心
許多老程序員不建議新手用IDE集成開發(fā)環(huán)境,而是用編輯器+編譯器,用命令行編譯,這個(gè)怎么看?
在人們的固有觀念中,用編輯器編譯器編寫代碼比用ide編寫代碼更好。也許吧,但效率還是需要考慮的。
作為一個(gè)新手,如果你在普通的編輯器中編寫代碼,你會非常困惑,你會在一開始就死。在強(qiáng)大IDE的支持下,它可以拄著拐杖快速前進(jìn)。
毫無疑問,使用ide將比普通編輯器更快,現(xiàn)在我們都使用框架來做項(xiàng)目。只使用編輯器是不合適的。在過去,編輯器更多地被用作函數(shù)式編程的工具。
當(dāng)您編寫代碼時(shí),其他人應(yīng)該能夠理解它并在文件、類和方法之間切換。Ide無疑提供了一個(gè)良好而高效的通信工具,但是Ide還不夠好。
因此,不要執(zhí)著于看似強(qiáng)大的編輯器,要用高效的工具來解決問題,要對每個(gè)環(huán)節(jié)的原理有更深的理解。
C語言能干什么?
我在C上工作了6年,我覺得這個(gè)領(lǐng)域的需求還是很大的
第一,嵌入式設(shè)備:幾乎所有的硬件設(shè)備都離不開C,手機(jī)和Android設(shè)備都是Linux內(nèi)核,純C,硬件都是驅(qū)動(dòng)的,都是C,單片機(jī),數(shù)據(jù)機(jī)。
第二,網(wǎng)絡(luò)設(shè)備:各種網(wǎng)絡(luò)設(shè)備、光纖設(shè)備、交換機(jī)、防火墻、小型家庭路由器、TCP/IP協(xié)議都是用C語言編寫的,C語言的需求和網(wǎng)絡(luò)的發(fā)展空間一樣大。
第三,服務(wù)器端:大部分服務(wù)器端程序都是C,精通nginx和squid,可以使公司上市,如Netshop技術(shù)。云服務(wù)離不開C。亞馬遜,業(yè)界最強(qiáng)大的云,不能靠買書來做這么多。還有流行的大數(shù)據(jù)、IPv6等,涉及的業(yè)務(wù)非常廣泛。很多工具都是用C寫的,比如PHP,python…
但是C不是那么簡單,不僅僅是語法,比如Linux驅(qū)動(dòng)程序,你應(yīng)該熟悉內(nèi)核架構(gòu),并且有一些硬件知識。C有很多開源代碼要看。歡迎添加
編程中最重要的是邏輯。邏輯分為計(jì)算機(jī)邏輯和人類思維邏輯。前者對應(yīng)面向過程,后者對應(yīng)面向?qū)ο螅∈紫?,?jì)算機(jī)邏輯是最基本的編程邏輯。從機(jī)器代碼到匯編語言,C語言屬于計(jì)算機(jī)邏輯程序設(shè)計(jì),即最接近計(jì)算機(jī)思維的程序設(shè)計(jì)。編程的出發(fā)點(diǎn)是考慮如何通過計(jì)算機(jī)的內(nèi)部邏輯來編寫自己需要的程序!與人類思維邏輯相對應(yīng)的面向?qū)ο蟪绦蛟O(shè)計(jì)是以計(jì)算機(jī)邏輯語言為基本框架,設(shè)計(jì)符合人類思維的程序設(shè)計(jì)語言,常用語言有:C、C#、Java等,都具有與人類思維相同的特點(diǎn)。面向?qū)ο缶幊桃灶惡蛯ο笞鳛榫幊痰钠瘘c(diǎn)。比如,人屬于動(dòng)物,鳥也屬于動(dòng)物,但他們有不同的行為和特點(diǎn),但他們也有相同的動(dòng)物特點(diǎn)!由于面向?qū)ο笳Z言屬于人類思維邏輯,因此它比計(jì)算機(jī)邏輯中的面向過程語言更容易編寫,也更靈活。所謂綠勝于藍(lán)。編程中最重要的是這兩種邏輯。所有的編程都是基于這兩種思維邏輯!